OpenRouter presets use an OpenRouter key. OpenAI direct uses a key from platform.openai.com (api.openai.com). xAI direct uses a key from console.x.ai. Custom is any OpenAI-compatible Chat Completions base.
Saved in this tab’s session only. Play and Build world use it.
Key stays in this tab (sessionStorage); never put it in the repo.
OpenRouter reasoning.effort. ox-alpha allows low / high / max (default max, cannot disable). Default leaves the model default.
How many bot Chat Completions can run at once. Default 1. Range 1–64. After a 429 this drops to at most 2 until a success.
Floor for the JSON action list. Default 1. Range 1–max. Shown as observation.minActionsPerTurn. Shorter lists pad with wait.
Cap for the JSON action list. Default 5. Range 1–32. Shown as observation.actionsPerTurn. Extra actions are dropped.
Chebyshev FOV around the bot. Default 2 (5×5). Range 1–8 (3×3 to 17×17). Shown as observation.fovRadius. Larger costs more tokens each think.
Bots fire their plan first, then the world runs this many physics ticks (flood, sag, growth) before they think again. Default 1. Range 1–32.
Standing objective in every bot’s observation.goal. Default is grow a working city. Clear the box for no goal. Max 400 characters. Saved in this tab.
Default 10. Needs an API key. 10k bots = 10k isolated LLM turns (parallel cap is in Settings). Empty key or failed fetch: bots WAIT. Invalid JSON = WAIT. Optional CORS: VITE_LLM_PROXY and proxy.mjs.
Default 48×48. Range 16–256 each.