What synchronizes
Skein is a live collaboration layer on top of your version control. It synchronizes the changes people make during a session; commits and pulls still move scenes and assets between machines.
Everyone in a session must open the same committed version of the scene. Object identity is derived from the scene file (see below), so a scene that differs between machines cannot be matched object-by-object.
Supported
| What | Details |
|---|---|
| Scene camera | Position, rotation, perspective/orthographic, FOV, size. Adaptive ≤15 Hz, interpolated. |
| Selection | Up to 64 objects per person. |
| Presence | Online / away / reconnecting, current scene, activity (viewing, selected, editing, play mode). |
| Transform | Local position, rotation, scale. Live previews while dragging. |
| GameObject | Name, active state, parent, sibling order. |
| Component fields — simple | float, int, bool, string, enum, LayerMask, Color, Vector2/3/4, Quaternion are sent field by field (tiny messages). |
| Component fields — everything else | Object references (materials, prefabs, other scene objects or components), arrays and lists, AnimationCurve, Gradient, nested serializable classes, [SerializeReference]: the whole component is sent, with references rewritten to portable ids and resolved on each machine. |
| Adding / removing components | The object's full component set is sent and reconciled on every machine. |
| Creation | Empty objects, primitives and prefab instances (by reference); anything else — duplicates, custom objects, whole hierarchies — is sent fully serialized. |
| Deletion | Any shared object (requires its lock). |
| Whole scene files | Share scene with team and snapshots. |
Payload limit: a single component or created hierarchy can be up to 240 KB of serialized data. Larger ones (e.g. huge arrays) stay local with a notice — commit the scene or use Share scene with team.
Not synchronized
- Assets (materials, textures, prefab assets, ScriptableObjects, scripts) — those belong in version control. References to assets do sync.
- Baked data (lightmaps, NavMesh, occlusion) and Terrain data assets.
- Prefab Mode (editing a prefab asset) is local.
- A duplicated prefab instance with children keeps its link when duplicated as a prefab instance; a serialized copy of a nested prefab instance becomes a plain object on other machines until the scene is shared.
Object identity
- Saved objects:
g:+ Unity'sGlobalObjectId(scene GUID + local file id + prefab instance id). Identical on every machine with the same committed scene. Hierarchy position, names and instance ids are never used for identity. - Objects created during a session:
n:+ a UUID assigned by the creator; every editor keeps its own mapping (survives script reloads and editor restarts viaLibrary/). - Objects that exist only on your machine and were never saved have no shared identity; edits to them are reported as not synchronized.
Remote changes and Undo
Changes from teammates are applied without recording Undo, so your Undo history contains only your own edits. The scene is marked dirty so you know to save. Undoing one of your own changes is just another edit (and is shared if you hold the lock).