TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/Chrrxs/robloxstudio-mcp/llms.txt
Use this file to discover all available pages before exploring further.
multiplayer_playtest tool automates Roblox Studio’s StudioTestService-based multi-client sessions, letting an agent spin up a server and several simulated clients, then route runtime eval, log reads, and property queries to specific peers. This makes it possible to reproduce and inspect multiplayer-specific bugs—race conditions, replication issues, per-player state divergence—without switching between Studio windows by hand.
Workflow
Start the multiplayer test
Launch a StudioTestService session with the desired number of client players. The tool waits up to 30 seconds (configurable via
force=true is required and signals that you accept the manual-close limitation.timeout) for all peer connections to register, then returns a brief lifecycle status.Discover connected peers
Use The returned
get_connected_instances to list all connected Studio places and their runtime roles. In a multiplayer session you will see separate entries for the server peer, client-1, client-2, and so on.instance_id values route tool calls to a specific place when multiple places are connected simultaneously.Evaluate on a specific client
Target a particular client’s LocalScript VM by passing its peer name:This runs inside
client-2’s game LocalScript VM, sharing the same require cache as that client’s scripts.Read per-peer logs
In a StudioTestService multiplayer session, peer attribution in To read only the server buffer:
get_runtime_logs is reliable — each log entry includes the peer it originated from. Use target="all" to merge and deduplicate across all capture buffers simultaneously.Peer attribution is only reliable in StudioTestService multiplayer sessions. In ordinary solo playtests (
solo_playtest), LogService reflects logs across all peers, so the script-origin peer cannot be determined and entries omit the peer field.Add another player mid-session
Dynamically join an additional client to the running session without restarting:
Remove a specific client
Disconnect one client from the session while keeping the rest running. This is useful for testing disconnection handling and reconnect logic.
Solo vs. multiplayer: key differences
| Feature | Solo (solo_playtest) | Multiplayer (multiplayer_playtest) |
|---|---|---|
| Peers | Server + 1 client | Server + N clients (1–8) |
| Peer log attribution | Not reliable (LogService reflects all) | Reliable — entries include peer |
| Client targeting for eval | eval_client_runtime target="client-1" | Same, plus client-2, client-3, etc. |
| Stop/end | solo_playtest action="stop" | Manual window close only |
| Window management | Automatic | Manual |
force=true required | No | Yes, for action="start" |
Per-peer data from analysis tools
Several analysis tools return per-peer data during a multiplayer session. You can read memory and scene breakdowns for the server or any specific client:target value to route each call to the peer you are inspecting. Use get_connected_instances first if you are unsure which peer labels are active in the current session.