RBX Editor

A browser Luau editor with Roblox API autocomplete. Attach a game to run what you write.

RBX Editor lives at rbx.lol/editor, separate from the debugger tabs. It works with no game attached.

Works with no gameNeeds a game attached
Writing, saving, the file treeRun
Autocomplete for the Roblox API and executor functionsThe game's own modules
Lint markersLive console output

Attach a game at the top opens the same room panel the debugger uses. The room code is shared between the two pages, so a game attached on either shows up on both.

Files#

Two folders, modules/ and projects/. A new editor is seeded once with the Ember module, a runnable Ember showcase and a hello.luau.

Files are stored in this browser, in IndexedDB, separate from decompiled game sources. Clearing captured data does not touch them. Each open file keeps its own undo history, so undo in one never rewinds another.

Ctrl+S saves. New starts an unsaved scratch buffer that still survives a reload. Saving an unsaved buffer asks which folder it belongs in.

Running#

Ctrl+Enter or Run executes the script in the attached game, not in the browser. print and warn are captured in-game and returned with the script's return value, so output arrives even when the live stream is quiet. An error is caught and printed rather than lost.

The output pane filters by level, filters by text, and has a Live toggle that mirrors the game's own console into it. It keeps the last 2,000 lines.

Requiring modules#

require(Name) resolves to your own file in modules/ with that name. Referenced modules are compiled into the script that gets sent, so nothing has to exist in-game. After a require, the module's functions, values and nested tables appear in autocomplete. Anything the editor does not own falls through to the real require.

The suggestion panel shows each exported function's signature and nearby source comment. Accepting a function inserts its arguments as tab stops. Exported tables can be completed again for their nested members.

Luau
local Combat = require(game.ReplicatedStorage.Modules.Combat)

A require of a game module works because your code runs inside the game. With Include live-game scripts enabled, naming one decompiles that module in the background and adds its returned table to autocomplete.

Autocomplete options#

The Autocomplete row below the Modules list contains three settings:

SettingEffect
Smart variable typesTracks assignments and typed locals so a variable gets members from its Roblox class.
Live instance pathsAdds the attached game's real children while completing instance paths.
Include live-game scriptsOff, ModuleScripts only, or every Script class. Controls live script paths and game-module exports.

User modules and the Roblox API work independently of these settings.

Relative paths are not resolved

require(script.Parent.Thing) runs fine, but the editor cannot tell which module you mean, so it offers no completions for it.