This has been an interesting process, adding multiplayer to something that never intended to be multiplayer. Luckily with the engine supporting it out of the box it was really just ticking some boxes here and there and adding multiplayer specific things like the nameplates for who is editing something and the player avatar for other clients to see.



If there are any issues please let me know! Feedback and suggestions are more than welcome. Thanks for playing Thumbnail Studio!
[Sync] does almost everything. Display names, player colors, the active preset on a character, the backdrop index, anim params, morphs, they're all just properties marked [Sync]. The game fires a [Change] handler on the other side, you reapply it locally. Owner-write by default, or [Sync(SyncFlags.FromHost)] for stuff only the host should decide (like which map is loaded).

https://sbox.game/dev/doc/networking/sync-properties


Every networked object has one owner at a time, and whoever owns it is the one whose Sync writes win. Click a character and you call Network.TakeOwnership() on it. From then on your client is writing its pose, outfit, camera angle, and everyone else just reads from these sync properties because the editor is the owner.

https://sbox.game/dev/doc/networking/ownership
Multiplayer Update
1.3.4
24 May 2026
🎁 Added
  • Multiplayer
  • Client nameplates (who is editing what)
  • Lobby options
  • Whacky camera in hand
  • Little review nudger after 5 minutes
🧼 Improved
  • UI Improvements
🪛 Fixed
  • Various fixes to player data
⚠️ Known Issues
  • Nameplates sometimes double up, I need to see why this happens
people
Log in to reply
You can't reply if you're not logged in. That would be crazy.