The role hierarchy
Every account carries one of four core roles. Each tier inherits everything below it — a Moderator can do everything an Author can, and an Admin can do everything anyone can.
- Play the game
- Chat in-world
- Character progression
- Everything above
- Edit assigned areas
- Modify tile collision
- Place NPCs & markers
- Everything above
- Admin console access
- Online player list
- Chat moderation commands
- Area overview
- Everything above
- Edit any area
- Change user roles
- Grant editor/translator access
- Content & config editors
- Server dashboard & registry
- Feature flags
Roles are assigned by an Admin through the admin console. Contact an Admin if a role change is needed.
In-game commands
Typed directly into chat. Commands marked Player are available to everyone; the rest require the listed role by default (see the callout above).
| Command | Role | Description |
|---|---|---|
/help | Player | Lists available commands. Client-side only. |
/time | Player | Reports the current in-game day/night time. |
/island | Player | Re-opens the Island Access window — a backup for players standing on their own island but not on the portal tile. |
/tp <player> | Moderator | Teleport yourself to a named online player. Queries the whole fleet if they're not on your node, and waits up to 3s for a reply. |
/visit <player> | Moderator | Teleport yourself directly onto a player's island — bypasses the portal and visitor list entirely. Works even if the owner is offline. |
/ban <username> | Moderator | Suspends the account and kicks them fleet-wide. Cannot target yourself, the built-in admin account, or an equal/higher role. |
/timeout <username> [minutes] | Moderator | Times the account out for the given minutes (default 60) and kicks them fleet-wide. Same target restrictions as /ban. |
/goto <area_id> [portal_id] | Admin | Teleport yourself to a portal in an area, through the normal portal-transfer path (safe across nodes). |
/move <player> <area_id> [portal_id] | Admin | Force-warp a named player — online or not, on any node — to a portal. |
/item <item_id> [qty] | Admin | Adds an item to your own inventory. |
/give <player> <item_id> [qty] | Admin | Adds an item to a named player's inventory. Works even if they're offline. |
/gold <player> <delta> | Admin | Adjusts a player's gold by a positive or negative amount (never below 0). |
/giveessence <player> <amount> | Admin | Grants island essence (the terrain-editing currency) to a player. |
/resetisland | Admin | Resets your own island back to its starter layout. There is no command to reset someone else's island — use the admin panel (see Islands below). |
/god | Admin | Toggles god mode for yourself — see the callout below. |
/god actually does
God mode is combat-only: monsters neither aggro onto you nor retaliate if you're already their target. It does not grant noclip, unlimited resources, or bypass tool requirements. It's tracked per-player and replicated fleet-wide, so it works correctly even if you're proxied onto another node. It clears automatically on logout.
/give, /gold, /giveessence, /visit, and /move all resolve their target purely by name lookup in the database, so they work against offline or other-node players. /tp is the exception — the target has to actually be online.
Chat moderation (automatic, not a command)
Two independent, always-on passes run over every chat message, both toggleable from Feature Flags:
Managing the world
The admin console is a separate web application at /admin. Log in with the same credentials as the game.
What you can see
A live list of every player currently connected, showing their username, area, and connection status. Useful for monitoring activity and spotting unusual patterns.
A searchable list of all registered accounts with their status, role, and email confirmation state. From here you can suspend accounts, send password resets, and (as Admin) change roles.
A summary of every area in the game — player counts, area IDs, and current load.
Time-series graphs for CPU usage, memory, player count, and NPC count. Switch between last hour, last 12 hours, last 24 hours, or last 7 days. Peak-of-all-time and peak-since-server-start values appear as fixed readings above the graphs. On production, a status card also reports whether the shared remote LED display is connected, which fleet node is currently driving it, and when it last updated or errored — the way to confirm the physical dashboard is alive without SSHing into the box.
Live status of every server node in the fleet — IDs, WebSocket addresses, owned areas, and load metrics.
Inject artificial packet delay and loss to test how the game handles poor connections without touching a real client.
Full control over every feature flag in the game — including the cmd_* flags that set each chat command's effective minimum role (see Chat Commands above), the chat moderation flags, and other rollout switches like subscriptions. Each flag can be overridden per-role or per-user on top of its global default, and changes apply immediately with no deploy.
Grant or revoke per-area content-editing permissions for Author-and-above users. See the Area Editor section below for details.
Grant a Translator (or Author/Moderator) permission to translate specific languages. Unlike Editor Access, this is scoped by language rather than by area — Admins can translate every language without a grant.
Grant essence to a character, reset a single player's island back to its starter layout, or (with a typed confirmation phrase) reset every island fleet-wide. A player online and standing on an island you reset is kicked back through the portal flow rather than hot-swapped in place.
Managing user accounts
In the Users list, click any row to expand its actions:
Granting editor access
Go to Editor Access in the left nav. A table lists every current permission grant. To give someone access to an area:
- Make sure their role is at least — use the Users panel to promote them first if needed.
- In the Grant Access form, enter the user's ID and the area ID (for example, start).
- Click Grant. The user can now open that area in the editor immediately.
To remove access, click Revoke next to the relevant row in the table. An Author or Moderator without at least one grant won't see the content editor in their nav at all — only Admins get it automatically.
Granting translator access
Go to Translator Access in the left nav. Grants are per-language rather than per-area: pick the user and the language they're permitted to translate for. A Translator without any grant sees the translator tooling but has nothing to act on until granted at least one language.
Items, NPCs, quests, achievements & game config
Alongside the Map Editor (Author-accessible, covered in the next chapter), the editor at /editor has several Admin-only pages for authoring game content. Each opens a list of entries organized into a drag-and-drop-reorderable folder tree, with a detail dialog for the selected entry.
Tabs: Common, Harvesting, Attack, Defense, Modifiers, Requirements, Consumable. Icons are chosen from the item spritesheet with a click-to-select popup picker, and the preview pane renders through the same sprite code the live client uses, so it matches in-world appearance exactly.
Tabs: Appearance, Light Source, Animal, Equipped Items, Combat Stats, Loot, Dialogue — Combat Stats and Loot only appear for NPCs that need them. Use the Animal tab plus a Harvesting entry to make a passing animal harvestable (see the player handbook's Harvesting section); leaving Combat Stats empty makes an NPC permanently non-attackable.
A quest has a giver NPC, an offer/accept/decline dialogue hook, and an ordered list of stages. Each stage is its own collapsible card with a requirement (item turn-in, kill count, interact, or report), a turn-in NPC, and its own embedded 3-page mini dialogue (In Progress / Turn In / After Turn In). A stage's turn-in NPC can differ from the quest giver, so multi-stage "delivery" quests are supported.
Define an id, name, description, optional icon (picked from the same visual tile picker used elsewhere), a single requirement (harvest / kill / craft count, optionally scoped to a specific item or NPC), and an optional reward of gold and/or items. Achievement names and descriptions are never shown mid-progress — players only find out when they unlock one.
One tabbed page covering server-tunable values that hot-reload the moment you save: Resource Loot Tables, Fishing, Skills, Crafting Recipes, Message of the Day, HP Regen, and Day/Night Cycle. Loot and Fishing tables now use an independent percentage chance per entry rather than relative weights — each entry rolls on its own, so more than one thing (or nothing at all) can drop from a single swing.
Building the world
The area editor is a full map and tile-properties editor that runs in your browser at /editor. Log into the game first — the editor reads your session automatically. If you're not logged in you'll be sent back to the game.
The interface
Working with layers
Areas have six fixed layers, drawn in order from bottom to top:
Toggle layer visibility with the eye icons in the layers panel. Painting always targets the currently selected layer.
Tools
The right-hand picker panel has separate Tiles and Stamps tabs; switching tabs swaps only that tab's own default tool, so an active Eraser, Fill, or Marker tool isn't reset just by switching. Your tool selection and other prefs now save immediately, so a reload mid-edit won't lose them.
Markers
Markers are non-tile placements handled in their own panel. The two structural ones are required for a working area:
Tile properties & collision
Switch to the Tile Properties panel, then click a tile in the picker to select it. The editor shows a diagram of the tile with 16 clickable segments — the blocking directions.
Each edge is split into two halves so a wall can block only part of a tile — useful for diagonal walls and door frames. Click a segment to toggle it. The collision map you see on tiles in the map editor updates immediately and saves with the tileset.
The shadow toggle controls whether the tile casts a visual shadow. Shadow fill darkens the tile itself; shadow V-flip mirrors the shadow projection vertically, useful for tiles that face the opposite direction.
Saving
The editor auto-saves 1.5 seconds after your last change. You can also save immediately with Ctrl+S. A version timestamp is recorded each save — if you edit an area locally with the tools dev server, the deploy process compares timestamps and keeps whichever version is newer, so production edits are never accidentally overwritten.
Creating a new area
- Open the area dropdown at the top of the map editor and choose New area.
- Set the area ID (lowercase letters and underscores, e.g. forest_north), name, width, and height in tiles. Choose a tileset.
- Paint tiles on the ground layer to give the area its base terrain.
- Place a Start marker (in the markers tool) to set where players spawn when they enter from a different area.
- Place Link markers at the edges to connect this area to neighbouring ones.
Supporting player islands
Every player can own a personal island, entered through an animated portal tile placed in the world (currently in the starting town). Islands aren't authored in the editor — players terrain-edit them live, in-world, spending a currency called essence per edit.
/giveessence or the admin panel can top a player up.If a player reports being stuck in water or unable to reach their island, the most common fixes are: confirm they're using the portal (or /island if they're already on the island but off the portal tile), or as a last resort use /resetisland — the caller's own island only — or the admin panel's per-player island reset, which works on anyone's island and kicks them out cleanly if they're currently on it.
Account management
Changing your password
Log into the game, open your profile (click your character name), and use the Change password form. You'll need to enter your current password to confirm.
Forgotten password
- On the login screen, click Forgot password.
- Enter your registered email address and submit.
- You'll receive an email with a reset link valid for one hour. Click it, choose a new password, and log in.