Keep project changes recoverable

Place Sync and Vault

Sync scripts with Studio and capture supported world content for recovery.

Supported platforms: roblox. Beta.

What you can build

  • One command connects a repo to its Studio place, and every write after that refuses every other place (`/playugc-sync-connect`)
  • Your scripts live in files and move on purpose: `/playugc-sync-push` sends them to the place, `/playugc-sync-pull` brings a Studio-side hotfix back
  • A live edit is never silently overwritten: a script that changed in Studio comes back as a diff to decide on, not a clobber
  • Your world content backs up to git-diffable files and restores with one command (`/playugc-sync-capture`, `/playugc-sync-restore`)
  • Procedural models save as their recipe, so a destroyed generator is one git command away from coming back
  • Every push, pull and restore leaves its own git commit, limited to the files that actually moved, so undo is a git command instead of a memory
  • Captures are byte-for-byte repeatable: two captures of an unchanged world produce the same files, so a diff means something really changed
  • A read-only health check that says what is wired, what is missing, and what conflicts, with no Studio running (`/playugc-sync-doctor`)
  • Nothing is left listening: the local file server is scoped to one run and shuts itself down
  • Standalone and keyless: no other kit, no cloud account, no API key. Works in Claude, Codex (the ChatGPT app), and Cursor

Before you start

  • Python 3: the engine is Python: it plans each transfer, serves the bytes to Studio on a local port that only your machine can reach, and checks what actually landed
  • git: every push, pull and restore commits exactly the files that moved, which is what makes undo a command instead of a memory. Without git the transfers still run, but nothing records what changed

Scope and limitations

  • Mesh shape restore: a MeshPart comes back from its asset id where Roblox allows it, and says so plainly when it cannot
  • Union and CSG solids come back by re-running the generator that made them, not as restored geometry
  • Engine-managed RBX attributes are recorded in the capture but never written back on a restore
  • Links that point outside the captured subtree are recorded by name rather than reconnected
  • Terrain and services are adopted when already present, never created by a restore
  • Live file watching, an editor plugin, or anything running in the background (every move is an explicit command, on purpose)
  • A one-command upgrade of the shared machine proxy across every project at once (today it updates when you connect a project)
  • A whole-place drift report before the very first push (a new project starts from an empty agreement, so that first push shows every difference as a decision instead of a summary)
  • Publishing: this moves work between your files and your open place, and does not put a place live

Start 7-day trial ยท $67/month per developer. Card required. AI subscriptions and optional service costs are separate.