Force Net Update and Reliable

So after watching UnrealEngine’s video on Networking in UE4,
I wondered what is the difference between Force Net Update (FNU) and Reliable events.

If Reliable events can cause latency issues then why not just use FNU instead as a workaround so the players get the information as soon as possible.

ForceNetUpdate means you are forcing the system to replicate the data on the next frame. Reliable events don’t replicate immediately until the next NetUpdateTime tick.

The advantage of ForceNetUpdate is you can lower the NetUpdateTime so you don’t waste much CPU cycles due to checking the state of the object has changed every NetUpdateTime tick.

Say you have a Door that only replicates when it is opened or closed. It is a good thing to either lower its NetUpdateTime or put it on a NetDormancy and then just call ForceNetUpdate when it is either opened or closed.

If you have a ParticleFX that you want to sync between clients every, say 5 seconds, then Reliable event with NetUpdateTime of 5 seconds is a good way to do so.

It depends on the use case. Remember that ForceNetUpdate will force the replication regardless of the NetPriority. Reliable events at a rate of NetUpdateTime respect the Priority so they don’t replicate even with higher NetUpdateTime if they have lower priority and the network bandwidth usage is high. Its easy to do ForceNetUpdate every frame which will tank your bandwidth so you want to make sure that ForceNetUpdate is not used on where player can spam something that sends FNU every frame.

Thank you for the quick answer!
I think I’ve got a better understanding of FNU and Reliable events!

The only thing that still kinda bothers me though is why would I even use a Reliable event, if I can just set the NetUpdateTime to a really low number, and use FNU’s whenever they are needed, so I can save CPU power.

For example instead of making a Reliable event of “Shoot/ing” with NetUpdate of 100 (or in the range -Because I want that event to happen as soon as possible) I can just call that same event with FNU, but this time not Reliable and with a NetUpdate of something like 5. Wouldn’t it basically accomplish the same result or even faster and with a reduced CPU power?

dude that’s literally from the server optimization ue4 stream XD