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 modeenableProgressionSystem = trueprogressionSystemType = "ranks" # "kills" | "ranks" | "sighting"esMode = "points" # E→S progression: "points" | "chance"# Rank information visibility thresholdsspawnLocationRank = "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).
- Which high-level progression style to use:
-
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.
- E→S progression mechanic used when progressionSystemType = "ranks":
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"
- Which MobCategory values should be considered “monsters”. Valid values include:
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
idis a mob effect,valueis the effect level (1-based), e.g.,minecraft:strength:2gives 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
idis an attribute,valueis the amount added (e.g.,minecraft:generic.max_health:4). Attribute entries naturally stack additively via separate permanent modifiers.
- If
- 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.
- thresholds
-
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.