All kits
Catalog · camp

KIT

Catalog · camp

catalog

DOMAIN

catalog

PATH

data/kits/catalog/camp.json

PARTS

7

NOTE

Open-world PACK part vocabulary (the Pack DSL, docs/designs/living-world-procgen.md §1) — the camp/lair prop-cluster parts a data pack (data/kits/packs/*.json) names by KEY, resolved through KitSet exactly like every other domain. Code-built by default (the plan's §0/§6: assets/models/camps/ is still empty), each with a `code:lair_*` builder wrapping the existing LairKit primitives — swapping a part to a real model later is a catalog edit here, never a PackComposer/pack-def change. `cargo_crate` reuses the shared medieval storage box (same recipe family as the interior `crate` key) since a camp's stolen goods are the same object as a house's storage crate. `player_campfire`/`player_stump` back the PLAYER's own ephemeral rest-camp (scripts/world/gen/PlayerCamp.gd, T-sy031) — real medieval-pack models (assets/models/medieval/camp/{fire,wood}/*.glb, already present on disk, unlike the still-empty assets/models/camps/ this note's Code-built-by-default line refers to) so the tent/fire/stump read as one coherent low-poly set; each still falls back to a code builder if the pack ever goes missing.

Metadata

domaincatalog
pathdata/kits/catalog/camp.json
parts7
_noteOpen-world PACK part vocabulary (the Pack DSL, docs/designs/living-world-procgen.md §1) — the camp/lair prop-cluster parts a data pack (data/kits/packs/*.json) names by KEY, resolved through KitSet exactly like every other domain. Code-built by default (the plan's §0/§6: assets/models/camps/ is still empty), each with a `code:lair_*` builder wrapping the existing LairKit primitives — swapping a part to a real model later is a catalog edit here, never a PackComposer/pack-def change. `cargo_crate` reuses the shared medieval storage box (same recipe family as the interior `crate` key) since a camp's stolen goods are the same object as a house's storage crate. `player_campfire`/`player_stump` back the PLAYER's own ephemeral rest-camp (scripts/world/gen/PlayerCamp.gd, T-sy031) — real medieval-pack models (assets/models/medieval/camp/{fire,wood}/*.glb, already present on disk, unlike the still-empty assets/models/camps/ this note's Code-built-by-default line refers to) so the tent/fire/stump read as one coherent low-poly set; each still falls back to a code builder if the pack ever goes missing.

Parts (7)

tent_hide
tent_hidemedieval:camp/tent1 of 17 variants (randomly picked at runtime)
no static preview
campfirecode:lair_campfireprocedural — built by code, no static mesh file (check the matching Bench)
player_campfire
player_campfiremedieval:camp/fire1 of 3 variants (randomly picked at runtime)
player_stump
player_stumpmedieval:camp/wood1 of 6 variants (randomly picked at runtime)
no static preview
weapon_rackcode:lair_weapon_rackprocedural — built by code, no static mesh file (check the matching Bench)
cargo_crate
cargo_cratemedieval:storage/box1 of 8 variants (randomly picked at runtime)
no static preview
banner_polecode:lair_war_bannerprocedural — built by code, no static mesh file (check the matching Bench)
Catalog · camp — Valenfeld — Valenfeld