Production context
GDD/01-Gameplay/05-Building-System.mdVerified implementation evidence
- Not verified for this documentation pass.
Relationships
FEAT-WEAPON-CUSTOMIZATIONFEAT-INVENTORYtool rolesFEAT-LOCK-ACCESS— canonical door, window and storage lock rules
Document contract coverage
Use these required Feature Specification areas during review. The HTML content below is authoritative; items not stated explicitly remain unresolved.
- ReviewPurpose & Player Value
- ReviewScope
- ReviewOut of Scope
- ReviewTerminology
- ReviewFunctional Behavior
- ReviewStates & Flows
- ReviewRules & Edge Cases
- ReviewDependencies
- ReviewAcceptance Criteria
- ReviewOpen Questions
Authoritative project content
Free-form (Rust-like) construction — [CONFIRMED]. Players place modular structural pieces that snap together to form custom bases. Bases are persistent on the server and raidable by other players.
Build modes
- Structure mode: place structural pieces (foundation, wall, floor, ceiling, doorway, stairs, ramp, window). Pieces snap to sockets on adjacent pieces; foundations snap to valid terrain.
- Deployable mode: place functional objects (door, storage box, crafting station, campfire/stove, sleeping bag/bed, workbench, turret [TBD], traps). The workbench is both a crafting station and the firearm customization station (09-Weapon-Customization.md); anyone nearby can use firearm work on it.
A build component (UBuildComponent) shows a ghost/preview, validates placement (collision, snap, support, ownership rules), and sends a server request to commit.
[CONFIRMED 2026-09-13] Place, upgrade, repair, and demolish require the acting player to hold an item that grants Tool.Role.Hammer (starter item: planned Item.Weapon.WoodenMallet). Authorize does not require Hammer. Canonical role/presence rules: FEAT-INVENTORY.
Piece set (v1 — minimal)
| Piece | Purpose |
|---|---|
| Foundation | Base anchor; must be placed first |
| Wall | Vertical barrier; snaps to foundation/floor edges |
| Floor / Ceiling | Horizontal surface; enables vertical building |
| Doorway + Door | Controlled access; built-in lock plus an optional independent installed Lock-item layer |
| Window wall | Defensive opening; openable windows use the same built-in and installed lock rules as doors |
| Stairs / Ramp | Vertical traversal |
Expand the set in later phases (high walls, gates, foundation steps, triangle pieces). Keep v1 small to control art + netcode + raiding-balance cost.
Snapping & placement rules
- Socket-based snapping (each piece exposes snap sockets); free rotation when not snapped.
- Placement validation (server-authoritative): no overlap with disallowed geometry, must be supported, must be within a build-allowed area, and the placer must have build permission for that location. Canonical no-build categories and volume shapes live in
FEAT-WORLD-DESIGN; exact buffer meters are authored per volume. - Build privilege: a Tool Cupboard / Territory Anchor concept [RECOMMENDATION] — placing an anchor claims a radius where only authorized players (squad/clan) can build/modify. This is the standard solution to grief-proofing free-form building and ties into territory progression. See ../04-Multiplayer/03-Clans-and-Squads.md.
Materials & upgrade tiers
Pieces are crafted from gathered resources and use three confirmed material tiers: Wood → Brick & Mortar → Steel. Higher tiers have more HP and resist more raid damage. Exact HP, resistance, upgrade-cost, and raid-cost values remain [TBD].
Health, damage & raiding
- Every placed piece has HP and a material tier; raid tools (explosives, melee against soft sides, cutting tools) deal type-specific damage. See ../04-Multiplayer/04-PvP-Raiding-and-Trading.md.
- [CONFIRMED] full raiding is allowed — bases can be breached and looted.
- [RECOMMENDATION] weak-side/strong-side mechanics (walls cheaper to break from the inside) for raid depth.
- Decay: unmaintained structures decay over time [RECOMMENDATION] to clean up abandoned bases on persistent servers (critical for server health).
Networking & persistence — [RISK]
This is one of the most expensive systems to do well:
- A base may contain hundreds of pieces. Naïvely each-piece-as-an-actor does not scale to ~40–60 players × many bases. Mitigations to evaluate: Instanced Static Meshes / Hierarchical ISM for visuals, lightweight per-piece state, dormancy, and net relevancy by distance. The project has ISM tooling available.
- All placed structures must be persisted and restored on server restart (positions, tiers, HP, ownership, container contents and applicable lock layers). See Network Architecture.
- Representation — [CONFIRMED]: normal walls, floors, and roofs use ISM; pieces under construction use Actors; attacked or temporarily stateful pieces use an Actor or ISM backed by a server-side record; doors, storage/chests, generators, traps, and crafting stations use Actors; cosmetic/static structures use ISM.
- Persistence — [CONFIRMED]: every persistent piece is represented by a data record in the dedicated server SQLite database. Actor promotion/demotion must preserve the same stable record identity.
- Relevancy: replicate interactive Actors by distance and dormancy; stream ISM visuals from authoritative server records. Exact promotion thresholds and update frequencies are performance-tuned.
Implementation guidance
UBuildComponent(C++) handles mode, preview, validation request.- Building pieces defined data-driven (mesh, sockets, tier, HP, cost) so adding pieces is content work, not code.
- Preview/ghost and input handling are reasonable to drive partly in Blueprint; placement validation and commit must be C++ server logic.
Door, window and storage locks — [CONFIRMED 2026-09-17]
FEAT-LOCK-ACCESS is canonical. World-existing doors/windows roll a one-time 30% built-in locked state; player-built doors/windows start unlocked. Built-in locks follow inside/outside and auto-unlock-on-open rules. Doors, windows and Player-built Storage may also carry an independent installed Lock item; installed access requires owner/current Squad or Lockpick. Player-built Storage has no built-in lock. Lock state and item identity are later P16/P17 durable base state, not part of the implemented P07 record set.
Building UI contract — [CONFIRMED]
FEAT-HUD-UI defines a placement radial with resource cost, material tier, snap mode, rotation, and contextual placement-failure reason, plus an action radial for Upgrade, Repair, Demolish, and Authorize.
Agriculture and livestock interfaces
[CONFIRMED 2026-09-13] FEAT-AGRICULTURE first increment plants on valid landscape/physics soil, not as a building piece. Collision overlap with building pieces fails placement. Plant records follow the same SQLite persistence pattern as placed pieces. Planters/pots are a later agriculture increment and are not added to the v1 piece set here. FEAT-LIVESTOCK enclosure pieces remain unapproved.