Skip to content
Toxc edited this page May 14, 2026 · 1 revision

Multiplayer

DrawableSuits includes built-in suit texture sync for multiplayer sessions.


How It Works

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:

  1. The texture is serialized to PNG bytes.
  2. The payload is split into chunks and sent via Unity Netcode's custom named message system.
  3. Each receiving client reassembles the chunks and validates the result with a hash check.
  4. If the hash is valid, the texture is applied to your suit as seen by that client.

Who Needs the Mod?

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.


When Does Sync Happen?

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.


Payload and Chunk Settings

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.


Troubleshooting

  • 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.

Clone this wiki locally