Quick answer: Unreal replicated TArray sending the whole array on every change? TArray replication sends the delta when properly registered - use the FastArraySerializer base or DOREPLIFETIME_CONDITION.
Inventory replication ships 4KB per stack change. Players ARE making a lot of stack changes. Bandwidth dashboard is on fire.
Wrap in FastArraySerializer
USTRUCT()
struct FInventoryArray : public FFastArraySerializer { ... };Items as FFastArraySerializerItem derive structs; delta replication automatically sends only changed indices.
Mark items dirty individually
Call MarkItemDirty(Item) on every mutation, not MarkArrayDirty(). Per-item dirty is what enables the delta path.
Profile with NetProfile
stat netprofiler on the dedicated server. The bytes-per-RPC column tells you when you're paying for full-array replication vs. delta.
“TArray replicates as a TArray. Fast arrays replicate as deltas. Pick deliberately.”
Audit every replicated TArray in your project. The fast array refactor is mechanical and pays back the first hour of running it.