Loading...
Loading...
Professional Roblox toolchain - Studio Script Sync vs Rojo, Rokit, Wally/pesde packages, luau-lsp with sourcemaps, StyLua, selene, darklua, Lune, roblox-ts, .luaurc, git, GitHub Actions CI and Open Cloud publishing. Use when creating a Roblox repo, configuring VS Code/Cursor, adding packages, fixing sourcemap/require typing, or automating builds and deploys.
npx skill4agent add el4cteo/roblox-skills roblox-tooling| Need | Use |
|---|---|
| Edit scripts in an external editor / git for code only; keep Studio as source of truth; Team Create | Studio Script Sync (built in: right-click a folder → Sync to…) |
| Whole project as files, file system is the source of truth, CI builds, packages | Rojo ( |
ScriptLocalScriptModuleScriptFolder# rokit.toml (commit it; run `rokit install`)
[tools]
rojo = "rojo-rbx/rojo@7.7.0"
wally = "UpliftGames/wally@0.3.2"
lune = "lune-org/lune@0.10.5"
stylua = "JohnnyMorganz/StyLua@2.5.2"
selene = "Kampfkarren/selene@0.31.0"
luau-lsp = "JohnnyMorganz/luau-lsp@1.70.1"
darklua = "seaofvoices/darklua@0.19.0"curl -sSf https://raw.githubusercontent.com/rojo-rbx/rokit/main/scripts/install.sh | bashinstall.ps1rokit add owner/repo{
"name": "my-game",
"tree": {
"$className": "DataModel",
"ReplicatedStorage": {
"Shared": { "$path": "src/shared" },
"Packages": { "$path": "Packages" }
},
"ServerScriptService": {
"Server": { "$path": "src/server" },
"ServerPackages": { "$path": "ServerPackages" }
},
"StarterPlayer": {
"StarterPlayerScripts": {
"Client": { "$path": "src/client" }
}
},
"Workspace": {
"$properties": { "StreamingEnabled": true }
}
}
}Foo.luauFoo.server.luauFoo.client.luauinit.luauinit.server.luauinit.client.luau*.meta.json*.model.json.rbxm.rbxmx*.json*.toml*.txtrojo serverojo build -o game.rbxlrojo sourcemap default.project.json -o sourcemap.jsonrojo upload.rbxmwally.tomlwally installPackages/ServerPackages/realm = "server"[dependencies]
React = "jsdotlua/react@17.2.1"
ReactRoblox = "jsdotlua/react-roblox@17.2.1"
[server-dependencies]
ProfileStore = "lm-loleris/profilestore@1.0.3"wally-package-types --sourcemap sourcemap.json Packages/pesde.tomlwally.lockpesde.lockPackages/luau-lsp analyze --definitions=@roblox=globalTypes.d.luau --sourcemap=sourcemap.json --base-luaurc=.luaurc src/https://raw.githubusercontent.com/JohnnyMorganz/luau-lsp/main/scripts/globalTypes.d.luauluau-lsp.fflags.enableNewSolverstylua.tomlindent_type = "Tabs"column_width = 120stylua --check srcselene.tomlstd = "roblox"selene generate-roblox-std.luaurc{ "languageMode": "strict", "aliases": { "Shared": "src/shared", "Packages": "Packages" } }./../@self@game.luaurc@lune/roblox.rbxl.rbxm@lune/netlune run scripts/buildtsconfig.jsonpackage.jsonroblox-ts@rbxts/typesnpx rbxtsc -wsrc/*.tsout/*.luauout/@rbxts/services@rbxts/*.gitignore*.rbxl.lock*.rbxlx.lockPackages/ServerPackages/sourcemap.jsonroblox-testingroblox-open-cloudroblox-studio-mcproblox-luau