In this lesson, you will learn how to optimize your network bandwidth by strategically throttling the replication rate of non-critical actors using the NetUpdateFrequency property.
Understanding NetUpdateFrequency
In a multiplayer environment, every replicated actor sends data packets to clients at a set interval. By default, many actors might be updating at 100 times per second, which is overkill for background objects like flickering lights, ambient NPCs, or decorative physics items. NetUpdateFrequency defines how many times per second the server evaluates whether the actor’s properties have changed and need to be synchronized with clients.
If you set this value too high, you waste precious bandwidth on objects the player rarely notices. If you set it too low, your world becomes unresponsive and "laggy" for important objects. The goal is to strike a balance where critical actors (like the local player or projectile weapons) stay at high frequencies (e.g., 60–100Hz), while cosmetic actors are throttled to lower rates (e.g., 5–10Hz).
Implementation
You can adjust this directly in the constructor of your C++ class or via the Blueprint Defaults panel.
AMyDecorativeActor::AMyDecorativeActor()
{
// Lower the update frequency to save bandwidth
// Only update this actor 5 times per second
NetUpdateFrequency = 5.0f;
// Ensure NetPriority remains low for non-critical actors
NetPriority = 1.0f;
}
Strategic Tuning
When you lower the NetUpdateFrequency, remember that the MinNetUpdateFrequency also plays a role. If the actor hasn't changed its state significantly, the engine may fall back to this lower bound to save even more traffic. For background props, keeping the NetUpdateFrequency low ensures that even if you have hundreds of actors in a scene, the server only processes their network state updates intermittently. This keeps your packet overhead small, preventing network congestion that could otherwise cause stuttering for more important gameplay systems.
Always profile these changes using Unreal Insights to verify that your bandwidth footprint is shrinking without causing noticeable visual "teleporting" or state desyncs in your actors.
Key Takeaway: By lowering NetUpdateFrequency for non-critical actors, you drastically reduce server-to-client bandwidth usage, allowing you to prioritize network resources for high-intensity gameplay systems.