From 6acde0290d76a0c13f36fc15e431ac0bf96627da Mon Sep 17 00:00:00 2001 From: Kelsi Date: Tue, 5 May 2026 10:45:50 -0700 Subject: [PATCH] docs(editor): FORMAT_SPEC.md documenting all 5 novel open file formats --- tools/editor/FORMAT_SPEC.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 tools/editor/FORMAT_SPEC.md diff --git a/tools/editor/FORMAT_SPEC.md b/tools/editor/FORMAT_SPEC.md new file mode 100644 index 00000000..0b6e590e --- /dev/null +++ b/tools/editor/FORMAT_SPEC.md @@ -0,0 +1,36 @@ +# Wowee Open Format Specification v1.0 + +Novel file formats for custom WoW zone content. No Blizzard IP. + +## WOT — Wowee Open Terrain (JSON metadata) +- Extension: `.wot` +- Contains: tile coords, texture list, per-chunk layers/holes, water data +- Key: `"format": "wot-1.0"` + +## WHM — Wowee HeightMap (binary) +- Extension: `.whm` +- Magic: `WHM1` (0x314D4857) +- Layout: magic(4) + chunks(4) + vertsPerChunk(4) + [baseHeight(4) + heights[145](580)] × 256 + +## WOM — Wowee Open Model (binary) +- Extension: `.wom` +- Magic: `WOM1` (0x314D4F57) +- Layout: magic(4) + vertCount(4) + indexCount(4) + texCount(4) + bounds(28) + name + vertices + indices + texPaths +- Vertex: position(vec3) + normal(vec3) + texCoord(vec2) = 32 bytes + +## WOB — Wowee Open Building (binary) +- Extension: `.wob` +- Magic: `WOB1` (0x31424F57) +- Layout: magic(4) + groupCount(4) + portalCount(4) + doodadCount(4) + bounds(4) + name + groups + portals + doodads +- Group: name + vertices(pos+normal+uv+color) + indices + texPaths + bounds + outdoor flag + +## WCP — Wowee Content Pack (archive) +- Extension: `.wcp` +- Magic: `WCP1` (0x31504357) +- Layout: magic(4) + fileCount(4) + infoJsonSize(4) + infoJSON + [pathLen(2) + path + dataSize(4) + data] × N + +## zone.json — Map Definition +- Replaces WDT +- Contains: mapName, mapId, tiles, biome, file references + +## All formats are novel, portable, and open for redistribution.