LogoAraxer's Bestiary

Configuration reference for Araxer's Bestiary

This page documents every configuration option exposed by the mod and explains how it affects gameplay and performance. Unless noted otherwise, options live in:

  • config/araxers_bestiary-common.toml

Edit this file while Minecraft is closed, save, then restart. Server configs apply to all players on that server.

Tip: Some options are client-side (rendering/UI), others are server-side (gameplay/progression). Server-side options should match on server and client for consistent behavior.

Quick start: example TOML

# Enable the progression system and use ranks with points mode
enableProgressionSystem = true
progressionSystemType = "ranks" # "kills" | "ranks" | "sighting"
esMode = "points" # E→S progression: "points" | "chance"
# Rank information visibility thresholds
spawnLocationRank = "D"
lootIconRank = "C"
lootChanceRank = "A"
advancedAttributesRank = "B"
descriptionRank = "B"
# Low-end graphics tweaks (client)
lowEndMode = false

The sections below list all keys with defaults, valid ranges, and guidance.


Core progression

  • enableProgressionSystem (boolean, default: true)

    • Enables the Bestiary discovery/progression system. When false, all information is shown and most thresholds/obfuscation rules are ignored.
  • progressionSystemType (string, default: "ranks")

    • Which high-level progression style to use:
      • "kills": Information unlocks after reaching kill-count thresholds.
      • "ranks": Each entity has a rank from E to S that you improve via interactions.
      • "sighting": A spyglass-first style where sighting contributes heavily to discovery (full details depend on other settings and datapacks).
  • esMode (string, default: "points")

    • E→S progression mechanic used when progressionSystemType = "ranks":
      • "points": Deterministic point thresholds per step (E→D→C→B→A→S).
      • "chance": Probabilistic rank increases based on event chances and difficulty multipliers.

Observation behavior

  • allowObservationChanceRolls (boolean, default: false)
    • If true, completing a spyglass observation may assign an initial rank via the weighted distribution (a "roll"). If false, observation only awards E→S points and never triggers a chance roll. Applies regardless of esMode; when points mode is active, this only affects whether a roll can also happen on sighting.

Mob-type chip unlock

  • mobTypeChipKillsThreshold (int, default: 1, min: 1)

    • Kills required to unlock the “mob-type” chip when using kills mode.
  • mobTypeChipRank (string, default: "E")

    • Minimum rank (E, D, C, B, A, S) that unlocks the “mob-type” chip when using ranks mode.

Kill-based progression thresholds (used when progressionSystemType = "kills")

  • spawnLocationThreshold (int, default: 10, min: 1)

    • Kills required before spawn locations are revealed.
  • lootIconThreshold (int, default: 20, min: 1)

    • Kills required before loot items become visible.
  • lootChanceThreshold (int, default: 50, min: 1)

    • Kills required before numeric drop chances are shown.
  • advancedAttributesThreshold (int, default: 30, min: 1)

    • Kills required before advanced attributes (KB resistance, armor, speed) are revealed.
  • descriptionThreshold (int, default: 40, min: 1)

    • Kills required before the entity description text is revealed.

Rank-based progression: chance mode (used when esMode = "chance")

  • rankKillChance (double, default: 0.15, range: 0.01–1.0)

    • Base chance to gain a rank on kill.
  • rankFeedChance (double, default: 0.03, range: 0.01–1.0)

    • Base chance to gain a rank when feeding.
  • rankHitChance (double, default: 0.01, range: 0.01–1.0)

    • Base chance to gain a rank on hit.
  • rankTradeChance (double, default: 0.10, range: 0.01–1.0)

    • Base chance to gain a rank on a villager trade.
  • bossRankMultiplier (double, default: 3.0, range: 1.0–10.0)

    • Multiplies the above chances when the target entity is a boss.
  • commandRolls (double, default: 0.15, range: 0.0–1.0)

    • Success chance used by the /bestiary rank roll command when applying a rolled rank.

Progressive rank difficulty (chance mode)

  • enableProgressiveRankDifficulty (boolean, default: true)

    • If true, higher ranks are increasingly harder to obtain.
  • rankDDifficultyMultiplier (double, default: 0.4, range: 0.01–1.0)

  • rankCDifficultyMultiplier (double, default: 0.3, range: 0.01–1.0)

  • rankBDifficultyMultiplier (double, default: 0.2, range: 0.01–1.0)

  • rankADifficultyMultiplier (double, default: 0.1, range: 0.01–1.0)

  • rankSDifficultyMultiplier (double, default: 0.05, range: 0.01–1.0)

    • Lower values make that rank harder to reach.

Rank-based progression: points mode (used when esMode = "points")

Thresholds per step (points required to advance one rank):

  • pointsEToD (int, default: 50)
  • pointsDToC (int, default: 100)
  • pointsCToB (int, default: 200)
  • pointsBToA (int, default: 300)
  • pointsAToS (int, default: 400)

Point awards (base values per interaction):

  • pointsKill (int, default: 3)

  • pointsFeed (int, default: 1)

  • pointsHit (int, default: 0)

  • pointsTrade (int, default: 2)

  • pointsBreed (int, default: 2)

  • pointsObserve (int, default: 5)

  • pointsTame (int, default: 4)

  • pointsSpecialBiome (int, default: 0)

  • pointsBossMultiplier (double, default: 2.0)

    • Multiplies point awards when the target entity is a boss.

Information visibility by rank (used when progressionSystemType = "ranks")

  • spawnLocationRank (string, default: "D")
  • lootIconRank (string, default: "C")
  • lootChanceRank (string, default: "A")
  • advancedAttributesRank (string, default: "B")
  • descriptionRank (string, default: "B")

These define the minimum current rank on an entity required before the given information is shown.


Initial discovery rank distribution

When a player first discovers an entity, its starting rank is chosen using weighted randomness. Tune these weights to make higher or lower ranks more likely.

  • rankEWeight (int, default: 150)
  • rankDWeight (int, default: 50)
  • rankCWeight (int, default: 25)
  • rankBWeight (int, default: 15)
  • rankAWeight (int, default: 10)
  • rankSWeight (int, default: 2)

Higher weight = more common.


Entity visibility and obfuscation

  • hideZeroKillEntities (boolean, default: false)

    • In kills mode, hide entities with 0 kills from lists.
  • hideNoRankEntities (boolean, default: false)

    • In ranks mode, hide entities that have no rank yet.
  • forceObfuscation (boolean, default: false)

    • Forces obfuscation for undiscovered/low-progress entities, even if other settings might show them.
  • hideUndiscovered (boolean, default: false)

    • Hide undiscovered entities completely instead of showing them with obfuscated entries.
  • entityBlacklist (list<string>, default: ["minecraft:armor_stand"])

    • Entities that should never appear in the Bestiary.
  • entityIncludeList (list<string>, default: [])

    • Entities that should always be considered/included even if they’re outside typical categories.
  • monsterCategories (list<string>, default: [])

    • Which MobCategory values should be considered “monsters”. Valid values include:
      • "monster", "creature", "water_creature", "underground_water_creature", "ambient", "water_ambient", "axolotls", "misc"

Global progression bar (header)

  • globalSRankThresholds (list<int>, default: [50]) [Server config]

    • Server-side thresholds for total S-ranked entities to advance global progression and benefits. Progress fills between consecutive values.
  • globalBenefits (list<string>, default: []) [Server config]

    • Benefits applied to the player when reaching each corresponding threshold in globalSRankThresholds. Same order, 1:1 mapping. Missing entries do nothing; extra entries are ignored.
    • You can intentionally skip a benefit for a specific threshold by putting "-" (or "skip") in that slot.
    • Format per entry: namespace:id:value.
      • If id is a mob effect, value is the effect level (1-based), e.g., minecraft:strength:2 gives Strength II. Multiple entries of the same effect ID STACK additively across unlocked thresholds (e.g., Strength 2 + Strength 3 -> Strength 5 total). Effects are applied with a very long duration and re-applied on login/config changes as needed.
      • If id is an attribute, value is the amount added (e.g., minecraft:generic.max_health:4). Attribute entries naturally stack additively via separate permanent modifiers.
    • Examples:
      • thresholds [50, 100] with benefits ["minecraft:strength:2", "minecraft:generic.max_health:4"].
      • thresholds [50, 75, 100] with benefits ["minecraft:strength:2", "-", "minecraft:generic.max_health:4"] → applies on first and third thresholds; second is skipped.
      • stacking example: thresholds [10, 20] with benefits ["minecraft:generic.movement_speed:0.05", "minecraft:generic.movement_speed:0.05"] gives a total +0.10 speed when both are unlocked.
  • globalRankProgressBarType (string, default: "S") [Server config]

    • Controls which global metric is used for the header bar and for global benefits thresholds: "S" (count S-and-above) or "X" (count Rank-X unlocks).
  • enableGlobalRankProgressBarCycling (boolean, default: true)

    • If true, you can click the bar to cycle between S and X.
  • progressBarSpriteSource (string, default: "mod") [Client]

    • Which sprite to use for progress bars in the UI: "vanilla" (villager2.png) or "mod" (bestiary.png).

Loot information generation and safety

  • initialLootSampleBatches (int, default: 300, range: 50–2000)

    • How many sampling iterations to estimate initial drop chances from loot tables. Higher = more accurate but slower.
  • prewarmLootCacheOnStart (boolean, default: false)

    • If true, the server gradually generates loot info across ticks after start. If false, loot data is generated lazily when needed.
  • prewarmMaxEntitiesPerTick (int, default: 10, min: 1)

    • Caps how many entities are prewarmed per tick when prewarming is enabled.

Safety toggles (for heavily modded packs):

  • enableLootJsonInspectionFallback (boolean, default: true)

    • Uses safe JSON inspection of loot tables when direct deserialization is risky. Keep enabled for stability.
  • enableGlobalLootModifierSupplement (boolean, default: false)

    • Attempts to supplement loot by reading Global Loot Modifier (GLM) JSON. Disable if you see decode/condition errors in logs.

Dynamic drop tracking

  • enableDynamicDropTracking (boolean, default: true)

    • Tracks real drop events to refine displayed chances over time.
  • dynamicDropSampleSize (int, default: 50, range: 10–1000)

    • How many observed drops to collect before recomputing chances.
  • dynamicDropWeight (double, default: 0.7, range: 0.0–1.0)

    • Relative weight of tracked drops vs. loot-table-derived values.
  • ignoreModifiedDropEvents (boolean, default: true)

    • If true, ignores events where the killer’s tool/enchantments might have modified drops (e.g., Looting, Fire Aspect).
  • modifiedDropEnchantments (list<string>, default: ["minecraft:looting", "minecraft:fire_aspect"])

    • When ignoreModifiedDropEvents is true and this list is non-empty: only ignore events if the killer’s item has any enchantment from this list. If empty, any enchantment causes the event to be ignored.

UI, client, and performance

  • enableKeybind (boolean, default: true)

    • Enables the keybind for opening the Bestiary.
  • lowEndMode (boolean, default: false)

    • Toggles several low-end optimizations for GUI/preview rendering.
  • lowEndEntityPreview (boolean, default: true)

    • When lowEndMode is enabled, reduces cost of the 3D entity preview (skips fancy path, lowers preview FPS).
  • guiMaxEntityScale (int, default: 100, range: 40–200)

    • Caps the UI preview scale to prevent excessive overdraw on low-end GPUs.
  • lowEndMarqueeIntervalMultiplier (double, default: 1.5, range: 1.0–5.0)

    • Slows marquee animations in low-end mode to reduce CPU/GPU churn.

Debug and advanced

  • debugMode (boolean, default: false)

    • Enables extra debug logging. Useful for datapack troubleshooting. Expect more verbose logs.
  • showChallenges (boolean, default: false)

    • Shows the Challenges page for Rank-X progression in the Bestiary. Rank-X itself is configured via datapacks
  • enableCheeseDetection (boolean, default: true)

    • When true, the mod detects certain “cheese” tactics against bosses (beds, end crystals, respawn anchors) and can ignore such events for Rank-X logic. If false, datapack disallowedCheese lists are ignored.

Notes on datapack interaction

  • Displayed loot can be provided/overridden by datapacks in data/<ns>/bestiary/<entity_ns>/<entity>.json. See “Bestiary entity loot format” for schema.
  • Config settings here don’t change actual in-game drops; they control what the Bestiary displays and how progression works.

Troubleshooting

  • If changes don’t take effect, ensure you edited the correct file (server vs client) and restarted the game/server.
  • Check logs for lines like “Loaded bestiary loot data for … entities” and warnings about invalid ids or file paths.
  • For performance issues, try enabling lowEndMode and reducing guiMaxEntityScale.