-
Notifications
You must be signed in to change notification settings - Fork 0
Multiplayer
Toxc edited this page May 14, 2026
·
1 revision
DrawableSuits includes built-in suit texture sync for multiplayer sessions.
When you press Apply or Save in the editor, DrawableSuits sends your current suit texture to all other players in the session who also have the mod installed.
The sync process:
- The texture is serialized to PNG bytes.
- The payload is split into chunks and sent via Unity Netcode's custom named message system.
- Each receiving client reassembles the chunks and validates the result with a hash check.
- If the hash is valid, the texture is applied to your suit as seen by that client.
| Scenario | Result |
|---|---|
| Both you and another player have DrawableSuits | They see your custom texture when you Apply or Save |
| Another player does not have DrawableSuits | They join normally but see the original unmodified suit texture |
| You do not have DrawableSuits but others do | You won't see their custom textures |
The mod is not required on all clients — players without it can still join and play normally.
Sync is triggered by Apply or Save only — not by every individual brush stroke. This is intentional to avoid network spam during painting sessions. Design your suit, then apply it when you're satisfied.
The BepInEx config exposes the following multiplayer-related settings:
| Setting | Description |
|---|---|
MultiplayerSyncEnabled |
Enable or disable texture sync entirely |
MaxSyncPayloadSize |
Maximum total bytes allowed per texture sync payload |
SyncChunkSize |
Size in bytes of each individual chunk message |
See Configuration for all available options.
- If other players aren't seeing your texture, confirm that multiplayer sync is enabled in the config and that the other players have DrawableSuits installed.
- Very large textures may exceed the default
MaxSyncPayloadSize. Reduce the max texture size in the config or increase the payload limit. - If you see a hash validation warning in the console log, the texture data was corrupted in transit — try applying again.