Unreal Engine's Mass: Networking Overview
July 04, 2026 · 4 min read
A Networking Overview of Unreal Engine's Mass.
This blog post was written in reference to Unreal Engine 5.8
Overview
Mass currently does not use Iris at all for its networking stack.
It currently operates in the standard Unreal Replication framework using a Server Authoritative Client Bubble network model.
Mass does not directly replicate every Entity to every Client, but instead follows the pattern similar to Replication Graph where it uses a “per-client bubble” of each connected player. Each Client player gets a Replicated Actor as the router for the system to carry only the Entities currently relevant to that player. The Server Authoritatively sends down the data for the Client to then spawn local Mass Entities from the Replicated data and render them appropriately.
Mass uses Fast Array Serializers to handle Replicating the actual Add/Update/Remove changes on Entities across the network.
Using FMassFastArrayItemBase as the base type, found in MassClientBubbleHandler.h.
For lifetime considerations, there is an Observer setup within MassReplicationProcessor.h named
UMassReplicationEntityDestructionObserver that introduces deterministic destruction of Replicated Mass agents to help enforce
a Client Proxy is torn down at the correct time within the frame.
It is recommended to pool short lived Entities via a simple Tag swap instead of Create/Destroy, which allows for stable network ID’s to be kept and less memory churn.
Autonomous Proxies
Mass uses an Actor Component for bridging player controlled Actors with Entities via UMassAgentComponent.
Mass does not support traditional network prediction patterns out of the box, anything predicted lives entirely on the Actor’s responsibilities.
My recommendations for Crowds and Prediction:
- Crowds: Fully Mass driven, with only swapping to full Actors when LOD considers it needing full functionality and complicated handling.
- Can also use Client side extrapolation and smoothing as a dead reckoning approach, found some attempts at this online have had some fairly successful results, but they weren’t too complicated, so any released project’s doing this hasn’t been showcased yet.
- Prediction: Using the Actor layer as the hidden core functionality with the Mass Entity layered on top as a local puppet. Helps with separating the responsibilities more cleanly.
Why is Network Prediction so important?
Because it allows for the game to feel immediate and not sluggish or laggy. So when you press a button, the result of that button press doesn’t wait for the network to update it should just do something immediately and not have the player have to worry about it.
Obviously this is unavoidable in certain scenarios(IE: Favor the shooter).