Tronsoft Games / Scenario reference

Empire Scenario Format 1.0

Empire Hex v2.2.2 | Solo Game

Return to the tutorial

Purpose and side counts

A scenario is a JSON starting position using schema: "empire-scenario-1.0". It contains terrain, cities, units, victory settings, and optional metadata. Side 0 is always the single human; sides 1-3 are computer opponents. numPlayers counts all sides, not human seats. A valid playable scenario needs a human city and at least one rival city.

Use campaign saves to preserve a running game. Scenario import starts a new campaign at turn 1. Objective markers are annotations; they do not replace the selected victory rule.

Core fields

FieldContract
schema / nameempire-scenario-1.0 and a nonempty scenario title.
numPlayers2-4 total sides: one human and 1-3 AI.
victoryMode / turnLimitconquest, domination, or score; a positive turn limit for score play.
tilesUnique integer q/r coordinates, terrain set to land or water, and cityId set to a matching city ID or null. Land tiles may also have landform; road is an optional boolean retained by exports.
citiesUnique sequential IDs starting at zero, matching tile coordinates, owner -1 for neutral or a supported side index, name, production, and a queue of valid unit types. Keep city IDs aligned with their array order.
unitsUnique numeric IDs, supported unit type, valid side owner, map coordinates, and playable unit state. Land units belong on land and sea units on water. Use at most one unit per hex.
objectives / metadataOptional objective coordinates, AI personality data, map seed, and map preset. A seed is metadata, not a full saved campaign.

The ten unit type identifiers are army, fighter, transport, destroyer, submarine, hq, artillery, engineer, bomber, and cruiser. Use the exported or packaged examples for complete unit and city fields.

Landforms, roads, and compatibility

Base terrain remains land or water. The optional landform applies to land and accepts plains, forest, hills, mountains, marsh, or desert. A land tile without this field defaults to Plains. Loading older scenarios preserves their map rather than generating new landforms.

road: true marks a road on land. Terrain painting, save/load, and scenario export retain the existing terrain fields. The v2.2.1 artwork update does not change the v2.2.0 rules or scenario data. Scenario schema remains empire-scenario-1.0. See the terrain reference for entry costs, ground defense, sight, and the movement-allowance cap.

Tile examples

These are entries for a scenario's tiles array, not a complete playable scenario.

[
  {"q": 0, "r": 0, "terrain": "land", "landform": "forest", "road": true, "cityId": null},
  {"q": 1, "r": 0, "terrain": "land", "landform": "mountains", "road": false, "cityId": null},
  {"q": 2, "r": 0, "terrain": "land", "cityId": null},
  {"q": 3, "r": 0, "terrain": "water", "cityId": null}
]

The third tile is a compatible legacy land tile and plays as Plains. The first tile is Forest with a road: ground entry costs 1 MP, while Forest's ground defense and sight effects remain. Water has no landform modifier.

Author and test

  1. Open Scenario Editor, choose ownership and paint/place tools, and click map hexes. Paint Plains, Forest, Hills, Mountains, Marsh, Desert, or Water; add or remove roads with the road tool.
  2. Build legal starting positions, with cities for both the human and AI.
  3. Name the scenario and run Validate Scenario. Correct errors and inspect warnings.
  4. Export JSON, then import that file's text through Scenarios.
  5. Playtest movement, production, terrain access, and a path to the chosen victory condition.

Island Duel JSON and Three Ports JSON are included as starting references. Structural validation is a useful check; it does not certify balance or guarantee a completable match.