Skip to main content
Version: 5.6.x

Stage Examples

This page provides various examples of stage configurations in JSON format to demonstrate the capabilities of History Stages. These examples can be used as templates for creating custom progression systems.

Basic Item and Recipe Locking

This example demonstrates a simple stage that locks basic iron-related items and recipes.

{
"display_name": "Iron Age",
"research_time": 60,
"items": [
"minecraft:iron_ingot",
"minecraft:iron_block",
"minecraft:raw_iron"
],
"recipes": [
"minecraft:iron_pickaxe",
"minecraft:iron_sword",
"minecraft:iron_chestplate"
]
}

Tag and Mod Locking

This example shows how to lock entire categories of items using tags and how to lock all items from a specific mod, with an exception.

{
"display_name": "Industrial Era",
"research_time": 120,
"tags": [
"forge:ores/copper",
"forge:ingots/copper"
],
"mods": [
"create"
],
"mod_exceptions": [
"create:andesite_alloy"
]
}

Dimension and Entity Locking

This example illustrates how to restrict access to a dimension and control entity interactions.

{
"display_name": "Nether Exploration",
"research_time": 180,
"dimensions": [
"minecraft:the_nether"
],
"entities": {
"attacklock": [
"minecraft:blaze",
"minecraft:wither_skeleton"
],
"spawnlock": [
"minecraft:ghast"
]
}
}

Advanced NBT Locking

This example demonstrates how to lock items based on specific NBT data, such as an enchanted book with a specific enchantment level.

{
"display_name": "Advanced Magic",
"research_time": 240,
"items": [
{
"id": "minecraft:enchanted_book",
"nbt": {
"StoredEnchantments": [
{
"id": "minecraft:mending",
"lvl": 1
}
]
}
}
]
}

Per-Entry Action Locking

This example demonstrates how unlock_actions can restrict only specific interactions per entry, leaving the others available even while the stage is locked. Here, players can pick up and equip iron swords but cannot attack with them, while iron pickaxes are completely locked.

{
"display_name": "Combat Training",
"research_time": 90,
"items": [
"minecraft:iron_pickaxe",
{
"id": "minecraft:iron_sword",
"unlock_actions": ["pickup", "equip"]
}
],
"tags": [
{
"id": "forge:ingots/iron",
"unlock_actions": ["pickup"]
}
]
}

Per-Source Spawn Locking

This example demonstrates how spawnlock entries can restrict only specific spawn sources per entity. Wither skeletons cannot spawn naturally or from structures (so Nether fortresses produce none), but spawners and spawn eggs still work — useful for letting modpack creators distribute the mob through curated encounters while the stage remains locked.

{
"display_name": "Nether Hunting",
"research_time": 150,
"entities": {
"spawnlock": [
"minecraft:ghast",
{
"id": "minecraft:wither_skeleton",
"unlock_sources": ["spawner", "spawn_egg"]
}
]
}
}

Biome and Interaction Locking

This example locks a biome and restricts non-combat interactions with a specific entity, gating both survival and taming until the stage is unlocked.

{
"display_name": "Desert Survival",
"research_time": 90,
"biomes": {
"biomes": ["minecraft:desert", "#minecraft:is_savanna"]
},
"entities": {
"interactionlock": [
{
"id": "minecraft:camel",
"unlock_actions": ["mount"],
"lock_items": ["minecraft:saddle"]
}
]
}
}

Players cannot survive in deserts or savannas until the stage is unlocked, and camels can be mounted freely but not saddled until then.

Structure Generation Cap and Lose on Death

This example caps how many villages can generate in the world while the stage is locked, and relocks itself if the (individual) owner dies.

{
"display_name": "Settlers",
"research_time": 60,
"lose_on_death": true,
"structures": {
"block_generation": [
{
"id": "#minecraft:village",
"phase": "while_locked",
"max": 3
}
]
}
}

At most 3 villages generate while the stage is locked; once unlocked, village generation is unrestricted. Because lose_on_death is set, this stage relocks (and its items drop) if the player dies — this field only has an effect on individual stages.

Comprehensive Stage Example

This example combines multiple locking mechanisms into a single, complex stage definition.

{
"display_name": "The End Game",
"research_time": 300,
"items": [
"minecraft:ender_pearl",
"minecraft:ender_eye"
],
"tags": [
"forge:end_stones"
],
"recipes": [
"minecraft:end_crystal"
],
"dimensions": [
"minecraft:the_end"
],
"structures": [
"minecraft:end_city"
],
"entities": {
"attacklock": [
"minecraft:enderman"
],
"spawnlock": [
"minecraft:ender_dragon"
]
},
"dependencies": [
{
"type": "xp_level",
"level": 30
},
{
"type": "entity_kills",
"entity": "minecraft:enderman",
"count": 50
}
]
}
Something wrong or missing here? Ask on Discord · Open an issue