Quick answer: Unity Netcode for GameObjects pooled prefab handler dropping the spawn payload on reuse? Pool's GetNetworkPrefabInstance is called before payload is applied - apply payload in OnNetworkSpawn instead.
Pooled enemy spawns with default stats; payload was meant to set their level.
Apply in OnNetworkSpawn
public override void OnNetworkSpawn() {
ApplyPayload(spawnPayload);
}Runs after the spawn pipeline completes. Payload is committed by then.
Or use NetworkVariable
Store the level as a NetworkVariable. Replicates on spawn; no manual payload needed.
Audit pool handlers
Each custom INetworkPrefabInstanceHandler is suspect. Verify the spawn timing.
“Pooled spawns skip construction. Construction-time logic needs migration to OnNetworkSpawn.”
If you build pooled networking, treat spawn payload as a known concern. Plan it; don't discover it.