Skip to content

In-game editor ​

The editor runs inside the client. Log in as an admin (the first account on a world is the owner, which counts), enter the world and press F2, or type /edit. If neither does anything, the editor extension is not enabled on that world: worlds created before it existed do not have it. As the owner type /extensions to see what is on, then /extensions enable editor scripts and restart the server (/stop, then start it again), or start the server once with --enable editor,scripts, which adds them to the world for good. A panel opens on the right with four tabs. Everything you save goes through the server, which checks it, writes it to the world's content folder and reloads it live, so other players see the change at once.

Files land in worlds/<name>/content/<kind>/<name>.json (scripts: .run). That is the host layer: it overrides shipped content with the same id and survives updates of the game and its extensions. Deleting from the editor removes only these files; shipped content comes back. The folder is served to clients as the host-content pack (its hash is in the manifest), so players who join see the same quests, items and NPCs the server runs; players already in the world receive each saved definition as it is saved.

Map ​

Paints the zone you stand in. Scroll the wheel to zoom out and see more.

ToolLeft buttonRight button
Paint / Erasemark / clear cells on the selected terrain layer (brush 1 to 7)the opposite
Fillflood-mark the connected areaflood-clear
Propplace the prop picked in the list (solid and flat flags apply)remove the prop on that tile
Collisionforce solid (Shift: force open)back to what the layers say
Spawnset the spawn named in the box (default is where new characters start)remove a named spawn
Portaladd a 1x1 portal to the chosen zone's spawnremove the portal there

Terrain layers are the library's Wang-corner tilesets: each blends a lower terrain into an upper one, and marking a cell paints the layer's cells_mark terrain there (see Content format). Add a layer by picking a tileset and whether it starts filled lower or upper; "see-through lower" lets the layer below show where this one is lower, which is how a dirt path sits on grass. Up/Down reorder layers; props always draw above terrain.

Resize (W, H, then the button) keeps the top-left corner: new rows and columns start unmarked, and props, portals or cells outside the new size are dropped (spawns are clamped in). Ctrl+Z undoes a stroke, Ctrl+Shift+Z redoes, Ctrl+S saves. Save validates the zone (row sizes, things outside the map, portals to unknown zones, a spawn inside a wall are reported by line), rebuilds it for everyone in it and moves anyone now standing in a wall. Revert reloads the saved zone. New creates a blank zone from one tileset (host:<id>); Go teleports you to any zone's spawn.

Quests ​

A form over the quest definition: giver and turn-in NPCs (pickers from the server's NPC list), level gate, prerequisites, objectives (kill, collect, talk, reach, with a picker that lists mobs, items, NPCs or zones for the chosen type), rewards and the four texts. Check validates without saving.

NPCs ​

Name, title, sprite and portrait from the style pack, zone and tile ("Use my tile" takes where you stand), facing, vendor stock (one item price per line) and the dialogue as a node graph. Each box is a node: its id, its text and option rows (text and action). Drag from an option's port on the right to another node to set where it leads; type close, vendor, emit:ext:event or an extension's action in the action box. Pick the start node above the graph. Saving respawns the NPC from the new definition.

Scripts ​

The world's .run scripts in a code box (see Run Script). Check compiles on the server and reports problems by line without saving; Save writes the file and recompiles every script. New starts from a small when login template.

MMO Run: host your own pixel-art MMO.