Skip to main content
Glama
rc4l
by rc4l

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
ZANDRONUM_EXENoPath to the Zandronum executable (optional, required for launching the game)
ZANDRONUM_BRIDGE_HOSTNoHost for the bridge server (default 127.0.0.1)
ZANDRONUM_BRIDGE_PORTNoPort for the bridge server (default 7777)

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
run_commandC

Send a raw console command to a running, bridge-patched Zandronum instance and return its captured output.

list_actor_classesC

Run dumpactors and return the registered DECORATE/actor classes as structured data.

summonC

Spawn an actor of the given class at the player's position.

giveC

Give an inventory item to the player.

takeC

Remove an inventory item from the player.

load_mapB

Load a map by its lump name (e.g. MAP01, E1M1).

list_running_scriptsB

Run scriptstat and return the currently running ACS scripts and their states.

run_scriptC

Run (puke) an ACS script by number or name, with optional integer arguments.

screenshotC

Take a screenshot of the game and return it as an image so it can be viewed.

menu_keyC

Send a single menu navigation key (GUI key event) to the active menu.

menu_navB

Send a sequence of menu keys (e.g. ["down","down","enter"]) with a small delay between each.

menu_textB

Type a string into the active menu text-entry field (e.g. the player name box after pressing enter on it), one character at a time.

verify_menuC

Open a menu (via a console command like menu_options), apply navigation steps, then return a screenshot to verify it.

set_pauseA

Set the engine's master pause flag directly. Use this to resume a backgrounded instance that auto-paused on focus loss, so the simulation keeps advancing while the MCP drives it.

stepB

Resume the game, let it run for the given number of tics (35 tics = 1 second), then pause again. Lets you advance the simulation a deterministic-ish amount to observe time-based effects (charging, projectiles, animations) without keeping the window focused.

get_acs_varC

Read an ACS world or global variable by index.

set_acs_varB

Write an ACS world or global variable by index.

list_acs_varsB

Run dumpacsvars and return all non-zero ACS world/global variables, optionally filtered by scope.

acs_indexC

Parse a directory of .acs source files and return symbol counts (scripts, functions, numeric defines). Reads files directly; no game needed.

find_acs_symbolA

Resolve a script number or a script/function name to its symbol(s) — name, number, file:line. Turns a profiler 'script 1017' into a source location.

behavior_namesA

Read function and named-script names from a mod's compiled ACS (BEHAVIOR/library lumps) in a WAD or PK3 — for source-less mods. Numbered scripts have no names in bytecode (use find_acs_symbol with source for those).

list_savesA

List .zds savegames in the save directory with metadata (title, map, engine, game wad, creation time) read from each save's PNG text chunks. No running game needed.

save_gameB

Run save to write a savegame (single-player / cooperative only). NOTE: saving heavily-scripted mods can crash the engine — All-out-War crashes on save; vanilla and simple maps save fine.

load_gameC

Run load to restore a savegame by name.

play_demoB

Run playdemo to play back a recorded .lmp demo. (Recording is via the -record launch arg, not a console command.)

player_stateC

Run currentpos and return the player's position, angle, floor height, sector, and light level.

actor_stateB

Run dumpactor and return an actor's live state: class, health, position, current DECORATE state (sprite/frame/tics, e.g. TNT1 A 0), inventory, and (for players) ready weapon + morph status. Defaults to the player; pass a TID for any actor.

read_hudC

Run dumphud and return everything the engine painted last frame: HUD text strings (with screen x/y), images (by texture name + position), and active ACS HUD messages (full composed text, layer, position, remaining tics). Captures menus too.

actors_nearA

Run actorsnear and return actors within a radius (map units, default 512) of the player: class, health, position, and current sprite.

inspect_targetC

Run linetarget and return the actor the player is aiming at (class, health, spawn health).

list_scriptsB

Run dumpscripts and return every script across loaded modules (module, number, name, type, arg count).

list_functionsC

Run dumpfunctions and return named ACS functions across loaded modules.

profile_scriptsB

Run acsprofile and return per-script/function execution stats (total instructions, runs, avg/min/max).

profile_windowA

Clear ACS profiling, wait N seconds, then return what ran during that window — what's hot right now rather than cumulative since map start.

list_modulesB

Run dumpmodules and return the loaded ACS modules (id + name). Map vars live only while a map is loaded.

get_map_varC

Read a map-scope ACS variable by name (searched across loaded modules).

set_map_varC

Write a map-scope ACS variable by name.

get_map_arrayC

Read one element of a map-scope ACS array by name and index.

set_map_arrayC

Write one element of a map-scope ACS array by name and index.

renderer_infoC

Active backend (software/opengl), GL vendor/shader model, resolution, fullscreen/vsync.

viewport_infoC

The 3D view window rect (x/y/width/height) and screenblocks size.

hud_infoD

Status bar Y position, status bar / HUD scale, alt HUD, crosshair.

map_infoA

Read a map from a WAD and return its format (doom/hexen/udmf) and entity counts. Reads the file directly — the game need not be running.

get_sectorC

Return one sector's properties by index (all fields, format-native keys).

get_linedefB

Return one linedef by index, with its referenced sidedefs (textures + offsets) resolved.

find_sectors_by_tagC

Return all sectors whose tag/id matches (binary tag or UDMF id).

launch_instanceB

Spawn a bridge-enabled Zandronum process with the given options and attach to it. Requires ZANDRONUM_EXE to be set.

kill_instanceC

Stop a launched instance's process and detach from it.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rc4l/ZandronumMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server