CONTENT CONTRACT · VERSION 1
ruleset
Session-wide inventory, survival, respawn and actor limits.
Signature
{ checkpoint_mode: CheckpointMode, drop_lifetime_ticks: PositiveTicks, dug_sand: (ItemId)?, encounters: Encounters, fishing: (FishingRules)?, hearth: StructureId, hotbar_slots: PositiveCount, house_destroyed_notice: TextKey, hunger_per_day: Count, id: ContentId, inventory_slots: PositiveCount, kind: "ruleset", max_actors: PositiveCount, pickup_radius_mm: PositiveDistance, progression: (Progression)?, quick_use: {TagId}, respawn_delay_ticks: PositiveTicks, respawn_health: PositiveHitPoints, sign_inputs: {ItemStack}, stash: StructureId, village_animals: {AnimalPlacement}, village_building: StructureId, village_chests: ({ChestPlacement})?, villager_character: CharacterId, villager_loadout: Loadout, villagers: {NpcId} }Fields
| Name | Type | Meaning |
|---|---|---|
checkpoint_mode | CheckpointMode | Policy that selects persistent checkpoint times. |
drop_lifetime_ticks | PositiveTicks | Lifetime of an uncollected ground item in simulation ticks. Range: 1…2147483647; Unit: tick |
dug_sand | ItemId | Item a pickaxe digs out of sand terrain; without it sand digs as stone. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: item |
encounters | Encounters | Encounters of the raids, the generator's sites and the wilds. |
fishing | FishingRules | Fishing skill levels; absent keeps every angler at level 1. |
hearth | StructureId | Structure of the village hearth. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: structure |
hotbar_slots | PositiveCount | Accessible hotbar slots; cannot exceed inventory capacity. Range: 1…2147483647; Unit: count |
house_destroyed_notice | TextKey | Notice to a player put out at the door of a house that fell, was taken down or vanished. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: text |
hunger_per_day | Count | Whole hunger units consumed over one simulated day. Range: 0…2147483647; Unit: count |
id | ContentId | Package-qualified identity; unique within its declaring namespace. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$ |
inventory_slots | PositiveCount | Positive maximum number of inventory slots. Range: 1…2147483647; Unit: count |
kind | "ruleset" | Discriminant |
max_actors | PositiveCount | Maximum actor population admitted by this ruleset. Range: 1…2147483647; Unit: count |
pickup_radius_mm | PositiveDistance | Maximum distance for collecting ground items. Range: 1…2147483647; Unit: mm |
progression | Progression | Levels, skill points and mana of the players; absent keeps every player at level 1 without mana. |
quick_use | {TagId} | Tags of the quick-use keys in key order; a key uses the first owned item carrying its tag. Items: 0…8; Unique entries |
respawn_delay_ticks | PositiveTicks | Positive delay before a dead player may respawn. Range: 1…2147483647; Unit: tick |
respawn_health | PositiveHitPoints | Positive health assigned when a player respawns. Range: 1…2147483647; Unit: hp |
sign_inputs | {ItemStack} | Items a building's sign costs. Items: 0…16; Unique entries |
stash | StructureId | Structure that keeps the stock of a fallen or dismantled house. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: structure |
village_animals | {AnimalPlacement} | Village animals of a new world. Items: 0…256 |
village_building | StructureId | Structure of a village building of the world base without a structure of its own model. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: structure |
village_chests | {ChestPlacement} | Filled chests placed once in every world, relative to the hearth. Items: 1…16 |
villager_character | CharacterId | Character of the villagers the world generator places. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: character |
villager_loadout | Loadout | Inventory and quick slots of a new villager. |
villagers | {NpcId} | The village's residents, spawned in the start map's settlement. Items: 0…64; Unique entries |
Validated example
{
"checkpoint_mode": "dawn",
"drop_lifetime_ticks": 22500,
"dug_sand": "core:sand",
"encounters": {
"camp": "core:camp",
"den": "core:den",
"nest": "core:nest",
"raid": "core:raid",
"wildlife": "core:wildlife",
"woodland": "core:woodland"
},
"fishing": {
"levels": [
3,
7,
12,
18,
26,
36,
50,
70,
95
],
"skill": "core:fishing_skill"
},
"hearth": "core:hearth",
"hotbar_slots": 9,
"house_destroyed_notice": "core:house_destroyed",
"hunger_per_day": 20,
"id": "core:default_rules",
"inventory_slots": 27,
"kind": "ruleset",
"max_actors": 1024,
"pickup_radius_mm": 1350,
"progression": {
"base_mana": 50,
"level_variable": "core:player_level",
"level_xp": [
100,
140,
180,
230,
280,
340,
400,
470,
550,
640,
740,
850,
970,
1100,
1250,
1400,
1600,
1800,
2000
],
"mana_regen_permille": 60,
"points_per_level": 1
},
"quick_use": [
"core:quick_heal",
"core:light_source",
"core:recall_charm"
],
"respawn_delay_ticks": 300,
"respawn_health": 100,
"sign_inputs": [
{
"count": 2,
"item": "core:wood"
}
],
"stash": "core:stash_structure",
"village_animals": [
{
"animal": "core:dog",
"x_mm": -2000,
"z_mm": 5000
},
{
"animal": "core:dog",
"x_mm": -1000,
"z_mm": 6500
},
{
"animal": "core:cat",
"x_mm": 3000,
"z_mm": -2000
},
{
"animal": "core:cat",
"x_mm": -3000,
"z_mm": -3000
},
{
"animal": "core:chicken",
"x_mm": -1500,
"z_mm": -1000
},
{
"animal": "core:chicken",
"x_mm": 1000,
"z_mm": -1500
},
{
"animal": "core:chicken",
"x_mm": 0,
"z_mm": 1500
},
{
"animal": "core:pig",
"x_mm": -2000,
"z_mm": 1000
},
{
"animal": "core:pig",
"x_mm": 2000,
"z_mm": 1500
},
{
"animal": "core:goose",
"x_mm": 1500,
"z_mm": -2500
},
{
"animal": "core:goose",
"x_mm": -1000,
"z_mm": 2500
},
{
"animal": "core:goose",
"x_mm": 2500,
"z_mm": 0
}
],
"village_building": "core:village_building",
"village_chests": [
{
"items": [
{
"count": 999,
"item": "core:wood"
},
{
"count": 999,
"item": "core:stone"
},
{
"count": 999,
"item": "core:sand"
},
{
"count": 999,
"item": "core:crystal"
}
],
"structure": "core:chest_structure",
"x_mm": 1500,
"yaw_mdeg": 0,
"z_mm": -14000
},
{
"items": [
{
"count": 1,
"item": "core:leather_hood"
},
{
"count": 1,
"item": "core:iron_helmet"
},
{
"count": 1,
"item": "core:steel_helmet"
},
{
"count": 1,
"item": "core:leather_vest"
},
{
"count": 1,
"item": "core:iron_cuirass"
},
{
"count": 1,
"item": "core:steel_cuirass"
},
{
"count": 1,
"item": "core:leather_breeches"
},
{
"count": 1,
"item": "core:iron_legguards"
},
{
"count": 1,
"item": "core:steel_legguards"
},
{
"count": 1,
"item": "core:leather_boots"
},
{
"count": 1,
"item": "core:iron_greaves"
},
{
"count": 1,
"item": "core:steel_greaves"
},
{
"count": 1,
"item": "core:leather_gloves"
},
{
"count": 1,
"item": "core:iron_gauntlets"
},
{
"count": 1,
"item": "core:steel_gauntlets"
},
{
"count": 1,
"item": "core:wooden_shield"
},
{
"count": 1,
"item": "core:iron_shield"
},
{
"count": 1,
"item": "core:steel_shield"
},
{
"count": 40,
"item": "core:arrow"
}
],
"structure": "core:chest_structure",
"x_mm": 0,
"yaw_mdeg": 0,
"z_mm": -14000
}
],
"villager_character": "core:villager_body",
"villager_loadout": {
"hotbar": [
"core:axe"
],
"items": [
{
"count": 1,
"item": "core:axe"
}
]
},
"villagers": [
"core:wren",
"core:milo",
"core:fern",
"core:bram",
"core:poppy",
"core:otto",
"core:lark",
"core:pip"
]
}