LogoAraxer's Bestiary

Bestiary datapack examples

This article provides ready-to-use examples of datapack files to add or override entity loot information in Araxer's Bestiary.

See ā€œDatapacks: Basicsā€ and ā€œBestiary entity loot formatā€ for background. Below are complete trees and JSONs you can copy.

Example A: Supplement zombie loot (no override)

Goal: Add a clarifying note and a custom supplemental item for minecraft:zombie without disabling normal loot table integration.

Folder tree:

Araxers-Bestiary-Examples/

  • pack.mcmeta
  • data/
    • my_pack/
      • bestiary/
        • minecraft/
          • zombie.json

pack.mcmeta:

{
"pack": {
"pack_format": 15,
"description": "Araxer's Bestiary examples"
}
}

zombie.json (data/my_pack/bestiary/minecraft/zombie.json):

{
"lootOverride": false,
"loot": [
{
"item": "minecraft:rotten_flesh",
"displayName": "(common)",
"dropChance": -1
},
{
"item": "minecraft:iron_ingot",
"displayName": "(very rare)",
"dropChance": -1
},
{
"item": "minecraft:copper_ingot",
"displayName": "(custom supplement)",
"dropChance": 0.05
}
]
}

Explanation:

  • lootOverride is false, so Bestiary combines loot table results with your entries. The copper ingot will appear if it’s not already in the loot table result list.
  • dropChance -1 means ā€œunknownā€. Bestiary may refine unknown chances later via loot table sampling.

Example B: Full override for the Warden

Goal: Replace the displayed loot of minecraft:warden completely with a custom set. Useful for modpacks that redefine boss drops.

Files:

  • data/my_pack/bestiary/minecraft/warden.json

warden.json:

{
"lootOverride": true,
"loot": [
{
"item": "minecraft:echo_shard",
"displayNameKey": "bestiary.note.boss",
"dropChance": 0.3
},
{
"item": "minecraft:sculk_catalyst",
"displayName": "(from custom datapack)",
"dropChance": 0.15
}
]
}

Optional language file to support displayNameKey (client resource pack or mod):

assets/my_pack/lang/en_us.json

{
"bestiary.note.boss": "(boss reward)"
}

Example C: Modded entity (supplement)

Goal: Add a note and an extra item to a modded entity. Replace some_mod:feral_beast with a real mod/entity id in your setup.

Files:

  • data/my_pack/bestiary/some_mod/feral_beast.json

feral_beast.json:

{
"loot": [
{
"item": "minecraft:bone",
"displayName": "(pack-specific)",
"dropChance": -1
},
{
"item": "some_mod:beast_fang",
"displayName": "(custom)",
"dropChance": 0.25
}
]
}

Notes:

  • Omit lootOverride to keep combination behavior. If you set any entry’s override to true, or set lootOverride to true, the entire entity becomes override-only.
  • Ensure items and the target entity actually exist in your modpack; unknown ids are ignored and logged.

Testing your datapack

  1. Place the datapack in the world/datapacks folder (or server datapacks).
  2. Run /reload.
  3. Open the Bestiary and find the entity page; look at the Loot section.
  4. Check logs for lines like ā€œLoaded bestiary loot data for … entitiesā€ and ā€œUsing datapack override ā€¦ā€.