Valenfeld Β· world & art
World
One node space over every creative thing. Pick a kind for its full browser, a saved view for the production gaps, or search; each node links to its canonical page and its live typed relations.
Kind
loadingβ¦
Valenfeld Β· world & art
One node space over every creative thing. Pick a kind for its full browser, a saved view for the production gaps, or search; each node links to its canonical page and its live typed relations.
Kind
loadingβ¦
medieval:camp/tentfallback: code:lair_hide_tentheight 2 1 of 17 variants (randomly picked at runtime)
code:lair_campfireprocedural β built by code, no static mesh file (check the matching Bench)medieval:camp/firefallback: code:lair_campfireheight 0.55 1 of 3 variants (randomly picked at runtime)
medieval:camp/woodfallback: code:lair_stumpheight 0.45 1 of 6 variants (randomly picked at runtime)
code:lair_weapon_rackprocedural β built by code, no static mesh file (check the matching Bench)medieval:storage/boxfallback: code:crateheight 0.7 1 of 8 variants (randomly picked at runtime)
{
"_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."
}