The classic editors — Mappy, Annihilator, Cavedog’s TAE — all work the same
way: you don’t paint terrain tile by tile, you place ready-made sections
(hills, coasts, rivers, cliffs) and fit them together. This page runs that
workbench in your browser: pick a world, snap sections onto the flat base,
and export a playable .tnt + .ota pair. Everything runs locally in your
browser — nothing is uploaded.
Workbench
each tab shows only its own tools and widgets
no tile picked
Ctrl+V = paste (absolute heights) · Alt+Ctrl+V = Paste fit · right-click removes · Esc = place tool
Minimap preview
How it works
- Tabs — the workbench is organised by task: Terrain (sections palette and the place/select/paint tools), Features, Starts, Shapes (cliff quarter shapes and piece assembly) and Map (size, heights, metal). Each tab shows only its own tools and widgets; the map canvas, minimap and status line stay put, and switching a tab picks the matching tool.
- Place sections — click a piece in the palette (it arms, blue frame),
then click the map. Existing pieces can be dragged to move,
right-click removes them (or select +
Delete).Escclears the selection. Mouse wheel zooms, dragging the empty base pans. - Select, copy, cut, paste — the Select tool drags a frame over any
tiles, including parts of already-placed sections.
Ctrl+Ccopies the framed area (flattened),Ctrl+Xcuts it out (the area returns to base ground),Ctrl+Vpastes it — click to drop copies as often as you like. - Pipette & paint — the Pipette picks a single tile from the map together with its heights; Paint then draws it on free ground with a brush of 1–9 tiles, and Fill free areas covers all ground not occupied by sections. Painted heights are exported, so picking a sea tile and filling the gaps turns them into real water between your islands.
- Seam fit — sections carry their heights baked in. The badge on each palette piece compares its edge contours against the pieces already placed at the hover position: fits = seams match within 3 height units (the same tolerance the Mappy-compatible section packs were built with), no fit = visible cliff at the seam.
- Flat base — the base height auto-snaps to the world’s standard flat level (each tileset has its own); adjust it if your sections disagree.
- Reload-safe — everything you build is autosaved in your browser (localStorage): after F5 the world reloads and your map comes back. For a permanent copy use Save layout; Clear map starts fresh.
- Features — the Features tool places map features (trees, rocks, wrecks) from the feature libraries: pick one in the strip (search and category filter), click the map to place it — multi-cell pieces claim their whole footprint (shown under the cursor), right-click removes. Scatter turns a click into a random patch (density and radius sliders; a category filter with scatter on mixes features from that category, dry ground only by default). The game engine places at most 2048 features per map and every name must exist in the game’s feature TDFs — stock names always work, pack names need that feature pack installed.
- Export —
.tnt(terrain: tile graphics, heights, features, minimap) and.ota(mission header with the start positions — place 1–10 yourself with the Starts tool or let Auto-spread distribute them on dry ground; with no starts placed, four are generated on the driest quadrant ground). Drop both into your TA directory or a map UFO. Save/load keeps the section layout as a small.webmappy.jsonfor later editing.
Limits (current version)
- Starting resources are the corpus standard (1000 metal / 1000 energy for players and AI alike, as every shipped map and the original Mappy editor write them).
- Metal works the way the game does it: the OTA
SurfaceMetalvalue is the base metal of every cell (toolbar input), and metal spots are features — the game stamps each feature’smetal=value (byte range) onto its cells at load, which is what makes a rich spot. The picker’s metal spots only filter and theM…badges show them (wreckmetal=values in the thousands are reclaim wealth, not spots). Note the stamp overwrites the cell value: on a metal world (Surface metal 255) a feature with a lower value makes its cells poorer, not richer.MohoMetalis written by every editor and present in all corpus OTAs — but the v3.1 engine never reads it (kept here for corpus fidelity); moho extractors simply run the higherextractsMetalrate of their unit type. - Features with GAF sprites draw as the real in-game graphics, placed with the original Mappy editor’s exact rule (the sprite origin sits on the footprint’s ground point, terrain height included). 3D-model features (trees, rocks, wrecks) show a schematic square until rendered previews exist for them.
- Sections cannot be rotated or mirrored (the tile graphics are baked).
- One world per map — tilesets cannot be mixed (neither can the real editors’).
Sections © 1998 Cavedog Entertainment and the respective community tileset authors — see the Map Section Packs page for the full credits.