You can add new categories, reorganize existing ones, or add modded entities to the Field Guide using standard Minecraft Datapacks.
Defining Categories
Category files are JSON files located at:
data/<namespace>/fieldguide/categories/<filename>.json
The filename becomes the ID of the category (e.g., wetlands.json becomes <namespace>:wetlands).
Custom icons for you to use in the style of the mod can be found in assets\fieldguide\textures\gui\icons. You can also use any item or block texture by providing its resource location (e.g., minecraft:golden_apple).
JSON Structure
| Field | Type | Description |
|---|---|---|
sort_index | Integer | Determines the tab order (lower numbers are first). |
icon | String | (Optional) The Resource Location for the category's tab icon. |
target_category | String | (Optional) If set, entries are appended to this category ID instead of creating a new one. The filename is ignored as a category ID. |
replace | Boolean | (Optional) If true, clears existing entries in this category before adding new ones. |
contents | Array | A list of entry objects. |
Appending to Existing Categories
To add entries to a category you didn't create (e.g. the built-in monsters category), use target_category in any category file. The filename can be anything, only target_category determines where the entries go.
data/<namespace>/fieldguide/categories/my_additions.json
{"target_category": "fieldguide:monsters","contents": [{"type": "entry","id": "minecraft:cow","unlock": {"unlocked_by_default": true}}]}
Entries are appended by default. Set "replace": true to clear the category's existing entries first.
Removing Default Categories
To remove a category provided by the mod (or another datapack), create a file with the same ID and add a "hidden": true field.
The Field Guide automatically hides empty categories.
Example: Removing the default monsters category:
data/fieldguide/fieldguide/categories/monsters.json
{"hidden": true}
Content Types
- Manual Entry: Adds a specific Entity, Block, or Item.
{"type": "entry","id": "minecraft:pig"}
- Auto-Populate: Automatically adds entries based on a preset strategy.
{"type": "auto_populate","strategy": "monsters"}
Available Strategies:
animals: All animals.monsters: All monsters.blocks: All blocks.items: All items (excluding block items).food: All edible items.plants: All vanilla-like plants.trees: Automatically generates tree composites for all saplings in a mod.mod:<mod_id>: All entities from a specific mod.mod_plants:<mod_id>: All plant-like blocks from a specific mod.mod_trees:<mod_id>: All dynamically generated tree structures from a specific mod.mod_items:<mod_id>: All items from a specific mod.mod_blocks:<mod_id>: All blocks from a specific mod.tag:<tag_id>: All entities, blocks and items with a specific tag.cobblemon: Automatically populates entries for Cobblemon, if the mod is installed.
- Virtual Entry: Adds an entry that doesn't correspond to a single Entity, Block, or Item.
{"type": "virtual_entry","id": "my_mod:my_custom_entry","virtual_type": "tutorial","icon": "fieldguide:textures/gui/scanning.png"}
- NBT Entry: Adds an entry that unlocks when a specific entity is scanned and its NBT matches a predicate. Useful for mods like CEM or Mob Properties Randomness that define custom mob variants via NBT.
{"type": "nbt_entry","id": "my_mod:green_zombie","entity_type": "minecraft:zombie","nbt": "{SomeCustomTag: 1b}","display": "minecraft:zombie"}
| Field | Type | Description |
|---|---|---|
id | String | Unique ID for this entry. |
entity_type | String | The base entity type to match against (e.g. minecraft:zombie). |
nbt | String | SNBT string. The entity must contain all of these tags for the entry to trigger (partial match). |
display | String | (Optional) Entity ID to render in the guide. Defaults to entity_type. |
When the player scans a matching entity, this entry is unlocked instead of the base entity's entry. Supports the standard "unlock" block.
Content Grouping
By default entries in the list appear in the order they were defined in content: []. However, if you want similar entries to be grouped together, a list of 'search queries' can be provided in group_by.
{"replace": false,"group_by": ["tree","#minecraft:flowers"],"contents": [...]}