Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add dirtcubeinteractive/specter-skills --skill specter-multiplayergit clone --depth 1 https://github.com/dirtcubeinteractive/specter-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/dirtcubeinteractive/specter-skills/specter-multiplayer)<a href="https://agentmods.dev/skills/dirtcubeinteractive/specter-skills/specter-multiplayer"><img src="https://agentmods.dev/badge/skills/dirtcubeinteractive/specter-skills/specter-multiplayer.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00100 | $0.01357 |
| Opus 5 | $0.00050 | $0.00678 |
| Sonnet 5 | $0.00020 | $0.00271 |
| Haiku 4.5 | $0.00010 | $0.00136 |
Grade A, and why
specter-multiplayer scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 117 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Specter Multiplayer — matchmaking, parties, match sessions
Two surfaces work together:
- REST (
https://api.specterapp.xyz/v2/client, headers per thespecterskill) — initiate actions: find match, create/start/end sessions, party CRUD. - Socket.io WebSocket (
https://multiplayer.specterapp.xyz, staging:https://staging.multiplayer.specterapp.xyz) — receive real-time events: match found, ready check, server assignment, score updates, party state.
A correct integration connects the socket first, then triggers REST actions, and reacts to socket events. Match configurations (team size, MMR rules, regions) are defined in the dashboard.
Complete real-time event contract — the exact handshake, namespaces (
/and/notifications), room conventions, and every client→server / server→client event with its payload across all gateways (matchmaking, match, party, group, online-presence, reward notifications): references/realtime-socketio.md. This is the authoritative source for event names/payloads (they're not in any REST/OpenAPI doc).
Connecting
import { io } from "socket.io-client";
const socket = io("https://multiplayer.specterapp.xyz", {
transports: ["websocket"],
auth: {
token: accessToken, // same JWT from Specter login
apiKey: API_KEY, // same project api-key
type: "client",
},
});
Invalid/expired credentials reject the connection. On reconnect during an active flow the server
restores state (match:reconnect, match:rejoined).
Matchmaking flow (the happy path)
REST POST /matchmaking/find-match { matchId, region, ... } → queued
WS queue:joined / queue:status → show queue UI (position, wait)
WS match:found { pendingMatchId, players, acceptTimeout } → show ready check (~15s)
WS matchmaking:accept-match { matchId } (emit) → or decline
WS match:playerStatus → "3/4 accepted…"
WS match:confirmed { sessionId } → all accepted
WS match:server-ready { serverInfo: { ip, port, connectionToken } }
→ connect to game server
What ships with it
60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- examples/javascript.md 2.6 KB
- references/api/matches-create-session.md 401 B
- references/api/matches-end-session.md 392 B
- references/api/matches-get-match-session-results.md 435 B
- references/api/matches-start-session.md 400 B
- references/api/matches-update-mmr.md 381 B
- references/api/matches-update-session.md 404 B
- references/api/matchmaking-accept-match.md 370 B
- references/api/matchmaking-cancel-match.md 355 B
- references/api/matchmaking-clear-all-queues.md 363 B
- references/api/matchmaking-create-match-session.md 504 B
- references/api/matchmaking-decline-match.md 372 B
- references/api/matchmaking-end-match-session.md 527 B
- references/api/matchmaking-find-match.md 364 B
- references/api/matchmaking-get-queue-status.md 363 B
- references/api/matchmaking-leave-match.md 367 B
- references/api/matchmaking-server-ready.md 277 B
- references/api/matchmaking-start-match-session.md 734 B
- references/api/matchmaking-update-match-session.md 335 B
- references/api/party-accept-invite.md 355 B
- references/api/party-create.md 340 B
- references/api/party-decline-invite.md 357 B
- references/api/party-get-details.md 350 B
- references/api/party-invite.md 342 B
- references/api/party-join.md 334 B
- references/api/party-kick.md 338 B
- references/api/party-leave.md 338 B
- references/api/party-transfer-leader.md 361 B
- references/api/party-update-settings.md 366 B
- references/client-api-index.md 3.9 KB
- references/curated-client-api.md 3.5 KB
- references/endpoints-index.md 4.6 KB
- references/endpoints/app-get-matches-v2.md 15 KB
- references/endpoints/get-matches-v2.md 7.6 KB
- references/endpoints/matches-create-session-v2.md 2.4 KB
- references/endpoints/matches-end-session-v2.md 2.0 KB
- references/endpoints/matches-get-match-session-results-v2.md 3.8 KB
- references/endpoints/matches-start-session-v2.md 1.6 KB
- references/endpoints/matchmaking-accept-match-v2.md 1.3 KB
- references/endpoints/matchmaking-cancel-match-v2.md 1.1 KB
- references/endpoints/matchmaking-clear-all-queues-v2.md 1.7 KB
- references/endpoints/matchmaking-create-match-session-v2.md 2.4 KB
- references/endpoints/matchmaking-decline-match-v2.md 1.2 KB
- references/endpoints/matchmaking-end-match-session-v2.md 2.7 KB
- references/endpoints/matchmaking-find-match-v2.md 3.1 KB
- references/endpoints/matchmaking-get-queue-status-v2.md 2.7 KB
- references/endpoints/matchmaking-leave-match-v2.md 1.3 KB
- references/endpoints/matchmaking-server-ready-v2.md 2.0 KB
- references/endpoints/matchmaking-start-match-session-v2.md 2.7 KB
- references/endpoints/party-accept-invite-v2.md 932 B
- references/endpoints/party-create-v2.md 1.2 KB
- references/endpoints/party-decline-invite-v2.md 924 B
- references/endpoints/party-get-details-v2.md 5.6 KB
- references/endpoints/party-invite-v2.md 1022 B
- references/endpoints/party-join-v2.md 1.3 KB
- references/endpoints/party-kick-v2.md 985 B
- references/endpoints/party-leave-v2.md 924 B
- references/endpoints/party-transfer-leader-v2.md 1.0 KB
- references/endpoints/party-update-settings-v2.md 1.0 KB
- references/endpoints/player-get-match-history-v2.md 3.8 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 7d ago First seen · 117 lines · 100 tokens per session scan A e29143e91219
specter-multiplayer is a skill published in the GitHub repository dirtcubeinteractive/specter-skills (0 stars, last pushed 2mo ago), licensed MIT. It adds 100 tokens to every session and 1,357 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
league-akari-sgp-data-source
Use when implementing or reviewing League Akari SGP/LCU data-source selection, SGP API clients, League Servers remote config, Tencent cross-region queries, token handling, or per-feature SGP interoperability.
csharp-godot
Use when working with C# in Godot — conventions, GodotSharp API differences from GDScript, project setup, and interop.
cloudflare-durable-objects
Cloudflare Durable Objects for stateful coordination and real-time apps. Use for chat, multiplayer games, WebSocket hibernation, or encountering class export, migration, alarm errors.
gamedev-multiplayer
Use when adding multiplayer or netcode to a game — client-server vs P2P, server authority and anti-cheat, state replication vs RPCs, prediction and reconciliation, lag compensation, plus Godot 4 / Unity NGO / Unreal wiring. NOT single-player gameplay (that is godot, unity, unreal), NOT matchmaking or server hosting…
cloudflare-do-turn-based-multiplayer
Design, implement, debug, or verify a remote turn-based multiplayer game whose rooms run on Cloudflare Durable Objects. Use for room and invite identity, reconnectable seats, WebSocket hibernation, concurrent turns, action idempotency, revision conflicts, or cross-browser game-state agreement. Do not trigger for…
roblox-cloud
Use for Roblox Open Cloud APIs, API keys, OAuth 2.0, webhooks, scopes, token lifecycle, or in-experience HttpService calls.