Starship Horizons
Log In
☰
Knowledge Base›Map Editor

Map Editor

A map is where a mission happens — a star system, a region of space, a planetary surface. Missions reference a map and place their own objects into it; the map itself holds the permanent scenery.

Locations

A map is a tree of locations, not a flat list of coordinates. A system contains bodies, a body may contain places on or around it. This nesting is load‑bearing rather than cosmetic, because of how environment resolves.

A location is either a StarSystem or Open space; those are the only two types the game uses, and the only two the editor offers. Planets and moons are not objects: they are children of their system's location, edited on their own planet card.

Environment resolves up the tree

Environment — fog, weather, lightning, dust, starfield and ambient sound — is authored per location and resolved by folding from the root of the tree outwards to the location the player is at. A location that authors nothing inherits everything from its ancestors; a location that authors one of those groups overrides just that group and keeps the rest.

The rest of the environment block — skybox, ambient and star light, tone mapping, shadows, gravity, drag — is not folded field by field. A location with an environment block of its own states all of those itself, taking defaults for anything it leaves out. In the editor, Override here copies the resolved values into the location so you start from what you see, and Inherit everything removes its block again.

Two consequences:

  • Set the general character of a system once, at the root, and only override where somewhere should look different.
  • When somewhere looks wrong, the cause is often above it in the tree rather than in the location you are editing.

The sky is part of the environment: <environment skybox="…">. An older <skybox> element on the map, or skybox= on a location, still loads, and is moved into the environment the next time the map is saved.

Objects

Objects placed on the map are the permanent contents: stations, derelicts, debris, asteroid fields, nebulae. Each has a position and a rotation. What its class names depends on its type:

  • Object — a vessel, built from a vessel class. It becomes a contact the consoles can see. The file calls this type Vessel.
  • Static — scenery built from a model in the models list. It is drawn but is never a contact. The file calls this type Model, and an icon= on it sets its radar icon.
  • Cluster and Nebula — driven by their properties (source, radius, seed and spawn counts for a cluster; size, shape, palette and seed for a nebula) rather than a class.
  • Drone, Billboard and Spectator (a camera for the spectator display) are also available from the Type list.

On a map with systems and planets, an object must be homed on a planet: open the planet before adding or pasting, or the editor refuses. An object homed on a whole system belongs to no local space and never becomes a contact.

One trap worth knowing. Object rotation values are negated when applied — yaw, pitch and roll all invert between the file and the running game. If you are hand‑editing rotations and everything faces the wrong way, this is why. The editor's Yaw, Pitch and Roll fields hold the file's values and its view applies the same inversion, so what you see there is what the game will show. Spectator cameras are the exception: their angles are used as written.

Extent

A map's playable extent is computed by the server from its contents and sent to clients as bounds. It is not a field you set. (There is a dimensions field on maps, but it belongs to the galaxy generator and is not a surface map's size — setting it expecting it to resize a map does nothing.) The computed bounds only frame the opening view; to limit where ships can go, add a zone of type Bounds.

Editing

The map editor is a 3D view with a panel beside it. A breadcrumb along the top (Galactic › System › Planet, or Map › Location) says which level you are on, and you go down a level by picking from the panel's lists of locations, planets and objects, or by clicking in the view.

Right‑click does most of the work. On the galactic level it adds a system or an open‑space location; on a system it adds a zone; in a local space it adds an Object, Static, Cluster, Nebula or Zone, and on a selected object offers Move, Rotate, Clone, Copy and Delete. Focus (F), Frame All (Home) and the Zones (Z) and Collision (C) overlays sit on the view. An object's Advanced button opens its full record: occupants, cargo, hard points, dialog, tasks and properties.

Three practical notes:

  • Save whole. The editor's save writes the entire map including its locations. A partial save exists, and is used by the in‑game tuning panel to write a few environment fields without round‑tripping locations it never read — but from the editor, save everything.
  • There is no undo, and some things only add. Deleting an object is final. Locations are merged on save and never removed, so a location you rename is likely to come back under its old name as well; tidy those in the file.
  • Author environment on the map or a system, not a planet. The editor will let you edit an environment at planet level, but that block is not saved.

Tile maps and routes

Two kinds of map content are written in the file only, and the editor keeps them when it saves. A map with type="Tile" is a grid of tiles with a <tiles> layer rather than open space. And a map can choose how NPCs find their way across it: pathfinding="Surface" turns on route finding over the ground, using a hand‑authored network in <guides> where the map has one and the terrain otherwise. The default is open flight.

Tuning the look from inside the game

There is a renderer tuning panel available in‑game that edits the active environment live — fog, dust, starfield, sky, lighting, shadows and post‑processing — and can write some of it back. That is a much faster loop for getting a system to look right than editing and relaunching, because you are looking at the real thing under the real lighting.

The GM opens it for a console with the RENDERER button. Its Save → Map writes the map's root environment only, never a location's, so a location with its own block can hide what you saved. Save → Event writes the settings into a mission event instead, so a mission can change the look at a moment of its choosing.

Last updated 19 October 2026