STATUS.md: what the generator kit produces, the pipeline commands, what's verified (build/export/set), first-pass caveats, git state, and next passes. AGENTS.md §6.3: test tilesets without packing a .hak by dropping loose .set/ .mdl/.wok into ~/Documents/Neverwinter Nights/development/ (toolset reads it). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4.6 KiB
wgt01 — Build Status & Notes
Progress log for the Westgate Urban Foundation MVP tileset (prefix twu01).
Spec: KICKOFF.md. How NWN needs things shaped: ../AGENTS.md.
Last updated: 2026-07-04.
What exists — the generator kit (generator/)
One source of truth (tiles.py) feeds four tools; the two NWN emitters need no
Blender, so they're directly testable.
| File | Role | Needs Blender? |
|---|---|---|
tiles.py |
Single source of truth: 40-tile table, 12 materials, the 12×12 test map, and all pure derivations (paint / height / walkmesh quads / .set corner+crosser mapping). PREFIX=twu01. |
no |
build.py |
Builds westgate_urban_foundation_mvp.blend — 40 tile collections (VIS_/WOK_/BLOCK_ + edge custom props), TILE_EDGE_METADATA text block, PREVIEW_tile_library_grid, PREVIEW_12x12_test_district. |
yes (4.0.2) |
export_mdl.py |
Real NWN export via Neverblender → 40 .mdl + 40 .wok (AuroraBase tile/dummy, trimesh, one aabb walkmesh; correct surfacemats). |
yes + addon |
make_wok.py |
Pure-Python ASCII .wok emitter (verts+faces+surfacemat+AABB tree). Fallback when Neverblender absent — format validated identical to Neverblender's output. |
no |
make_set.py |
First-pass twu01.set (INI, CRLF) from the tile grammar. |
no |
flake.nix exposes these as apps + a dev shell (pinned Blender 4.0.2,
neverwinter-nim, cleanmodels).
Pipeline (commands)
cd wgt01
nix run .#build -- out.blend # 1. Blender tile library
nix run .#export -- out.blend mdl/ # 2. real .mdl + .wok (Neverblender)
nix run .#set -- twu01.set # 3. first-pass .set (CRLF)
# nix run .#wok -- wok/ # ASCII .wok fallback only (export_mdl preferred)
Verified (2026-07-04)
- build: 40 collections, 144/144 district cells placed, 0 skipped, 12 materials.
- export: 40
.mdl+ 40.wok. Surfacemats correct — CP1 allwok_Stone(4), CN1 allwok_Nonwalk(7), BR_1/CE_S walkable+blocker mixed..mdlhasnewmodel twu01_cp1,classification TILE, AuroraBase name == resref. - Neverblender: enabled + working headless via the flake's
blender-4.0.2 --background, reading~/.config/blender/4.0(same config as the interactive session). Surfacemat = walkmesh face material slot index afternvb_utils.create_wok_materials(mesh)— not the material name. .set: CRLF (1224/1224 lines), 40 tiles, 3 terrains (cobble/raised/canal), 2 crossers (ramp/canal_edge). Corners/heights derive from each tile's N/E/S/W edge grammar; ramp N-corners → height 1, canal edges →canal_edgecrosser, non-walkable tiles →PathNode=N.
Testing in the toolset — no .hak needed
The toolset reads loose files from ~/Documents/Neverwinter Nights/development/
(confirmed present). Drop the build outputs there and they're picked up directly:
DEV="$HOME/Documents/Neverwinter Nights/development"
cp mdl/twu01_*.mdl mdl/twu01_*.wok "$DEV"/
cp twu01.set "$DEV"/
Then in the toolset: create a small area using the twu01 tileset, place tiles,
walk-test pathing/heights. (Packing a .hak with nwn_erf is deferred until the
set is validated.)
First-pass caveats — tune before shipping
- PathNode is a placeholder (
Awalkable /Nnon-walkable) — verify creature routing per tile shape in the toolset; real pathnode letters matter. - No
.itppalette yet — tiles may not appear in the toolset palette tree until one is authored (GFF;neverwinter-nim'snwn_gff). The.setstill loads for area creation. - No minimaps —
ImageMap2Drefs exist in the.setbut the.tgas don't (skipped by decision; Westgate doesn't use them). - Substitutions:
RA_C= straight-ramp geometry;STA= smooth ramp WOK proxy over stepped visual;SW_C/T/X/Eshare the straight-sidewalk visual. MAT_void_blackis defined but currently unpainted (11/12 materials realised).- Corner terrain is a heuristic from edges — hand-tune adjacency in the toolset.
Git
Branch wgt01-tileset-kit (main still unborn — git branch -f main wgt01-tileset-kit to promote). Commits:
60af184— build guide + 40-tile generator kit1284f15— real.mdl/.wokexport via Neverblender
Next passes
- Author
twu01palstd.itppalette so tiles show in the toolset palette tree. - (optional) A
dev-installflake app to copy build outputs intodevelopment/. - Walk-test in the toolset → tune PathNodes, crossers, corner terrains.
- Pack
.hak(nwn_erf) once validated.