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.