How to code Roblox games in VS Code (and keep Studio in sync)
Roblox Studio's script editor is fine for quick changes, but plenty of developers want a full code editor: better search, multiple cursors, extensions, a real terminal and git. The catch has always been getting code from that editor into Studio and back. This guide shows how to write your game in VS Code (or Cursor) while Studio stays in sync both ways.
How it works
RoIDE turns the scripts in your place into real files in a folder, and keeps that folder and Studio in sync while you work. You edit files in VS Code; RoIDE sends the change to Studio. You edit a script in Studio; the file updates. There's no build step and no export.
Only scripts and the folders that contain them are synced. Your parts, models, terrain and UI stay in Studio, where they belong, so you don't have to describe your whole map in files.
Set it up
- Install RoIDE and sign in. The installer adds the Studio plugin and the RoIDE extension for VS Code and Cursor.
- Open a project from the tray panel: choose an empty folder for a new game, or an existing one.
- Open your place in Roblox Studio. The plugin connects automatically; use pull to bring your existing scripts into the folder the first time.
- Open the folder in VS Code. That's it: edit away.
How scripts map to files
The folder mirrors your game, one folder per service you sync. Each script's type is in its file name:
ServerScriptService/Main.server.luauis a ScriptStarterPlayer/StarterPlayerScripts/Input.client.luauis a LocalScriptReplicatedStorage/Modules/Inventory.luauis a ModuleScript
When a script has children, it becomes a folder with an init.luau (or init.server.luau / init.client.luau) inside. Extra properties and attributes live in a small Name.meta.json file next to the script.
Completion that knows your game
A plain Luau extension knows the language but not your game. The RoIDE extension adds completion for the instances in your place, so typing through your services, folders and modules works the way it does in Studio. RoIDE writes a sourcemap of your project for the extension to read, and keeps it current as you add or move scripts.
Why bother with an external editor?
- Search everything. Find every place a RemoteEvent is fired, across the whole game, in one search.
- Refactor with confidence. Rename across files, split big modules, and see all your code side by side.
- Use git. Commit, branch and roll back your game's code. See how to use git with Roblox Studio.
- Bring AI in. The same project works with Claude and Cursor through RoIDE's Roblox MCP server.
Does this replace Roblox Studio?
No. Studio is still where you build, play test and publish. RoIDE just means your code doesn't have to live only inside it. Learn more on the Roblox IDE page.