WDT satellites¶
The per-map satellite files later expansions added beside the main .wdt,
each a chunked entity of its own on the WDT assembly: the _occ occlusion
heightmaps and _lgt placed lights (WoD+), the _fogs volumetric fogs
(Legion 7.2.5+) and the _mpv particulate volumes (BfA+). Fields carry the
same FourCC and expansion badges as the main file's page; a missing satellite
file simply leaves its entity default-empty.
Occlusion (_occ.wdt)¶
Per-tile low-resolution heightmaps (the same 17×17 + 16×16 int16 grid as the WDL tiles) that occlude distant geometry: the MAOI index locates each tile's grid inside the packed MAOH block.
WDTOcclusion
¶
A _occ.wdt occlusion satellite (WoD+), abstract over the client version: per-tile low-resolution heightmaps the renderer occludes against. Construct a concrete version with WDTOcclusion.for_version(expansion). See https://wowdev.wiki/WDT.
for_version staticmethod¶
for_version(expansion: Expansion) -> WDTOcclusion⟨version⟩Construct the concrete WDTOcclusion for a client version — the abstract WDTOcclusion is never instantiated directly. The return type narrows per expansion (a typed overload per Expansion member), so for_version(Expansion.Wod) returns a WDTOcclusionWod; a runtime Expansion value yields the AnyWDTOcclusion union.
validate
¶
Check the logical integrity contracts this file must satisfy to LOAD in the client, which write() deliberately never enforces. Call it before writing when you want to know the result will load. A file read from a client and left unmodified reports no errors; warnings mark states real client files ship.
Returns:
| Type | Description |
|---|---|
ValidationReport
|
every violated contract, each with its member path |
ensure_valid
¶
Validate and raise on the first error instead of returning a report — the assert-style face of validate().
Returns:
| Type | Description |
|---|---|
None
|
nothing; raises when validate() finds any error |
Occlusion¶
Per-tile low-resolution heightmaps the renderer occludes distant geometry against.
mver
property
writable
¶
The file format version; 18 like the main WDT.
indices
property
¶
indices: list[OcclusionIndex]
The tile index (MAOI): one record per tile with occlusion data, locating its heightmap inside heights. Empty for WMO-only maps.
heights
property
¶
The packed heightmap block (MAOH): the tiles' interleaved 17x17 + 16x16 int16 grids back to back, addressed by the index records' offsets (same layout as the WDL MARE payload). Empty for WMO-only maps.
Lights (_lgt.wdt)¶
Freely placed map lights — point lights under lamp posts and the like, plus Legion's spot lights, light-cookie textures and animations. The point-light record was replaced twice: MPLT (WoD) → MPL2 (Legion) → MPL3 (Shadowlands).
WDTLights
¶
A _lgt.wdt lights satellite (WoD+), abstract over the client version: the map's freely placed point and spot lights. Construct a concrete version with WDTLights.for_version(expansion). See https://wowdev.wiki/WDT.
for_version staticmethod¶
for_version(expansion: Expansion) -> WDTLights⟨version⟩Construct the concrete WDTLights for a client version — the abstract WDTLights is never instantiated directly. The return type narrows per expansion (a typed overload per Expansion member), so for_version(Expansion.Wod) returns a WDTLightsWod; a runtime Expansion value yields the AnyWDTLights union.
validate
¶
Check the logical integrity contracts this file must satisfy to LOAD in the client, which write() deliberately never enforces. Call it before writing when you want to know the result will load. A file read from a client and left unmodified reports no errors; warnings mark states real client files ship.
Returns:
| Type | Description |
|---|---|
ValidationReport
|
every violated contract, each with its member path |
ensure_valid
¶
Validate and raise on the first error instead of returning a report — the assert-style face of validate().
Returns:
| Type | Description |
|---|---|
None
|
nothing; raises when validate() finds any error |
Lights¶
The map's freely placed point and spot lights, their textures and animations.
mver
property
writable
¶
The file format version: 18 up to Legion 7.0.1.20740, 20 since 7.0.1.20914.
Volumetric fogs (_fogs.wdt)¶
Placed fog volumes. The file appears (empty) in Legion 7.2.5; the first VFOG content ships with BfA 8.0.1, and format version 2 (The War Within) adds the VFEX extension records.
WDTFogs
¶
A _fogs.wdt volumetric-fog satellite (Legion 7.2.5+), abstract over the client version. Construct a concrete version with WDTFogs.for_version(expansion). See https://wowdev.wiki/WDT.
for_version staticmethod¶
for_version(expansion: Expansion) -> WDTFogs⟨version⟩Construct the concrete WDTFogs for a client version — the abstract WDTFogs is never instantiated directly. The return type narrows per expansion (a typed overload per Expansion member), so for_version(Expansion.Legion) returns a WDTFogsLegion; a runtime Expansion value yields the AnyWDTFogs union.
validate
¶
Check the logical integrity contracts this file must satisfy to LOAD in the client, which write() deliberately never enforces. Call it before writing when you want to know the result will load. A file read from a client and left unmodified reports no errors; warnings mark states real client files ship.
Returns:
| Type | Description |
|---|---|
ValidationReport
|
every violated contract, each with its member path |
ensure_valid
¶
Validate and raise on the first error instead of returning a report — the assert-style face of validate().
Returns:
| Type | Description |
|---|---|
None
|
nothing; raises when validate() finds any error |
Fogs¶
Placed volumetric fog volumes.
mver
property
writable
¶
The file format version: 1 since Legion 7.2.5, 2 since 11.0.0.54935 (adds VFEX).
Particulate volumes (_mpv.wdt)¶
Weather particulate volumes in repeated PVMI/PVPD/PVBD groups — the i-th elements of the three lists belong together, and the on-disk group interleave round-trips through the journal. The PVMI record layout is keyed on the file's own version payload, so it is kept opaque.
WDTParticulates
¶
A _mpv.wdt particulate-volume satellite (BfA 8.0.1+), abstract over the client version: weather particulate volumes in repeated PVMI/PVPD/PVBD groups. Construct a concrete version with WDTParticulates.for_version(expansion). See https://wowdev.wiki/WDT.
for_version staticmethod¶
for_version(expansion: Expansion) -> WDTParticulates⟨version⟩Construct the concrete WDTParticulates for a client version — the abstract WDTParticulates is never instantiated directly. The return type narrows per expansion (a typed overload per Expansion member), so for_version(Expansion.Bfa) returns a WDTParticulatesBfa; a runtime Expansion value yields the AnyWDTParticulates union.
validate
¶
Check the logical integrity contracts this file must satisfy to LOAD in the client, which write() deliberately never enforces. Call it before writing when you want to know the result will load. A file read from a client and left unmodified reports no errors; warnings mark states real client files ship.
Returns:
| Type | Description |
|---|---|
ValidationReport
|
every violated contract, each with its member path |
ensure_valid
¶
Validate and raise on the first error instead of returning a report — the assert-style face of validate().
Returns:
| Type | Description |
|---|---|
None
|
nothing; raises when validate() finds any error |
Particulate volumes¶
Weather particulate volumes in repeated PVMI/PVPD/PVBD groups.
mver
property
writable
¶
The _mpv format version, 1 to 4; the PVMI record size is keyed on it (0xF5C / 0xFE8 / 0x10D8).