I’ve read all the official documentation, watched many tutorials, but still I’m struggling to understand and I’d appreciate some help.
Context: I am using 4.27.2 blueprints only and I have gotten successful multiplayer connection to myself through the default online subsystem by running as 2 standalone windows.
I want any client including the listen server to have the ability to create a certain actor that is replicated to all. Right now I am running an event from my custom player state that is set to run on server this creates an actor that is set to replicate. This from my testing works, but it doesn’t seem like the right way to do this.
From my current understanding the run on server setting is an RPC, but the documentation says it is unreliable and to use it for cosmetic and transient purposes. My game depends on this actor being created and replicated reliably. I want to click the option that says reliable, but I feel like it’s off by default for a reason.
How can I, from a client, create a replicated actor on the server without using this RPC event setting?
What is the drawback to setting an RPC event to be reliable?
Why is it that despite the documentation saying that player states are run on the server and replicated to all clients, that my client can run events on the player state that aren’t replicated?
If player states are replicated to all clients, does that mean a client could cheat by seeing a variable they shouldn’t be allowed to see if it’s stored in a player state? (Health, inventory, etc.)
I also have an issue with another problem. I created an actor, I want to replicate everything about the actor excluding one component, which is a UI widget. But when I set the actor to replicate, the UI widget visibility setting is replicated even though the component is not set to replicate. Why is this happening? Is the visibility setting for my widget stored in the actor and not the component?