← Technical Manual

TECHNICAL MANUAL // 07

Validation & Publishing

Validation rules, local saves, and publishing to the server

Validation

Before a map can be published, it must pass a set of structural and metadata checks. The validator catches design errors that would make the map unplayable or confusing.

Switch to the Save tab and the validator runs automatically. Results appear as a summary badge — errors (red) block publishing, warnings (amber) are advisory, and all clear (teal) means the map is ready.

Three validation states: errors, warnings, and all clear
Validation states. Errors must be fixed before publishing. Warnings suggest improvements but don't block.

Structural Rules

These check whether the map forms a valid game board:

RuleSeverityDescription
At least one territoryErrorThe map must have nodes
At least one connectionErrorTerritories must be linked
No orphaned nodesErrorEvery territory must have at least one connection
Connected graphErrorAll territories must be reachable from all others
All territories attackableErrorEvery node must have at least one incoming connection
At least 6 populatable nodesErrorMinimum territory count for viable gameplay
No dead endsWarningTerritories with no outgoing attacks limit strategy
At least one bonus zoneWarningMaps without bonuses have fewer strategic options

Metadata Rules

These check the map’s identity and image:

RuleSeverityDescription
Name 5–100 charactersErrorMap needs a valid name
Image requiredErrorA background image must be uploaded
Image ≤ 10 MBErrorFile size limit
PNG/JPEG/WebP formatErrorSupported formats only
Dimensions 1080–3840pxErrorWidth and height must be in range

Saving Locally

The Save Changes button writes your current work to the browser’s local storage. This happens entirely on your device — nothing is sent to the server. Save frequently to avoid losing work.

Your project persists across browser sessions. You can close the editor and come back later to resume where you left off.

Exporting to Disk

The Save to Disk button downloads your map as a JSON file. This is useful for backup, sharing with collaborators, or transferring between devices. You can reload an exported file later with the Load button.

Publishing

When validation passes, the Publish button sends your map to the server. A confirmation dialog appears before the first publish — once published, the map is visible to all players in the map browser.

What happens on publish:

  1. The map definition (territories, connections, bonuses, spawn groups) is serialized as JSON
  2. The map image is encoded and uploaded
  3. The server assigns a unique map ID and version hash
  4. The map appears in the public map browser

Updating a Published Map

You can update a published map by making changes and publishing again. A second confirmation dialog warns that the update will overwrite the live version. The server tracks versions — older games using the previous version continue to work, but new games will use the updated map.

The save panel with local save, disk export, and publish options
The save panel. Save locally, export to disk, or publish to the server.

Preview Before Publishing

Before you publish — and before you ask a playtester to spend time on your draft — open the map in the read-only viewer. Players see your map at their default zoom, with their HUD covering part of the screen, with bonus zones and connection arrows rendered exactly as the game renders them. The author view in the editor doesn’t show any of that. The viewer does.

The Save tab has two buttons next to the publish controls:

The share link includes the draft version number, so testers always see the version you intended to share — not whatever you happen to have open in the editor right now. Drafts shared this way render with an UNPUBLISHED badge in the panel header so the tester knows they’re looking at a work-in-progress.

The save panel with Preview in Viewer and Generate Share Link buttons
Preview in Viewer opens the current draft. Generate Share Link gives you a URL to send to playtesters.
The map viewer panel header with an UNPUBLISHED badge
A shared draft renders with the UNPUBLISHED badge so the viewer knows it isn't the live version.

Use it for playtesting

Send the share link to a playtester and ask them to walk through it before they sit down at a lobby. Two things to look for:

Bug reports during playtest go through the in-app bug-report flow (testers know the drill from the tester landing page). Discussion-level feedback — “this bonus is too generous”, “spawns A and B feel imbalanced” — is better in Discord or wherever you’d normally hash out design.