Read Studio output
consoleReads Roblox Studio or playtest client output—prints, warnings, runtime errors—to diagnose what happened after a playtest or script execution. Filter by level or pattern.
Instructions
Reads Studio or playtest client output — prints, warnings and runtime errors, newest last.
This is how to find out what actually happened after a playtest or an execute_luau call. An error here usually names the script and line, which script_read can then open directly.
Use target="client" with the playtest server studioId to read continuously captured client output. In multiplayer, select a player by name. Pass the returned nextCursor as since to read only newer lines; cursors belong to one session and player. Evicted or limit-skipped lines are reported.
Filter with level to see only errors, or pattern to follow one subsystem's logging. Up to 2000 lines are held, so prefer a filter over a large limit.
mode="drain" reads a busy log without gaps: oldest unread matches first, and a cursor that stops at the first one not shown. Keep the same filters while draining. group collapses identical lines into one with a count. An error whose stack trace arrived late comes back once more, marked update.
Each connected session keeps its own log, recorded from the moment its plugin loaded — the editor session and a running playtest server do not share one. To read what a playtest printed, target the playtest's studioId (see list_studios); the editor's log will not have it. Nothing printed before the plugin or client relay loaded is recoverable.
A quiet log is not proof nothing was said. Messages Studio itself emits — the ones the Output window attributes to "Studio" rather than to a script — are inconsistent, and they arrive in the session that RAISED them, which is not always the one you are looking at: the warning that a Script with a non-legacy RunContext inside a starter container will run multiple times shows up in the playtest server's log, where the script actually loads, and never in the editor's, where it was created. Do not read silence as an all-clear — when a script misbehaves in a way nothing here explains, check the Output window yourself, or ask the user what it says.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 'tail': the newest matches, cursor at the end of the log. 'drain': the oldest unread matches, cursor at the first one not shown, so a loop reads every line once. | tail |
| group | No | Collapse identical lines into one row with a count and first/last times. | |
| level | No | Only this severity. Omit for everything. | |
| limit | No | Maximum items to return (1-500). | |
| since | No | Opaque nextCursor from a previous console response; return only newer matching lines. | |
| player | No | Client only: player name, required when multiple players are present. | |
| target | No | Output source; client requires a running playtest server studioId. | studio |
| pattern | No | Lua pattern the message must match, e.g. "Combat" or "^%[Server%]". Lua patterns escape with %, not backslash. | |
| studioId | No | Target Studio; omit for the active one. |