Position/scale are saved as fractions of the tile (a 1×1 square),
so they stay correct at any zoom, orbit angle, or in-game tile size.
Drag on empty space to orbit · scroll to zoom · click an object to select it.
Drop a saved .json layout, or a .glb/.gltf model, anywhere in the window.
Board
Loading…
The real live board (public/map.js → FPMap.MAPS.duel) — territory
shapes, roads, and capitals/cities read straight from the game's
own data, not a stand-in grid. "Reset board" clears placed
objects and any manual tile-colour overrides below.
Active tile
Active tile: none
Tiles start coloured by the board's real starting ownership
(FPMap.seedOwners) — these swatches are a manual preview
override on top of that, not saved as part of the board itself.
Water tiles (no territory) can't be recoloured.
Add to active tile
Stamps whatever you've built in Tile View — position, rotation, and scale included — onto this tile.
Gizmo mode
Selected object
Nothing selected
Placed objects
Layout file
Ship it to the game
Select a placed .glb prop, then copy the printed
model: {...} fragment into that structure kind's
entry in STRUCTURE_KIT (public/map.js) — see
public/models/README.md. The .glb file itself still needs a
manual copy into public/models/.
Click a tile to make it active (new objects spawn there). Drag
empty space to orbit · scroll to zoom · press R to fit the whole
board · click an object to edit it. Drop a saved .json layout, or
a .glb/.gltf model, anywhere in the window.