Skip to content

Repository files navigation

Carbon

Carbon puts complete Roblox places in source control without forcing every instance into the filesystem.

Local files own selected Folder and script subtrees. Studio owns everything else. Carbon captures Studio-owned state in a deterministic artifact and uses stable instance identities to merge independent changes.

Mapped source syncs from the filesystem to Studio. While serve is connected, fresh Studio auto-recovery saves continuously capture Studio-owned changes.

Important

Carbon is pre-1.0. It supports Roblox Studio on x86_64 Windows, either natively or through WSL2. The project format can change before 1.0.

Source ownership

  • Mapped source: Local files own the mapped instance and every descendant.
  • Studio-owned state: Studio owns every instance outside a mapping.

Each instance has one source domain. Carbon removes Studio-only changes below a mapping during source reconciliation.

Select Carbon or Rojo

Use Carbon when local source and Studio-authored content must coexist in one place, and the complete place must support semantic Git merges.

Use Rojo when the filesystem is the primary source of truth or you need the full Rojo project format and ecosystem.

Architectural differences from Rojo

Carbon uses a Rojo-shaped project tree, but its ownership model is stricter.

Use narrow mappings

A $path owns its root and every descendant. A mapping on an engine service owns all contents of that service. Carbon cannot retain a new Studio-owned instance in that service.

Map only the folders and scripts that the filesystem must own. Unmapped siblings can remain Studio-owned.

Do not mix source domains below a mapping

Create mapped instances in local source. Create Studio-owned instances under Studio-owned parents. Removing a mapping does not transfer its old subtree to Studio-owned state.

The project root must be a DataModel and cannot have $path. Its direct children must be Roblox services. Mappings can be engine anchors, direct children of services, or supported containers below StarterPlayer. Carbon cannot route a mapping through an arbitrary Studio-owned instance.

Carbon project nodes support $className, $path, $id, $properties, and $attributes. Carbon rejects other special fields, including Rojo $ignoreUnknownInstances behavior.

Carbon permits these classes below a mapping:

  • Folder
  • Script
  • LocalScript
  • ModuleScript

Mapped directories can contain scripts, child directories, and one optional meta.json. Carbon does not load .rbxl or .rbxm files below mappings.

Studio-owned instances can refer to mapped instances. Mapped instances cannot refer to Studio-owned instances.

See Usage and project format for the full mapping and capture rules.

System requirements

  • Windows 10 or 11 on an x86_64 machine
  • Roblox Studio on Windows
  • Carbon CLI on native Windows or WSL2
  • robloxstudio-mcp running on loopback with Studio lifecycle protocol v3 and exact process identity enabled
  • Rokit in the CLI environment
  • Roblox Studio auto-recovery enabled

Install

rokit add Chrrxs/carbon

Install and start robloxstudio-mcp through its normal MCP client integration before running managed carbon serve.

The executable includes its matching Studio plugin. Carbon installs or updates it when serve or studio starts. Managed serve launches are owned by robloxstudio-mcp. Carbon does not inject code into Studio or modify Studio binaries.

Start

# Convert an existing place.
carbon migrate existing.rbxl --output game.carbon.json

# Or create a project.
carbon init --output game.carbon.json --name Game

# Start live sync and Studio.
carbon serve game.carbon.json

# Import a place saved manually with Studio's File > Save to File command.
carbon capture game.carbon.json manually-saved.rbxl

# Wait for the next auto-recovery capture, then stop serve and Studio.
carbon stop 'anon:550e8400-e29b-41d4-a716-446655440000'

# Build a place file.
carbon build game.carbon.json --output game.rbxl

More

About

Instance-aware source control for Roblox places.

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages