Decursio Stages
Generated page, edit
scripts/gen_schema_pages.py instead.Decursio Stages restriction schema (1.20.1), pkl4mc dialect.
Not vanilla datapack content, Decursio Stages scans a config folder itself, not data/<namespace>/… via the resource-reload system. Place rendered output at config/decursio_stages/restrictions/<name>.json (filename = restriction id, used to match/update the file at runtime; the JSON body has no “name” field).
Player stage unlocks (Stages tag) are runtime/NBT state, not datapack-authorable, out of scope here. This schema only covers the restriction file format: what a player without a given stage can’t pick up/use/break/enter while it’s active.
Usage
amends "@pkl4mc/decursio_stages_restrictions.pkl"Example
restrictions
// Decursio Stages restriction - one example covering every list type.
// Output goes to config/decursio_stages/restrictions/<name>.json, not a datapack path.
amends "@pkl4mc/decursio_stages_restrictions.pkl"
restrictions {
new {
name = "example_early_game"
stage = "early_game"
itemList {
new { item = "minecraft:diamond" }
new { item = "minecraft:netherite_ingot"; nbt { display { Name = "Locked" } } }
}
fluidList {
new { fluid = "minecraft:lava" }
new { tag = "forge:molten_metal" }
}
tagList {
"forge:ingots/netherite"
}
mobList {
new {
spawnType { "NATURAL" }
whitelistBlacklist = "blacklist"
entityID = "minecraft:wither"
minLight = 0
maxLight = 7
effects {
new { effect = "minecraft:strength"; amplifier = 1; duration = 200; chance = 50 }
}
loadout {
new { item = "minecraft:netherite_sword"; slot = "mainhand"; chance = 25 }
}
}
}
dimensionList {
new { dimension = "minecraft:the_end"; message = "You aren't ready for the End yet" }
}
structureList {
new {
structure = "minecraft:fortress"
canUseBlock = false
canPlaceBlock = false
canBreakBlock = false
useBlockList { "minecraft:chest" }
}
}
modList { "twilightforest" }
containerList { "minecraft:chest" }
exceptionList {
new { item = "minecraft:netherite_ingot"; nbt { display { Name = "Unlocked" } } }
}
settings {
itemsTitle = "Early Game Lock"
hideInJEI = true
canPickupItems = false
}
}
}