Production context
GDD/01-Gameplay/04-Survival-System.mdVerified implementation evidence
- Not verified for this documentation pass.
Relationships
Document contract coverage
Use these required Feature Specification areas during review. The imported GDD below is canonical; 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
Canonical GDD content
Full-sim survival — [CONFIRMED]. The player manages multiple decaying needs. Neglect causes escalating penalties and eventually death. This is a primary source of the "push" that forces players out of safety.
Tracked stats
All stats live on USurvivalStatsComponent (C++, server-authoritative, replicated to the owning client for HUD).
| Stat | Decays from | Effect when low | Effect when depleted |
|---|---|---|---|
| Health (HP) | Damage, starvation, exposure | — | Death (full-loot drop) |
| Stamina | Sprinting, attacking, jumping | Slower actions | Cannot sprint/attack until recovered |
| Hunger | Time, exertion | Reduced max stamina, slow HP drain | HP drain (starvation) |
| Thirst | Time, heat, exertion | Reduced stamina regen, screen effects | HP drain (faster than hunger) |
| Temperature | Environment (biome/zone), clothing, shelter, wetness | Stamina/HP penalties (hypothermia/heat) | HP drain |
[RECOMMENDATION] keep v1 to these five. Additional needs (bleeding, infection, broken bones, energy/sleep) are [TBD] and best deferred — they multiply tuning and UI cost.
Restoration
- Hunger: food items (raw → cooked; cooking via campfire/stove building deployable). Raw/spoiled food may carry penalties.
- Thirst: water items; unpurified water risks penalties; purification via crafting/boiling.
- Temperature: clothing layers, fire/heat sources, shelter, avoiding wet/cold exposure (rain wetness: 11-Wetness-and-Rain.md).
- Health: bandages/medkits/meds (crafted or looted); passive regen only when other needs are satisfied [RECOMMENDATION].
- Stamina: passive recovery, gated by hunger/thirst.
Status effects
Negative and positive states layered on top of base stats: - Negative: bleeding, poisoned (e.g., from a spitter zombie), cold/overheated, well-fed-debuff-if-overeaten [TBD]. - Positive: well-fed, hydrated, warm → small regen/efficiency bonuses. - Permanent buffs from first-time boss kills also live in this layer. See 07-Crafting-and-Progression.md.
[RECOMMENDATION] implement status effects and the survival stats as GAS attributes + GameplayEffects, so periodic decay, instant restoration, and timed/permanent buffs all use one consistent system. See ../05-Technical/01-Tech-Stack-and-Engine.md.
Encumbrance
- Inventory has a weight limit. Carrying more reduces move speed and increases stamina drain; past a hard cap, the player cannot sprint. See 06-Inventory-and-Items.md.
Day/Night & weather interaction
[CONFIRMED] day/night does not change temperature decay or zombie behavior in v1. Temperature is driven by biome/zone, clothing/shelter, and (when hooked) wetness — not by the clock on the sky.
[CONFIRMED] rain is not cosmetic-only: exposed pawns gain wetness. Spec: 11-Wetness-and-Rain.md. Rain still does not change zombie AI or loot in v1.
[RECOMMENDATION] feed WetAmount into temperature (wet + cold is worse; fire/indoors dry faster). Modifier numbers are [TBD] in data. Do not treat fog/snow as wetness unless designed later.
Networking & persistence
- Server authoritative for all stat changes; client receives values for HUD.
- Survival stats are part of the persisted player state (a player who logs off hungry logs back in hungry). See ../04-Multiplayer/01-Network-Architecture.md.
- [TBD] whether stats decay while logged off. Default [RECOMMENDATION]: do not decay needs while offline (avoids logging in dead), but the world/base still exists and is raidable.
Tuning
All rates (decay per minute, restoration amounts, penalty thresholds) live in data (curves/DataTables) for balancing without recompiling. Numbers are [TBD] until playtesting.