Skip to content
Decursio Stages

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
    }
  }
}