Skip to content

Panel reference

This page takes the client panel apart feature by feature. If you just want to get playing, Install and first run is enough.

ElementWhat it does
Connection statusWhether you’re connected
VitalsYour character’s live numbers
Spectator memory useHow much memory the 3D view is holding
ReloadReloads the 3D spectator view (use it if the view freezes or corrupts)
Pause / Resume (⏸ / ▶)Pauses a running agent. While paused it makes no LLM calls, so it costs nothing — use it to take over by hand, or to save money
Apply & restartOnly appears if you changed a setting while the agent is running. The agent reads its config once at startup, so this is how a change takes effect
Manual / AI switchSwap between the two modes live
Change character / serverBack to the earlier screens

What’s worn, slot by slot.

Shows what’s carried, and lets you mark what the agent is allowed to dispose of:

  • S (Sellable) — the agent may sell it
  • D (Dropable) — the agent may drop it

Tick the boxes, then press Apply labels to send them (they’re staged, not sent one at a time).

This is the gate that stops an agent disposing of gear you care about — leave something unmarked and it won’t touch it.

Two halves:

  • Personality — this character’s own prompt, layered on the shared rules. Editable. Saving while the agent is running restarts it.
  • Memory — what this character remembers, written by the agent itself and read-only.

Personality is where you shape behaviour (“you are a cautious hunter; retreat below half health”). Memory is what it has accumulated on its own.

Place bookmarks. Use current position records where you are, then name it and add it.

Pairs with Dispatch: save fishing spots, dungeon entrances and shop locations, then send the agent to one.

Save frequently used instructions under a name and send them with one click instead of retyping.

Each preset has a name and the prompt to send. Saved presets appear as buttons beside the Dispatch input.

Two tabs:

  • Thoughts — every prompt sent and every reply, with timings. Has filters, Follow (auto-scroll to newest) and Clear.
  • Log — the agent process’s own stdout / stderr.

Wondering why the agent made a decision? Thoughts. Wondering why it broke? Log.

The strip under the game view is the one control that reaches a running agent.

Type an instruction and it arrives as the character’s next turn — best-effort, with no guarantee it will be followed. It’s a whisper, not an order: you’re suggesting, the model still decides.

FieldDefaultWhat it does
Backend Codex CLI One of four — see below
Model Varies by backend Suggestions in a dropdown; free text also works
Base URL https://ollama.com/v1 Only appears for the OpenAI-compatible backend
API key HTTP backends only. Stored in the OS keychain
Reasoning effort none none / low / medium / high. Only affects models that support it
Maximum tokens 4096 Cap on a single reply
Temperature 0.7 Lower is steadier, higher is more varied
BackendKindSuggested modelsNotes
Codex CLI CLI gpt-5.4-mini, gpt-5.4, o4-mini Uses the Codex CLI you are already signed in to. No API key needed here
Claude CLI CLI sonnet, opus, haiku Uses your local Claude CLI login. Also no key
OpenRouter HTTP qwen/qwen3.7-flash and others Needs an API key. Model guidance on the previous page
OpenAI-compatible HTTP Whatever you enter Any OpenAI-compatible endpoint. Defaults to Ollama, so local models work

The old Automatic play and Advanced tabs were merged into this one in v0.18.

FieldDefaultWhat it does
Active response 5s Response cadence when something is happening. Shorter is more responsive and more expensive
Quiet-world patrol 8s Response cadence when nothing is going on
Continue adventuring while alone On Turn it off and it stops calling the AI when no other players are nearby — the setting to use when idling
Active interval (s) 5 The raw value behind the slider above
Idle interval (s) 8 Likewise
Watch port 8808 Port for the local spectator panel. Change only on a conflict
Log level info info / debug / warn. Raise to debug before reporting a problem
Concurrent LLM calls 2 How many requests are in flight at once
Request timeout (s) 120 How long to wait for one request. Raise it for slow local models

The first three are the main cost control. To spend less, raise both intervals or turn off adventuring while alone.

The agent raises a toast for each action it takes. This tab styles them, with a live preview.

FieldDefault
Font size 13
Background transparency 75
Persist time 7s
Fade duration 0.4s
Max toasts shown 10

Purely cosmetic — none of it changes agent behaviour. If the screen feels busy, lower the count and the persist time.

FieldDefaultWhat it does
BGM volume 100 Background music volume, mutable
Sound effects 100 Sound effect volume, mutable

These control the embedded game view’s own volume. The panel pushes them in via postMessage; the real storage is that iframe’s own localStorage (a different origin), so this is only what gets pushed to it.

Managed on the Server screen. The built-in openmmo.to.nexus profile is fixed; custom ones can be created, edited, duplicated and deleted, and test-connected before use.

A profile holds:

FieldWhat it is
Profile nameName of the profile
Game serverThe server’s WebSocket address
Terrain originWhere terrain assets are fetched from
Google client IDThe OAuth client that server accepts
Google client secretIts secret, stored encrypted

These five travel as a set — a server only accepts sign-in tokens issued by a client ID on its own allowlist, so client IDs can’t be shared between servers.

API keys and connection-profile secrets are encrypted with the OS keychain (Electron safeStorage, with an AES-GCM fallback) and handed to the agent as environment variables.

They are never written into agent-client’s config file — a config pasted into a bug report carries no credential. The config itself is regenerated from the panel on every start; an existing hand-written file is imported once and backed up next to it.