Hi, this is less of a question (now that I’ve found a solution that works for my purpose) and more of a report of “unexpected” behavior differences between reliable and unreliable NetMulticasts.
First, how I’ve discovered this while implementing an UNRELIABLE multicast function in my custom player state object (it’s a test project to attempt replication through RPCs). I had a variable that I was replicating to clients at 30 times per second, but I noticed that while the server was calling the multicast function 30 times per second, the clients were only receiving them once every second.
Findings:
- PlayerStates have a default net update frequency of 1 (once per second)
- Multicast functions SUPPOSEDLY only update once per update frequency of the actor
From what I’ve researched, the above are both as intended, and I’ve “solved” my issue by doing one of the following:
- Call ForceNetUpdate() right after the multicast function, OR
- Set ‘NetUpdateFrequency’ and ‘MinNetUpdateFrequency’ to 30 for my custom PlayerState (or some higher frequency than my intended frequency)
However, there was also a third solution (which was not acceptable for me as I am creating an UNRELIABLE replication system): Mark the multicast function as RELIABLE.
Based on what I’ve been able to find, this last part is NOT functioning as intended. BY DEFAULT, whether or not a multicast function is reliable, it should still only be called at the clients/peers once per second per the default settings.
I’m making this post in the hopes that others with slow playerstate updates can reference this for a solution AND hopefully highlight a potential bug behind how multicast functions work with the engine.