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.