Quick answer: Godot 4 MultiplayerSpawner spawn data partial or empty on client? Default replication strips some types - explicitly serialize via PackedByteArray.

Spawn data is Dictionary; client receives empty Dictionary.

Serialize manually

var bytes = var_to_bytes(data)
spawn(bytes)

Bytes serialize cleanly. Client deserializes.

Or use only simple types

Dictionary nested = serialization risk. Flatten to arrays of primitives.

Verify on client

Print received data; verify structure matches sent.

“Replication serialization has type limits. Complex types may strip.”

If your spawn data is rich, the manual serialization is the safe path. Document the format.

Related reading