Server configuration

plugins/Bestiary/config.yml controls engine-wide behaviour. Mob, skill, drop-table and spawner definitions remain in their own directories. Apply edits with /bestiary reload.

Execution limits

limits:
  max-depth: 32
  max-mechanics-per-execution: 4000
  max-targets: 64
  tick-budget-ms: 5.0

These four guards cover nested skill calls, total mechanic work, target fan-out and synchronous wall clock. See Performance and the guards before changing them. Exceeding a hard guard aborts that execution and names the skill and node; exceeding the per-tick budget suspends the tree until the next tick.

Storage

storage:
  type: sqlite
  file: bestiary.db
  host: localhost
  port: 3306
  database: bestiary
  user: root
  password: ""
storage.typesqlite | mysqldefault sqlite

Use SQLite for one server. Use MySQL when several servers need shared persistent state.

storage.filefile namedefault bestiary.db

SQLite file inside the Bestiary data folder.

storage.host / port / database / user / passwordMySQL connection

Used only by the MySQL backend. Keep credentials out of screenshots and source control.

Back up the SQLite file or MySQL database with the rest of the server. Test a backend change on a copy before moving a live server; changing storage.type does not itself migrate data.

Structure anchors

anchors.typesentity type → mob id

Maps safe marker entity types to a Bestiary mob when a generator cannot write a scoreboard tag.

anchors.tag-prefixstringdefault bestiary:

Prefix used to read direct mob identity from a marker scoreboard tag.

anchors.respawn-cooldowndurationdefault 30m

Delay before an anchor may restore a boss removed by an intended death.

anchors.activation-rangeblocksdefault 64

Player proximity required to materialise an anchored mob.

anchors.scan-period-ticksticksdefault 20

Anchor proximity scan cadence. Values below 20 are raised to 20.

Prefer direct tags such as bestiary:aether/valkyrie_champion when the generator can write them. See Spawning for anchor identity and lifecycle.

Performance

performance.particles-per-player-per-tickintegerdefault 400

Per-viewer particle delivery ceiling.

performance.particle-view-distanceblocksdefault 48

Players beyond this distance are not sent Bestiary particles.

performance.spawner-scan-period-ticksticksdefault 40

Placed-spawner scan cadence. Values below 20 are raised to 20.

performance.random-spawn-budget-per-worldintegerdefault 40

World-level ceiling for random-spawn rule work.

Hooks

hooks:
  suppress-mcmmo-xp: true
  suppress-jobs-xp: true
  target-citizens-npcs: false

High-health custom mobs can distort external XP economies, so mcMMO and Jobs rewards are suppressed by default. Citizens NPCs are excluded from targeting unless explicitly enabled. These settings do nothing when the corresponding plugin is absent.

Built-in content and debug

builtin-contentbooleandefault true

Write the example mob, skill and drop table on first run. Disable it when the server should use only its own content.

debugbooleandefault false

Enable broad diagnostic logging. Prefer /bestiary cast or /bestiary debug for focused skill traces during normal operation.

Applying changes

/bestiary reload reapplies limits, messages, definitions, anchors and spawners, then rebinds live mobs. Changing storage.type or its connection fields requires a full server restart: the storage implementation is opened during plugin enable and is not replaced on reload. The setting does not migrate data between SQLite and MySQL, so back up and migrate that data separately.