The Collab Zone
The Collab Zone is the COMP whose network everyone mirrors. Each side has its own copy, in its own project, and picks it for itself: in Set Up, by dropping a COMP on the TDXCollab window, or on the Collab COMP parameter (Create makes a new, empty one). Anything outside it stays yours.
Save your project before a session: several of the actions below replace a whole zone.
Starting from the same copy
Live edits only keep copies in step that started the same. To start that way:
- Join as a copy of the host's zone: Set Up's join step offers Make it a copy of the host's zone when I join. Your zone is replaced by the host's as you join.
- Resync on Connect (Zone page), for every time a partner connects or reconnects: Off (nothing happens), Take Partner's Zone (yours is replaced by theirs) or Send My Zone (theirs is replaced by yours). If both sides pick the same direction, nothing is sent and both are warned.
Edits made while you were disconnected are not sent later. Resync on Connect or Sync Zone brings the copies back together, and the drift check reports what they left different.
Sync Zone
Sync Zone chooses whose zone everyone mirrors, at any time: a menu lists everyone in the session, yours first and the host's marked. It asks first, naming the zone and how many operators it holds. Picking yours replaces everyone else's zone with it; picking someone else's replaces every zone, yours too. Full Edit only.
A zone travels as a saved component, so its decimals keep 6 significant digits and anything below 0.00001 becomes 0, as when a project is saved and reopened. Live edits keep full precision. A zone that arrives damaged, or loads without all its operators, is refused and your zone is left as it was.
Kept zones
A zone that is replaced (by Sync Zone, Resolve Drift or Resync on Connect) is not lost. With
Keep Replaced Zone on (the default) it is kept beside the new one as <zone>_replaced, then
_replaced2, and so on, named after what replaced it ("Sync Zone from Dan, 14:32").
- Snapshot Zone keeps a copy of the zone as it is now, by hand, before a risky change. It is named by Snapshot Name, or by the date, time and your Display Name. It works whether Keep Replaced Zone is on or off, and only on your side.
- A kept zone is switched off: it does not cook, and its CHOP exports, file sync, External .tox and Global OP Shortcut are off, so it cannot fight the live zone. Restoring it switches them back on.
- Restore Replaced Zone brings back the newest kept zone. The TDXCollab window lists all of them, newest first, with Restore, Rename and Delete. Restoring first keeps the current zone as "Before restoring <name>", so pressing Restore again swaps back.
- A restore is yours alone: your partners keep their zones. On the host, with partners in the session, it then offers Sync Zone to send the restored one to everyone.
- Kept Zones Limit (5 by default, 0 for none): past it, the oldest go, replaced ones first, snapshots last.
Kept zones are saved with your project and still hold their memory, GPU textures included. Delete the ones you no longer need, and switch Keep Replaced Zone off for a heavy zone. With it off, a replacement is final.
When copies differ
TDXCollab checks that your copies match. Each side fingerprints the operators of the networks it views, a few each frame, and the host compares every partner's copy with its own. An operator someone changed in the last 3 seconds is not counted, as an edit can still be on its way.
A difference that lasts is reported on both sides, in the status bar and the log, naming the operators that differ and what differs in each (parameters with both values, flags, position, wires, text). The host decides what happens:
- With Ask on Drift on (the default), the host gets a pop-up once per new difference: who differs in what. Choose offers, first, just the operators that differ ("Just the 2 operators that differ: the host's"), then whole copies: the host's own and each partner's that differs.
- Just the operators that differ replaces only those, with their wires and docked operators, and nothing else in the network changes. A whole copy replaces everyone else's zone, as Sync Zone does, after a confirmation.
- A partner is never popped up: their chip turns orange and their Status says their copy differs from the host's. Their Resolve Drift and the chip's right-click offer the host's version, of just the operators that differ or the whole copy, taken into their own zone alone.
- Resolve Drift opens the choice again at any time, and the chip's right-click lists the copies while they differ. Ask on Drift there switches the pop-ups off or on.
Compare File Paths (the host's choice counts) sets which file and folder parameters are
compared: by default only paths relative to the project, as an absolute path such as
C:/Users/... differs between computers without anyone changing it. Anything you mark Not
checked is left out of the check: see Keep Local.
What the check sees
It only compares what both of you look at. A difference in a network nobody has open, or only one of you has open, is not found until both of you view it. So:
- no pop-up means what you both viewed matches, not the whole zone;
- a pop-up right after you both entered a network can be about a difference made long before;
- Sync Zone replaces the whole zone, seen or not.
Differences nobody made
Most differences are somebody's edit. These need none:
- A Table or Text DAT a running network writes into: each side writes its own content, or the same a moment apart. Keep such a DAT outside the zone, or mark it Not checked.
- A DAT synced to a file: it holds what the file on each computer says.
- Line endings in a Text DAT (Windows CRLF against LF): builds after 0.4.4 compare text as a save keeps it and no longer report it.
A DAT whose content is an operator's output (an Info DAT, a Select DAT) is never compared: only Table and Text DATs are. Its parameters, flags, size and place are.