How the Studio connection works

The command queue, companion plugin and Explorer sync — explained.

The command queue

Every Apply button writes a row into a per-project command queue with a type and a JSON payload. Nothing is executed by the website itself — the plugin is the only thing that touches your place.

The plugin loop

The plugin authenticates with your project's connection token, then POSTs to /api/public/plugin/poll every 5 seconds. Pending commands are claimed atomically, executed inside a ChangeHistoryService recording (so Ctrl+Z works), and the result is reported to /api/public/plugin/result.

Supported commands

create_script, update_script, read_script, build_instances, set_properties, delete_instance, terrain_fill, clear_terrain and get_tree.

Explorer sync

On connect — and whenever you press Sync place — the plugin serialises up to 1,500 nodes of your hierarchy and uploads it. That snapshot is fed to the AI as context so it reasons about the systems you already have.

Paths

Paths look like ServerScriptService/Systems/Combat. The first segment is a service; missing intermediate folders are created automatically.

Connection failed?

The plugin needs Game Settings → Security → Allow HTTP Requests ticked and the server URL in the allowed list. Add exactly https://lemonstudio.pages.dev — without it Roblox blocks the request. Use the Test server button in the plugin panel to confirm before connecting.

Security

The connection token is the plugin's only credential — treat it like a password. Rotating it is as simple as creating a new project. Commands are scoped to the single project that owns the token.