---
id: bestiary-examples
---

# 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:

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

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

```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:

```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
```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:

```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 …”.
