Water (WATR)¶
Fallout 4 water is defined by WATR records that control visual appearance (fog, reflections, specular, noise, silt) and gameplay effects (damage spells, sounds). Each exterior cell or worldspace references a water type and a water height, and the engine renders a flat plane at that elevation using the WATR's material properties.
Data Flow¶
WRLD record
-> default water type (DNAM -> WATR FormID)
-> default water height (NAM2 -> float32)
CELL record
-> XCLW (water height, float32) — overrides worldspace default
-> XCWT (water type, FormID) — overrides worldspace default
Interior cells can also have water if the Has Water flag (bit 1 of CELL DATA) is set.
WATR Record¶
Type code: WATR
Top-Level Subrecords¶
| Subrecord | Type | Description |
|---|---|---|
| EDID | zstring | Editor ID |
| FULL | lstring | Display name |
| ANAM | uint8 | Opacity (0-255) |
| FNAM | uint8 | Flags (see below) |
| TNAM | formid | Material type (MATT) |
| SNAM | formid | Open sound (SoundDescriptor) |
| XNAM | formid | Consume spell (on drinking) |
| YNAM | formid | Contact spell (on touching) |
| INAM | formid | Image space modifier |
| DATA | bytes | Unknown |
| DNAM | struct | Main visual data (201 bytes, see below) |
| GNAM | bytes | Unknown |
| NAM0 | 3x float32 | Linear velocity (X, Y, Z) |
| NAM1 | 3x float32 | Angular velocity (X, Y, Z) |
| NAM2 | zstring | Noise layer 1 texture path |
| NAM3 | zstring | Noise layer 2 texture path |
| NAM4 | zstring | Noise layer 3 texture path |
Flags (FNAM)¶
| Bit | Name |
|---|---|
| 0x01 | Dangerous |
| 0x04 | Directional Sound |
DNAM — Visual Data (201 bytes)¶
Fog Properties¶
| Offset | Type | Field |
|---|---|---|
| 0x00 | float32 | Fog Depth Amount |
| 0x04 | RGBA | Fog Shallow Color |
| 0x08 | RGBA | Fog Deep Color |
| 0x0C | float32 | Fog Color Shallow Range |
| 0x10 | float32 | Fog Color Deep Range |
| 0x14 | float32 | Fog Shallow Alpha |
| 0x18 | float32 | Fog Deep Alpha |
| 0x1C | float32 | Fog Alpha Shallow Range |
| 0x20 | float32 | Fog Alpha Deep Range |
| 0x24 | RGBA | Fog Underwater Color |
| 0x28 | float32 | Fog Underwater Amount |
| 0x2C | float32 | Fog Underwater Near |
| 0x30 | float32 | Fog Underwater Far |
Physical Properties¶
| Offset | Type | Field |
|---|---|---|
| 0x34 | float32 | Normal Magnitude |
| 0x38 | float32 | Shallow Normal Falloff |
| 0x3C | float32 | Deep Normal Falloff |
| 0x40 | float32 | Reflectivity Amount |
| 0x44 | float32 | Fresnel Amount |
| 0x48 | float32 | Surface Effect Falloff |
| 0x4C | float32 | Displacement Simulator Force |
| 0x50 | float32 | Displacement Simulator Velocity |
| 0x54 | float32 | Displacement Simulator Falloff |
| 0x58 | float32 | Displacement Simulator Dampener |
| 0x5C | float32 | Displacement Simulator Starting Size |
| 0x60 | RGBA | Reflection Color |
Specular Properties¶
| Offset | Type | Field |
|---|---|---|
| 0x64 | float32 | Sun Specular Power |
| 0x68 | float32 | Sun Specular Magnitude |
| 0x6C | float32 | Sun Sparkle Power |
| 0x70 | float32 | Sun Sparkle Magnitude |
| 0x74 | float32 | Interior Specular Radius |
| 0x78 | float32 | Interior Specular Brightness |
| 0x7C | float32 | Interior Specular Power |
Noise Layers (3 layers, interleaved)¶
Fields are grouped by property, with all 3 layers stored consecutively.
| Offset | Type | Field |
|---|---|---|
| 0x80 | float32 x3 | Wind Direction (layers 1, 2, 3) |
| 0x8C | float32 x3 | Wind Speed (layers 1, 2, 3) |
| 0x98 | float32 x3 | Amplitude Scale (layers 1, 2, 3) |
| 0xA4 | float32 x3 | UV Scale (layers 1, 2, 3) |
| 0xB0 | float32 x3 | Noise Falloff (layers 1, 2, 3) |
Each layer also has a texture path in NAM2/NAM3/NAM4 (see top-level subrecords).
Silt & Screen-Space¶
| Offset | Type | Field |
|---|---|---|
| 0xBC | float32 | Silt Amount |
| 0xC0 | RGBA | Silt Light Color |
| 0xC4 | RGBA | Silt Dark Color |
| 0xC8 | uint8 (bool) | Screen Space Reflections |
Total DNAM size: 201 bytes (0xC9).
Velocity¶
NAM0 and NAM1 define water flow as linear and angular velocity vectors. These control the direction and speed of surface animation and physics interaction. Both are world-space float32 triplets (X, Y, Z).
Cell & Worldspace References¶
Water type and height are resolved per-cell with a fallback chain:
- CELL override:
XCWT(water type) andXCLW(water height) on the cell record - Worldspace default:
DNAM(default water type) andNAM2(default water height) on the WRLD record - Interior cells: water only renders if
Has Waterflag is set in CELL DATA