Mcps
When to Use
Use Mcps tools when you need to work with Mcps. All tools are available through xpay✦'s single MCP connection.
MCP Connection
{
"mcpServers": {
"xpay": {
"url": "https://mcp.xpay.sh/mcp?key=YOUR_API_KEY"
}
}
}
For Claude Code:
claude mcp add --transport http xpay "https://mcp.xpay.sh/mcp?key=YOUR_API_KEY"
Available Tools
- Add Player — Add a player to the demo. Must be called before generating ticks. — $0.00/call — SKILL.md
- Add Raw Snapshot — Add a raw snapshot tick with full protocol-level control. — $0.00/call — SKILL.md
- Add Server Command — Inject a raw server command string. — $0.00/call — SKILL.md
- Analyze Demo — Run ALL analysis functions at once and return a comprehensive report. — $0.02/call — SKILL.md
- Award Medal — Award a medal to a player. — $0.02/call — SKILL.md
- Check Pvs — Check PVS (Potentially Visible Set) visibility between two world positions in a BSP map. Returns whether the BSP considers the two points mutually visible — i.e. whether the engine would have sent entity updates between them. Also returns the PVS cluster indices for both points. PVS is a conservative over-approximation: visible=true means updates were sent, not guaranteed line-of-sight. Accepts a bare map name, 'maps/
.bsp', or a direct path — see get_bsp_info for lookup rules. — $0.02/call — SKILL.md - Classify Player Roles — Classify each team player's positional role based on where they spent time during the demo: defender / 2nd_defender / middle / 2nd_attacker / attacker (scaled to actual team size). For CTF, provide the 'map' argument so flag positions can be read from the BSP entity lump — this yields an accurate forward axis. Without a map, the tool falls back to ranking players by their centroid distance toward the enemy team spawn cluster. Only the POV player's trace is always complete; other players have sparse traces (see generate_player_heatmap notes). Call open_demo first to get a session_id. — $0.02/call — SKILL.md
- Close Demo — Close an analysis session and free its memory. — $0.02/call — SKILL.md
- Create Demo — Create a new demo-building session. Returns a session_id. — $0.02/call — SKILL.md
- Cut Demo — Cut a time range from an open demo into a new .dm_91 file. Use seek_demo or seek_thresholds first to find interesting moments, then cut_demo to extract them. Returns the output path and metadata about the cut. — $0.02/call — SKILL.md
- Describe Map — Analyse a BSP map (from a pk3 or direct .bsp file) and return a JSON MapSpec that describes its geometry and entities.
What is extracted: • worldspawn settings: sky, gravity, ambient, music, name • All game entities verbatim (weapons, spawns, flags, teleporters, …) • Rooms: detected by pairing floor surfaces (normal ≈ +Z) with ceiling surfaces (normal ≈ −Z) that share the same XY footprint. Each matched pair becomes one RoomSpec with mins/maxs, floor_texture, ceil_texture, and wall_texture.
The returned spec can be fed directly to generate_map to produce a geometrically similar BSP (roundtrip is lossless for simple axis-aligned maps; complex maps are approximated as rectangular rooms).
Typical workflow:
- describe_map("cpma1") → inspect / tweak the spec JSON
- generate_map(spec) → new .bsp that resembles cpma1
- Use new .bsp in demos — $0.02/call — SKILL.md
- Edit Map Entities — Edit entities in an existing BSP map. Full CRUD operations: add (classname + key/value pairs), remove (by index or classname), move (change origin), set_key, remove_key. Custom 'info_ql_protocol' entities are ignored by the QL client but readable by our tools. Light entities (classname 'light') can be added for path tracing support. Output: modified .bsp and optionally .pk3 (ready for QL client use). — $0.02/call — SKILL.md
- Export Frames To Json — Export frames from an open demo as JSON Lines (one frame per line) to a file in DEMO_PATH. Each line is a raw DecodedServerMessage: sequence number, server_time, operations (snapshots, configstrings, server commands, etc.). Use from_frame/from_server_time to set the start, to_frame/to_server_time to set the end, and limit to cap the output. Returns the output path and the number of frames written. — $0.02/call — SKILL.md
- Extract Map Lights — Extract light sources from a BSP map. Returns lights from two sources: (1) entity lights — 'light' entities in the BSP entity lump with position, intensity, color, radius. (2) lightgrid-mined lights — inferred from the baked radiosity lightgrid by finding bright spots and clustering nearby samples. Useful for path tracing setup: pass extracted lights to the renderer's point light buffer. Parameters: include_lightgrid (default true), lightgrid_threshold (0-255, default 180), cluster_radius (Quake units, default 128). — $0.02/call — SKILL.md
- Finalize Demo — Write the demo to a .dm_91 file and finalize. — $0.02/call — SKILL.md
- Fly Map — Generate a fly-through demo that tours all rooms of a map, then render it into a video so the user can see what the map looks like.
Supply EITHER: • map — an existing map name (same lookup as get_bsp_info), OR • spec — a MapSpec JSON (same schema as generate_map)
The camera visits every room in connectivity order (BFS from the first room, following corridor links). In each room it hovers at fly_height above the floor and performs a slow 360° pan, then flies to the next room at fly_speed_ups units/second.
Typical workflow after generate_map:
- fly_map(spec=
) → demo .dm_91 + optional video - Or: fly_map(map='mymapname') to tour an existing BSP
- Optionally call render_demo_preview / render_demo_hq on the output demo for a higher-quality video render.
Returns the demo path/URL and a human-readable camera-path log. — $0.02/call — SKILL.md
- Generate Demo — Generate a complete demo from a JSON description. Format: {map, gametype, players: [{client_num, name, x, y, z, weapon, model}], pov, timeline: [{action, ...params}], output_path}. Actions: move, kill, chat, idle, look_at, shoot, teleport, respawn, switch_weapon, die. — $0.02/call — SKILL.md
- Generate Map — Generate a playable Quake III / QuakeLive BSP map file from a high-level JSON specification. The spec describes rectangular rooms, optional corridors connecting them, and game entities (spawn points, weapons, pickups). The output is a valid IBSP v47 binary that wolfcamql can load for demo playback.
The spec JSON has these top-level fields (all optional except rooms): • name: map display name • sky: sky shader, e.g. "textures/skies/qlsky" • gravity: integer (default 800) • ambient: float 0.0–1.0 (default 0.15) • rooms: array of room objects (see below) • corridors: array of corridor objects • items: array of entity objects
Room object fields: • id: string (required for corridor references) • mins + maxs: [x,y,z] absolute corners, OR • position [x,y,z] + size [w,d,h]: centre + dimensions (default size 512×512×256) • floor_texture, wall_texture, ceil_texture: shader names (optional)
Corridor object fields: • from, to: room IDs to connect • width: corridor opening width (default 128) • height: corridor opening height (default: min room height)
Item object fields: • classname: e.g. "info_player_deathmatch", "weapon_rocketlauncher" • origin: [x, y, z] • angle: yaw in degrees • any extra Q3 entity key-value pairs
Common classnames: info_player_deathmatch, info_player_start, weapon_rocketlauncher, weapon_railgun, weapon_shotgun, weapon_lightning, weapon_plasma, item_health, item_health_large, item_armor_body, item_quad, item_haste, item_regen, item_flight, team_CTF_redspawn, team_CTF_bluespawn, team_CTF_redflag, team_CTF_blueflag — $0.02/call — SKILL.md
- Generate Map Minimap — Generate a top-down SVG minimap from the BSP draw geometry. Every visible (non-sky, non-nodraw) triangle is projected onto the XY plane and rendered as a filled polygon. Item spawn positions are overlaid as coloured markers with a colour-coded legend. The SVG is written to a file; the tool returns the output path and statistics. Use z_min/z_max to isolate a single floor in multi-level maps. — $0.02/call — SKILL.md
- Generate Player Heatmap — Generate a top-down SVG heatmap showing where a player spent time during a demo. The POV player's trace is always complete. For other players only the frames where they were visible to the recording client are included — the resulting map is sparser and biased toward areas visible from the POV player's position. Output is written to a file. Call open_demo first to get a session_id. — $0.02/call — SKILL.md
- Get All Players — Get all registered players with their states. — $0.02/call — SKILL.md
- Get Bsp Entities — Return the raw entity string from a BSP map file. The entity string contains all map entities: spawn points, item pickups (weapons, armor, health, powerups), triggers, teleporters, jump pads, etc. Each entity is a brace-delimited block of key/value pairs. Accepts a bare map name, 'maps/
.bsp', or a direct path — see get_bsp_info for lookup rules. — $0.02/call — SKILL.md - Get Bsp Info — Parse a Quake Live / Quake III BSP map file and return a structural summary: world bounds, shader count, surface count, brush count, leaf count, lightmap count, PVS cluster count, model count, and advertisement count. Accepts a bare map name (e.g. 'campgrounds'), 'maps/
.bsp', or a direct file path. Bare names are extracted from pk3 archives under WOLFCAMQL_BASEPATH; direct paths are read from MAP_DIR or as absolute paths. — $0.02/call — SKILL.md - Get Demo Accuracy — Get per-player, per-weapon accuracy computed from entity events (FireWeapon + BulletHitFlesh + MissileHit). Works for ALL visible players, not just the POV player. Independent of the 'acc' server command. PVS-limited: accuracy data is most complete for the POV player. Returns: player_name, client_num, weapons [{weapon, shots_fired, hits, accuracy_pct}], overall_accuracy_pct, total_shots, total_hits. — $0.02/call — SKILL.md
- Get Demo Airtime — Get airtime statistics: total_ticks, airborne_ticks, airborne_pct, longest_airborne_ms. Water ticks (from PMF_TIME_WATERJUMP) are excluded from airborne and tracked separately as water_ticks / water_pct. — $0.02/call — SKILL.md
- Get Demo Chat — Get all chat messages in the demo. — $0.02/call — SKILL.md
- Get Demo Configstring — Get a raw configstring by index number. — $0.02/call — SKILL.md
- Get Demo Damage Direction — Get directional damage analysis (damage taken by direction). — $0.02/call — SKILL.md
- Get Demo Deaths — Get all death locations for the POV player. — $0.02/call — SKILL.md
- Get Demo Events — Get all game events (obituaries, items, etc.). — $0.02/call — SKILL.md
- Get Demo Flag Runs — Get CTF flag run data (pickup, capture, return events). — $0.02/call — SKILL.md
- Get Demo Game Flow — Get the game flow timeline: kills, chats, flags, medals interleaved chronologically. — $0.02/call — SKILL.md
- Get Demo Head To Head — Get the full NxN kill matrix between all players: who killed whom, how many times, and with which weapons. — $0.02/call — SKILL.md
- Get Demo Health Armor — Get the POV player's health/armor timeline over the entire demo. Returns one sample per snapshot tick — can be tens of thousands of entries for a full game. Use limit/offset to page through the data. — $0.02/call — SKILL.md
- Get Demo Item Timeline — Get a chronological timeline of all item pickups broadcast to all players. Shows who picked up each item (armor, health, powerups) and when. Useful for item control analysis and timing. Each entry has: server_time_ms, player_name, client_num, item_configstring_index, item_name, position. — $0.02/call — SKILL.md
- Get Demo Kill Distances — Get kill distance statistics per weapon. — $0.02/call — SKILL.md
- Get Demo Medals — Get all medals (awards) earned by the POV player. — $0.02/call — SKILL.md
- Get Demo Movement — Get movement statistics: distance, strafes, jumps. — $0.02/call — SKILL.md
- Get Demo Multikills — Get multi-kill streaks (double, triple, etc.) for the POV player. — $0.02/call — SKILL.md
- Get Demo Players — Get all players in the demo with name, model, team, clan tag. — $0.02/call — SKILL.md
- Get Demo Positions — Get the POV player's position trace (x, y, z samples over time). Returns one sample per snapshot tick — can be tens of thousands of entries for a full game. Use limit/offset to page through the data. — $0.02/call — SKILL.md
- Get Demo Powerups — Get powerup pickup/expiry events for the POV player. — $0.02/call — SKILL.md
- Get Demo Rail Trajectories — Get all railgun shot trajectories: start/end positions, shooter, colour. Useful for sightline analysis and rail accuracy visualization. Each entry has: server_time_ms, shooter_client_num, shooter_name, start [x,y,z], end [x,y,z], colour. — $0.02/call — SKILL.md
- Get Demo Respawns — Get respawn event timeline. — $0.02/call — SKILL.md
- Get Demo Rounds — Get round-by-round score progression (CA/FT). — $0.02/call — SKILL.md
- Get Demo Scoreboard — Get the final scoreboard: score, kills, deaths per player. — $0.02/call — SKILL.md
- Get Demo Server Info — Get parsed server settings: map, gametype, hostname, timelimit, fraglimit, etc. — $0.02/call — SKILL.md
- Get Demo Speed — Get speed statistics: average, peak, histogram. — $0.02/call — SKILL.md
- Get Demo Stats — Get full gameplay statistics for the POV player of the demo. Returns a PlayerStats object with: (1) Combat totals — kills, deaths, suicides, kdr, killing_spree (longest streak without dying), time_played_ms. (2) Per-weapon breakdown (weapons[]) — for every weapon with any activity: kills, deaths, hold_time_ms, accuracy_pct (0-100 integer from server
acccommand; absent for mid-cut demos), shots_fired (from EV_FIRE_WEAPON events), hits (from EV_DAMAGEPLUM), event_accuracy_pct (hits/shots×100, independent of acc command). Sorted by activity descending. (3) Damage — damage_dealt (from ctfstats server command, CTF/1FCTF only; null otherwise) and damage_received (from ctfstats when available, otherwise estimated from playerstate damageEvent/damageCount fields). (4) Item pickups — ra_pickups, ya_pickups, ga_pickups, mh_pickups, quad_pickups, bs_pickups, regen_pickups, haste_pickups, invis_pickups (sourced from ctfstats; zero when the command is absent). (5) CTF / team stats — captures, defends, assists (from scores_ctf; zero when not present). (6) Opponent summary — most_kills_on (prey player name + count) and most_deaths_from (nemesis name + count). (7) Per-opponent breakdown (opponents[]) — for each opponent, sorted by total interaction weight: kills, deaths, kdr — kill/death counts and ratio against this opponent. damage_dealt, damage_received — from EV_DAMAGEPLUM entity events (PVS-limited; near 100% for POV player). damage_dealt_by_weapon, damage_received_by_weapon — per-weapon damage breakdown. hits_dealt_by_weapon, hits_received_by_weapon — hit count per weapon (from EV_DAMAGEPLUM event count). kills_by_weapon, deaths_by_weapon — per-weapon kill/death breakdown. avg_kill_distance, max_kill_distance — in Quake units. avg_health_at_kill, avg_armor_at_kill, low_health_kills (≤25 HP clutch kills). avg_speed_at_kill, airborne_kills — movement context at kill time. kills_from_above, kills_from_below, avg_height_delta — height advantage. kills_with_powerup, kills_on_powerup_carrier, flag_carrier_kills — powerup/flag context. medals_earned — medals attributed to kills on this opponent (500ms temporal correlation). best_killstreak, got_first_blood, revenge_kills — engagement patterns. headshots, headshots_received — from EV_HEADSHOT entity events. shots_aimed_at_by_weapon — shots attributed to this opponent by crosshair proximity at fire time (a shot counts for all opponents within 15° of the crosshair). accuracy_by_weapon — per-weapon accuracy: hits/shots_aimed_at×100. total_shots_aimed_at, total_hits_dealt, overall_accuracy_pct — aggregate accuracy against this opponent. (8) Event-based combat totals — total_shots_fired, total_hits, total_headshots (from EV_FIRE_WEAPON, EV_DAMAGEPLUM, EV_HEADSHOT entity events). — $0.02/call — SKILL.md - Get Demo Status — Get demo session status: map, gametype, players, ticks, time. — $0.02/call — SKILL.md
- Get Demo Summary — Get a high-level summary of the demo: map, gametype, hostname, frame_count, duration_ms (authoritative server-time duration — do NOT compute from frame_count), player_count, total_kills, total_chat_messages, scoreboard (per-player kills/deaths/score). For team games: red_team_score, blue_team_score (from CS_SCORES1/CS_SCORES2 configstrings — the authoritative server score: captures for CTF, rounds for CA, frags for TDM), score_type ('captures'/'rounds'/'frags' — explains what the team score represents). — $0.02/call — SKILL.md
- Get Demo Weapon Switches — Get the POV player's weapon switch timeline. — $0.02/call — SKILL.md
- Get Frame State — Get the complete game state at a specific frame index: POV position, health, weapon, visible players, events. — $0.02/call — SKILL.md
- Get Map Items — Parse the entity lump of a BSP map and return every game entity as structured JSON with classname, category, origin [x, y, z], and all other key/value pairs. Categories: weapon, ammo, health, armor, powerup, flag, spawn, jump_pad, teleporter, other. The worldspawn entity (global map settings: sky, music, gravity) is returned separately. Optionally filter by classname substring. — $0.02/call — SKILL.md
- Get Nearby Players At — Get all players within a radius of a point at a given time. Useful for answering 'who was nearby when X happened'. — $0.02/call — SKILL.md
- Get Player State — Get the current state of a player: position, weapon, health, armor, alive. — $0.02/call — SKILL.md
- Get Quakelive Glossary — Return the complete QuakeLive / Quake III Arena enum reference as structured JSON with human-readable descriptions for every value. Call this tool when you need to look up weapon names, means-of-death, game types, powerup names, medal names, or any other QL-specific constants in order to correctly interpret user requests or demo data. Includes: weapons (id, display_name, description), means_of_death (id, display_name, weapon_id, description), game_types (id, short_name, display_name, is_team_game, description), powerups (id, display_name, description), medals (eflags medals + EV_AWARD names, each with full description), seek_event_types, and entity_types. — $0.02/call — SKILL.md
- Get Timeline Summary — Get the timeline of events (kills, chats, etc.) recorded so far. — $0.02/call — SKILL.md
- Give Powerup — Give a powerup to a player. — $0.02/call — SKILL.md
- Idle Time — Advance the demo clock with idle ticks (no events). — $0.02/call — SKILL.md
- Kill Player — Execute a full kill: obituary + print + death animation (~6 ticks). — $0.02/call — SKILL.md
- List Demos — List .dm_91 demo files available in DEMO_PATH (local directory or s3:// URI). Supports pagination via limit/offset and sorting by recency, size, or name. — $0.02/call — SKILL.md
- List Maps — List every BSP map available from pk3 archives under WOLFCAMQL_BASEPATH and direct .bsp files in MAP_DIR. Returns map names, source pk3 paths, and uncompressed sizes. Use the returned names directly with get_bsp_info, get_map_items, check_pvs, and generate_map_minimap. — $0.02/call — SKILL.md
- Look At — Point the POV view at a world position. — $0.02/call — SKILL.md
- Merge Demos — Merge multiple single-POV .dm_91 demo files from the same match into one omniscient multi-POV demo where every player is always visible. All input demos must be from the same match (same map); the tool validates this and returns an error if they differ. Provide one file per player POV (at least 2). Returns the output path and any non-fatal warnings. — $0.02/call — SKILL.md
- Merge Maps — Merge two or more BSP maps into a single BSP file by combining their geometry, entities, and shaders. Each map can be translated (offset) in 3D space before merging so that rooms don't overlap. Use this to: • Combine two existing maps side-by-side (e.g. campgrounds + aerowalk) • Stack maps vertically for multi-level play • Create hybrid maps by mixing parts of different levels
The first map in the list is the 'base' — its worldspawn settings (sky, gravity, music) take priority. All entities from every map are preserved. Shaders are deduplicated by name.
The output BSP uses a simple all-visible PVS (no real cluster culling), which is fine for demo playback but means every surface is always rendered.
Translate tip: to place map B 2000 units to the right of map A, set translate=[2000,0,0] for map B. Use get_bsp_info to find the bounding box of each map so you can compute non-overlapping placements. — $0.02/call — SKILL.md
- Move Player — Move a player from A to B over a duration. — $0.02/call — SKILL.md
- Open Demo — Open a .dm_91 demo file for analysis. Returns a session_id, summary (map, gametype, players, frame_count, duration_ms), and player list. IMPORTANT: use duration_ms for the demo length — do NOT compute duration from frame_count (frame rate varies). Accepts: a path relative to DEMO_PATH, an absolute path, or an http(s):// URL (streamed with a size limit, no temp file). HTTP/S3 sources: analysis is pre-computed in one streaming pass; all get_demo_* tools return cached results instantly. Seek and cut operations trigger a re-download. Local sources: analysis is cached on the first tool call, then reused — no re-iteration. — $0.02/call — SKILL.md
- Player Die — Make a player die (no attacker). — $0.02/call — SKILL.md
- Player Respawn — Respawn a player at a new position. — $0.02/call — SKILL.md
- Preview Demo Plan — Validate and summarise a planned demo description WITHOUT writing any file. Use this as part of a planning workflow:
- Construct a demo description JSON
- Call preview_demo_plan to show the user the interpreted timeline
- Iterate on the description based on feedback
- Call generate_demo once the user approves
The description uses the same JSON schema as generate_demo: {map, gametype, players:[…], pov, timeline:[{action,…}], output_path}. Returns a structured summary: player list, timeline of actions with running timestamps, estimated duration, and any validation warnings. — $0.02/call — SKILL.md
- Preview Map Plan — Render a fast top-down geometric SVG preview of a planned map spec WITHOUT generating a BSP file. Use this as part of a planning workflow:
- Construct or refine a MapSpec JSON
- Call preview_map_plan to show the user a visual layout
- Iterate on the spec based on feedback
- Call generate_map once the user approves
The preview draws each room as a coloured rectangle labelled with its id and dimensions (width × depth × height in Quake units), corridors as grey bands connecting room centres, and items as colour-coded dots identical to the generate_map_minimap legend.
Returns the SVG path / upload URL plus a spec echo so the caller can confirm what was interpreted. — $0.02/call — SKILL.md
- Print Message — Send a console print message. — $0.02/call — SKILL.md
- Query Master Server — Discover live QuakeLive servers by querying Valve's Steam master server (
hl2master.steampowered.com:27011).
Since QuakeLive moved to Steam in 2015 all game servers register with Valve's Steam master instead of the old Quake 3 master (master.quake3arena.com). This tool uses the Steam Master Server Query Protocol to retrieve the full list of registered server addresses. Each address can then be passed to send_connectionless_packet with getinfo or getstatus for detailed per-server information.
The master may return several hundred addresses split across multiple UDP packets. Each batch uses the last received address as the seed for the next request on the same socket (required by the protocol). Collection stops when the terminal sentinel 0.0.0.0:0 arrives or max_servers is reached.
Default filter: \\appid\\282440 (QuakeLive Steam AppID).
Master-level filters (sent in the request, free): has_players, map, gametype_tags, dedicated, secure, password_protected, linux, region, extra_filter.
Per-server probe filters (each server is queried individually — use max_servers to cap cost): A2S_INFO probes: min_players, max_players, no_bots; A2S_PLAYER probe: player_name (case-insensitive substring match against connected player names — pair with has_players: true to avoid probing empty servers). Control probe behaviour with probe_timeout_ms and probe_concurrency. Servers that do not respond are excluded. — $0.02/call — SKILL.md
- Render Demo Hq — Render a full-quality 1080p/30fps video clip from a demo. Use AFTER render_demo_preview confirms the correct moment. Resolution and fps can be overridden. The demo is cut to the given server-time range (plus padding) and rendered completely in the background via xvfb-run + wolfcamql + ffmpeg. start_time_ms / end_time_ms come directly from seek_demo or get_frame_state server_time_ms values. Blocks until render is done. Requires WOLFCAMQL_BIN, WOLFCAMQL_BASEPATH env vars and xvfb-run + ffmpeg to be installed. — $0.02/call — SKILL.md
- Render Demo Preview — Render a quick 480p/25fps preview clip from a demo. Use this FIRST to verify you have the right moment before a full-quality render. The demo is cut to the given server-time range (plus padding) and rendered completely in the background via xvfb-run + wolfcamql + ffmpeg. start_time_ms / end_time_ms come directly from seek_demo or get_frame_state server_time_ms values. Blocks until render is done. Requires WOLFCAMQL_BIN, WOLFCAMQL_BASEPATH env vars and xvfb-run + ffmpeg to be installed. — $0.02/call — SKILL.md
- Say Chat — Send a chat message. — $0.02/call — SKILL.md
- Search Demos — Search and filter .dm_91 demo files in DEMO_PATH (local directory or s3:// URI). Returns up to N matching demos sorted by the chosen criterion. Supports filtering by recency, gametype, map, player, win/loss, minimum kills, and duration. Use deep_scan=true (or filters like pov_won/min_kills) to decode demos and get full rosters and scoreboards. NOTE: deep_scan is NOT supported when DEMO_PATH is an s3:// URI; only shallow (filename-based) filters work over S3. WARNING: deep_scan opens and fully reads every candidate demo file — it is expensive on large libraries. Avoid it when gametype, map, and player are your only filters: standard filenames already encode these fields. deep_scan is only necessary for roster-based player matching, pov_won, min_kills, min_duration_secs, or sort=longest. — $0.02/call — SKILL.md
- Seek Demo — Search demo frames for events matching structured criteria. Combine filters with AND. Returns matching frames with full game state and match reasons. — $0.02/call — SKILL.md
- Seek Thresholds — Find milestone moments where cumulative stats cross thresholds. Unlike seek_demo (which finds individual events like kills or chats), this tool tracks running totals across the entire demo and emits the frame where a threshold is first crossed. Use seek_demo to find a specific event ('rail kill on Dloobiq'). Use seek_thresholds to find a milestone ('10th kill', '1000 damage dealt', '5-killstreak'). Cumulative thresholds (emit once when first crossed): total_kills_ge, total_deaths_ge, total_damage_dealt_ge, total_damage_received_ge, total_headshots_ge, killstreak_ge (current kills without dying). Per-opponent: damage_dealt_to_player_ge + opponent_name, kills_on_player_ge + opponent_name. Instantaneous thresholds (emit every matching frame): health_le (low-health moments), health_ge (overhealth), armor_ge. Multiple thresholds combine with AND. Returns same FrameState as seek_demo with match_reason explaining which threshold was crossed and the current value. — $0.02/call — SKILL.md
- Send Connectionless Packet — Send a connectionless (out-of-band) UDP packet to a QuakeLive or Quake3 server and return the parsed reply.
Connectionless packets are raw UDP datagrams prefixed with four 0xFF bytes followed by a command string. Servers that speak the Q3/QL protocol respond in the same format. No prior connection or handshake is required — each call is a single send + single receive.
Supported commands (see the command enum):
• getinfo — returns a key-value info string with map, gametype, player count, hostname, sv_fps, and more.
• getstatus — returns the full info string plus one line per connected player (frags, ping, name). Use this to inspect current players.
• getchallenge — returns a one-time challenge number (used internally during connection setup).
• rcon — executes a console command server-side via the remote console interface. Requires rcon_password and rcon_command.
• ping — sends a probe and expects an ack reply; useful for a lightweight reachability check.
The response JSON always includes response_type (the first token of the server reply) and raw (the full reply text). For infoResponse and statusResponse an info object with parsed key-value pairs is also included; statusResponse additionally includes a players array. — $0.02/call — SKILL.md
- Set Configstring — Set an arbitrary configstring by index. — $0.02/call — SKILL.md
- Set Pov — Set which player is the recording POV. — $0.02/call — SKILL.md
- Set View — Set the POV view angles directly. — $0.02/call — SKILL.md
- Shoot — Fire the POV player's weapon. — $0.02/call — SKILL.md
- Stand Player — Hold a player at a position for a duration. — $0.02/call — SKILL.md
- Switch Weapon — Switch the POV player's weapon. — $0.02/call — SKILL.md
- Teleport Player — Teleport a player to a new position. — $0.02/call — SKILL.md
How to Execute
xpay_discover— Search for tools:xpay_discover("quakelive")xpay_details— Get input schema:xpay_details("quakelive/TOOL_NAME")xpay_run— Execute:xpay_run("quakelive/TOOL_NAME", { ...inputs })xpay_balance— Check credits
Links
- Provider page: https://xpay.tools/quakelive/
- All providers: https://xpay.tools/explore
- Docs: https://docs.xpay.sh
Tools (88)
Install Skill
Details
Tools
88
Category
General
Total calls
0

