Feature Specification

Wetness and Rain

When it rains, exposed characters and worn/held surfaces get wet. Wetness is a real, replicated visual (and optional survival) state — not only a sky/particle effect.

Status: draftOwner: UnassignedUpdated: 2026-08-27

Production context

Canonical sourceGDD/01-Gameplay/11-Wetness-and-Rain.md
Decision markers8 confirmed · 6 recommendations · 17 TBD
Browser document roleRead-only production view; edit the GDD source or this generated system through the project workflow.

Verified 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

When it rains, exposed characters and worn/held surfaces get wet. Wetness is a real, replicated visual (and optional survival) state — not only a sky/particle effect.

Related: 04-Survival-System.md, 10-Blood-Visual.md, 06-Inventory-and-Items.md, 08-Character-Creation.md, 02-Player-Character.md, ../02-World/01-World-Design.md, ../03-Enemies/01-Zombie-Design.md, ../06-Art-Audio/01-Art-Direction-and-MetaHuman.md.

Blood is a separate scalar. Being wet does not replace BloodAmount. Rain washing blood off is still [TBD] in 10-Blood-Visual.md.

Layers — [CONFIRMED]

Layer What it is Persistence
World rain Server weather: rain on / rain off (and intensity). Particles, wet ground, audio. Session weather state; exact cycle [TBD]
Mesh wetness WetAmount 0–1 on a Dynamic Material Instance (MID) Character and (where specified) item/instance state
Local HUD Optional wet-lens / droplets on the local player's screen Fades; not shown to other players. Existence [RECOMMENDATION]; tuning [TBD]

Day/night lighting stays cosmetic for survival decay (no temperature-from-clock in v1). Rain is the gameplay-visible weather exception: it applies wetness. Fog, snow, and other weather types do not apply wetness unless a later decision says so.

Rain does not change zombie AI, loot tables, or spawn density in v1.

Exposure — [CONFIRMED] rules, numbers [TBD]

A pawn is rain-exposed when all of the following are true:

  1. Server weather is raining (intensity above a [TBD] threshold).
  2. The pawn is outdoors — no valid overhead shelter.
  3. The pawn is not in a [TBD] exception (e.g. fully enclosed vehicle — treat as shelter [RECOMMENDATION] once vehicles exist).

Shelter (blocks rain):

  • Player-built pieces that form a roof / ceiling over the pawn (same building system as 05-Building-System.md).
  • Authored interiors / overhangs that the world marks as covered (trace or volume — [TBD] technical).

Does not block rain by itself:

  • Trees / foliage [RECOMMENDATION] do not count as roof in v1 (readability; avoid cheap full-cover camping in woods). Confirm if art wants light drip under canopy later.
  • Open doorways with no ceiling.

While rain-exposed, WetAmount increases toward a ceiling (treat cap as 1.0 unless decided otherwise). Rate vs rain intensity is [TBD] — do not invent a curve in this doc.

While not rain-exposed, WetAmount dries toward 0. Dry rate, heat-source speed-up (fire, indoor warmth), and wind are [TBD].

Mesh wetness — material contract — [CONFIRMED]

  • Approach: parameter on the existing material, not a required Material Layer Blend stack.
  • Control: a single scalar WetAmount in 0–1 per wet object (one value for the whole item/mesh, including multi-slot materials), same ownership pattern as BloodAmount.
  • Look: darker / higher gloss / wet sheen. Exact parameter names, roughness/albedo mapping, and drip VFX are [TBD] (technical art).
  • If a mesh has no wetness path, it shows no wet look. Missing path is not a ship blocker for that asset; new player clothing, body/hair, and held items in this pipeline are expected to expose it.
  • WetAmount and BloodAmount can both be > 0. Materials must compose them without one overwriting the other.

What gets wet — [CONFIRMED]

While rain-exposed:

  • Hair and skin (not eyes) — WetAmount on the character/pawn, not on appearance cosmetics. Changing clothes does not clear body/hair wetness. See 08-Character-Creation.md.
  • Outer worn clothing — which slot is “outer” is [TBD] until clothing layers are designed (same open question as blood).
  • Held / equipped weapons and tools (visible in hands).

Does not get wet from rain in v1:

  • Items in inventory that are not worn or held (backpack contents stay dry).
  • World loot bags and containers [RECOMMENDATION] stay dry (avoid persist/replication cost). Revisit if designers want soaked ground loot.
  • Eyes — no mesh wetness on the eye; optional local HUD droplets instead.

Zombies, bosses, and animals use the same pawn WetAmount contract when rain-exposed (visual only in v1). Whether AI wetness is saved across restart is [TBD] (same class of question as AI blood).

Dual state: item vs character — [CONFIRMED]

Surface Where WetAmount lives Unequip / swap
Worn clothing, gloves, shoes, held weapon/tool Item instance Stays on that item (drop, loot, inspect, re-equip)
Hair, skin (not eyes) Character Stays on the character when outfits change

Both can be wet at once (wet shirt item + wet skin/hair on the pawn).

Water that is not rain — [TBD]

Swimming, wading, and standing under a faucet are not specified here. Do not treat them as rain. If they should share WetAmount, that is a later decision.

Gameplay — [RECOMMENDATION] temperature, rest [TBD]

  • [RECOMMENDATION] wetness feeds temperature (wet + cold exposure is harsher; drying near fire is safer). Survival already names wet/cold; this is the rain hook. Exact modifiers are [TBD] and live in data. See 04-Survival-System.md.
  • [CONFIRMED] rain/wetness does not change zombie senses, loot, or stamina by itself in v1.
  • Waterproof clothing / rain gear: [TBD]. Do not assume a waterproof flag until designed.
  • Wet weapons: no jam/spread from wetness in v1 (dirt/cleaning is already cut). Durability unchanged by rain.

Networking, inspect, save — [CONFIRMED]

  • Other players must see mesh wetness (worn clothes, held gear, hair/skin, zombies when relevant).
  • Item WetAmount is instance state: world drops of a soaked worn/held item show wet if that item carried the scalar.
  • Character body/hair WetAmount persists in the player save (log off wet → log in wet).
  • Weather (is it raining) is server-authoritative and replicated for VFX/audio; clients do not decide exposure.
  • HUD droplets are local-only and are not replicated.

Pipeline ownership — [CONFIRMED]

  • Spec first; material wetness parameters follow the contract above.
  • Game-wide for player characters and future clothed/held content; unhooked meshes simply look dry.

Open questions still [TBD]

Do not implement as if decided:

  • Rain intensity thresholds, wet/dry rates, and heat-source dry bonus.
  • Overhead-shelter query (line trace vs volumes vs building roof test).
  • Clothing outer-layer resolution.
  • MID parameter names and wet look (roughness, albedo, normals, drips).
  • HUD droplets: whether they exist, duration, intensity vs WetAmount.
  • Vehicles as full shelter.
  • Rain washing BloodAmount.
  • Shared wetness from swimming / faucets.
  • Waterproof gear.
  • AI wetness persistence.
  • World surface wetness (puddles, wet roads) beyond “rain VFX exists.”
  • Temperature modifier numbers if the survival hook is approved.