Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
DD2_GAMEYesDragon's Dogma 2 install path.
DD2_SCRATCHYesScratch directory used by the server.
DD2_TEST_UNITSNoTest character unit. Defaults to 0.0
DD2_SAVE_BACKUPSYesDirectory used for save backups.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
dd2_statusB

Game process, REFramework revision, bridge state, and the player's position if a save is loaded.

dd2_evalA

Run a Lua chunk in the running game; print() output and returned values come back. phase='update' runs it inside the game's UpdateBehavior (required for state changes).

dd2_typesB

Introspect a managed type: kind 'methods' (signatures) or 'fields', optionally filtered by a substring.

dd2_enumB

Every named value of an enum type, sorted by value (e.g. 'app.Character.JobEnum', 'app.WeaponID').

dd2_rszA

Offline type dump search (alphaZomega RE_RSZ rszdd2.json, all serializable types + fields; no game needed). pattern is a case-insensitive regex on type names (and field names/types when fields=True). action='download' fetches/refreshes the dump. The dump can lag game patches: confirm live with dd2_types.

dd2_weaponsA

Weapon item table: id, name, WeaponID name, vocation mask (_Job = 1 << JobEnum) and stats. Filter by job (JobEnum 1-10), WeaponID prefix (e.g. 'wp07') or name substring. No filter = counts per type.

dd2_jobA

Vocation state of 'player' or 'pawn1'..'pawn3': current job, JobIndex, exp per job, job bits. set_job changes the vocation (update phase). Jobs above 10 crashed the game (2026-10-29: c0000005 ~1 min after set_Job(11)), so they need force=True and belong only on a test character with the save guard armed.

dd2_itemsA

Find item ids by display-name substring (e.g. 'ferrystone').

dd2_give_itemB

Give the player an item (update phase) and report the before/after count in the player's storage. Works for every category incl. quest letters (verified with Torn Letter 376, 2026-10-26).

dd2_recent_itemsB

Item log: the most recently changed inventory entries across player, pawn and stash storages, newest first (StorageData._UpdateIndex order; DD2 keeps no pickup history). Shows owner, count, subcategory, key-item flag (key items sit in their own inventory tab) and the NEW mark.

dd2_goldB

Read the player's gold and Rift Crystals; a non-zero delta adds (or deducts) gold first.

dd2_deployC

Copy a mod project's src/reframework/** into the game's reframework folder.

dd2_install_bridgeA

Install or update the dd2mcp eval bridge script in reframework/autorun; reload=True also re-runs it in the running game (bridge 0.5.0+ in memory), so bridge changes need no restart.

dd2_logC

REFramework log for the current game run, optionally filtered by a substring (e.g. '[Bastion]', 'error').

dd2_launchA

Start DD2 through Steam (no-op if it is running). Loading a save still needs the player.

dd2_quitA

Close DD2 (hard kill: DD2 has no scripted clean exit yet; with the save guard armed nothing is lost) as soon as in-game testing ends. since = 'YYYY-MM-DD HH:MM[:SS]' also reports saves written since then (test units only?).

dd2_screenshotA

Capture the primary screen to a PNG and return its path; open it with an image-capable Read.

dd2_take_controlA

Bring DD2 to the front for testing: remembers the window the player is in (their terminal), focuses the game and closes the focus-loss pause menu (checked through PauseManager, Esc only while it is open). Pair with dd2_hand_back whenever the player needs to read output or answer.

dd2_hand_backA

Return the screen to the window saved by dd2_take_control (the player's terminal); the game pauses itself.

dd2_pause_stateB

Whether the game is paused and by which app.PauseManager.PauseType values (5 = InGame pause menu).

dd2_keyA

Send one key press (hardware scan code: Esc 0x01, Enter 0x1C, Space 0x39, Tab 0x0F) to the game, focusing it first unless focus=False.

dd2_savesA

Save snapshots. action: 'list', 'backup' (name = label), 'restore' (name = snapshot folder; game must be closed), 'touched' (name = 'YYYY-MM-DD HH:MM[:SS]'): save files written since then, flagging any outside the test units.

dd2_scenarioA

Test-harness save scenarios (single slots of the test character unit, default unit 0 = slots 0-4). action: 'list'; 'shelve' (name, slot, optional area/notes) archives a live slot; 'unshelve' (name) puts it back into its own slot (game must be closed); 'load' (name, restart) does it all: quits DD2 if restart=true, unshelves, launches, arms the save guard, passes the boot screens, starts the slot and verifies the play time. Slot types: 0 Auto, 1 Last Inn Rest (both auto-loadable), 2 unmoored-world restart, 3 Clear, 4 AddAuto. The game takes focus during boot; hand back with dd2_hand_back.

dd2_saveguardA

Bridge save guard. 'arm' refuses every save outside the test units (default [0]) and, unless autosave=True, every save to an Auto/AddAuto slot (the game also saves slot 0 on load). 'disarm', 'status'. Arm before loading a scenario so the load-time autosave cannot overwrite it. Resets on game restart.

dd2_vortexA

Vortex profiles for DD2 (starts Vortex if needed; refuses switches while DD2 runs). action: 'status' (active game/profile, enabled mods); 'profiles' (DD2 profiles); 'dev' / 'release' (project = mod project dir: switch to its dev or release-test profile from /dd2mod.json, creating it if missing, enable its required mods (REFramework) and deploy); 'switch' (profile = name); 'play' (return to the profile that was active before the last switch, BG3 included).

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 25 tools

Disambiguation4/5

Most tools target a clearly distinct resource or action (types vs enum vs rsz, give_item vs items vs recent_items, take_control vs hand_back vs key). The main overlaps are between dd2_saves and dd2_scenario (both deal with snapshot/restore lifecycle) and to a lesser extent dd2_status vs dd2_pause_state, but descriptions clarify the boundaries.

Naming Consistency4/5

Every tool uses the dd2_ prefix with lowercase snake_case, which is highly predictable. However, the second part mixes bare nouns (status, types, weapons, job, gold, saves, vortex) with verb phrases (give_item, install_bridge, take_control, hand_back), so it is not a strict verb_noun pattern but remains readable.

Tool Count3/5

25 tools is at the heavy end and spans many sub-domains (introspection, item manipulation, save/scenario management, focus/input testing, mod deployment, Vortex). Each arguably serves the mod-testing workflow, but the surface feels broad and could be trimmed or grouped.

Completeness4/5

For a DD2 mod-testing harness the surface is broad: game lifecycle, live and offline introspection, item/gold/job manipulation, save backups, scenario shelving/loading, save guard, and focus/input control are all covered. Gaps are minor (e.g. no direct player-stat or teleport/entity manipulation tools), which agents can partly work around via dd2_eval.

Maintenance

ActivityMaintained
ResponsivenessNo issues