Compare file-based workflows

*Pronto este contenido estará disponible en tu idioma seleccionado.

Roblox games live in the cloud by default. Studio saves your places, assets, and scripts to Roblox, and Version History tracks changes to each place. Many teams also want their game in a version control system like Git so they can review changes before they land, keep a full history, and automate builds and deploys.

Every version control workflow for Roblox answers one question: where does the source of truth live for each part of your game? The three common answers are:

  • Studio-native: The place on Roblox is the source of truth for everything. Script Sync copies scripts into Git so you can review and track them.
  • Partially managed: Git is the source of truth for code. The place on Roblox is the source of truth for everything else, like models, terrain, and UI.
  • Fully managed: Git is the source of truth for the entire game. Places on Roblox are build output that CI publishes from the repository.

This page compares these workflows, describes the tools each one uses, and covers the environments that teams set up around them. To set up a workflow, see Set up a workflow.

Roadmap for file-based workflows

Roblox is working toward first-party, file-based workflows so that teams can use version control without assembling third-party tools. Until those workflows ship, the setups on this page reflect what works for teams today.

Workflow comparison

Studio-native

Partially managed

Fully managed

Studio-nativePartially managedFully managed
Good fit forTeams of fewer than five creators working on a single-place gameTeams with several programmers, and multi-place gamesTeams that require review and history for every instance and asset
In version controlScriptsScripts, project configuration, and toolingEverything, including models and images
Content editingTeam CreateTeam Create and packagesFiles in Git, built by CI
Tools to maintainNone beyond Studio and an editorRojo plus linting and CI toolsRojo, merge and asset tools, and a full CI pipeline

Choose a workflow

Start with the simplest workflow that meets your needs. You can move to a more managed workflow later, because none of these tools lock you in. Most teams don't need fully managed Rojo, and it adds significant complexity.

Tools

Most setups combine a few tools from Roblox with a few from the community.

Roblox tools

ToolWhat it doesUsed in
Team CreateReal-time collaborative editing in Studio, best suited to building, level design, and art.All workflows
Script SyncSyncs scripts in Studio with files on your local disk, in both directions.Studio-native
PackagesReusable, versioned groups of instances that you can update across places and games.Studio-native, partially managed
Version HistorySaved versions of each place that you can view, compare, and restore.All workflows
Place publishing APIOpen Cloud API that publishes a place file to Roblox. Use it to deploy from CI.Partially managed, fully managed
Luau execution APIOpen Cloud API that runs Luau in a place on Roblox servers. Use it to run tests from CI.Partially managed, fully managed
Assets APIOpen Cloud API that uploads and updates assets like images, audio, and models.Fully managed

Community tools

ToolWhat it doesUsed in
RojoSyncs files on disk into Studio through a local server and Studio plugin, and builds place and model files from a project file. The rojo syncback command, in Rojo 7.7 and later, converts an existing place into project files.Partially managed, fully managed
RokitToolchain manager. Pins tool versions so everyone on the team uses the same ones.Partially managed, fully managed
WallyPackage manager for community Luau libraries.Partially managed, fully managed
LuneStandalone Luau runtime, commonly used for build, deploy, and automation scripts.Partially managed, fully managed
seleneLuau linter.All workflows
StyLuaLuau code formatter.All workflows
Luau Language ServerAutocompletion and type checking in external editors.All workflows
TarmacUploads images from disk to Roblox and generates a module that maps file paths to asset IDs.Fully managed
rbx-mergeGit diff and merge driver for .rbxl, .rbxlx, .rbxm, and .rbxmx files. Shows readable diffs and merges non-conflicting changes at the property level.Fully managed

To install and run Rojo, see Rojo. For Rokit, Wally, linters, and other tools, see Third-party tools.

Environments

Teams that use version control usually also separate their work into environments, so that unfinished changes never reach players. Instead of one place that everyone edits, each environment is its own place.

We recommend creating each environment as a separate game under the same group, rather than as separate places within one game. Data stores, secrets, and other cloud services are scoped to the game, so separate games keep test data out of production.

A typical setup has these environments:

EnvironmentPurposeWho updates it
Personal devEach creator's own copy of the dev place for day-to-day work.That creator
Shared devThe combined, unstable set of features that the team is working on.Programmers sync reviewed code, and artists copy in approved content.
AssetsThe canonical versions of packages, like characters, building kits, and set dressing.Artists
StableA snapshot of shared dev at a regular interval, such as for weekly playtests.CI only
ProductionThe live, public game.Copied from stable after release approval

Create a personal dev place

  1. Open the shared dev place in Studio.
  2. Select File ⟩ Publish As.
  3. Select the group that owns your dev games.
  4. Publish the place as a new game with a name that identifies you and the project, like USER / YourName - ProjectName.
  5. Close the shared dev place and open your new personal copy.

Use consistent names for every environment, such as DEV - ProjectName, ASSET / ProjectName, and STABLE / ProjectName, so that the team can tell them apart on the Creator Dashboard.

Set up a workflow

WorkflowSetup guide
Studio-nativeUse Script Sync with a team
Partially managedPartially managed Rojo
Fully managedFully managed Rojo

Troubleshoot common problems

ProblemFix
Testing in a dev place changes production data.Dev and production are places in the same game, so they share data stores. Move each environment into its own game.
Teammates overwrite each other's script changes.Two people are syncing the same scripts into one Team Create session. Sync code into personal dev places and merge through Git.
A fix to one copy of a script doesn't apply to the others.Copying a script creates an independent copy. Put shared behavior in a ModuleScript and attach it to instances with CollectionService tags.
Server-only code is visible to clients.Modules in containers that replicate to clients, like ReplicatedStorage, are sent to clients. Keep server-only modules in ServerScriptService or ServerStorage.
©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.