Events are called?

Am I to assume that ALL events (including event tick) are executed from the server unless specified as ‘run on own client’? Or am I wrong here?
I’m finding replication to be a bit difficult if I don’t treat all events as executed from server.

I did some research and it specifies events as treated in code, but in which way is that code executed? Server or Client? (Not talking about RPCs).

Could really use some clarification on this.

Hi Savaikun,

It depends entirely on the calling C++ or Blueprint code whether something will get called from client or server or both. C++ events and functions can be decorated with BlueprintCosmetic or BlueprintAuthorityOnly to indicate that they will (or should) only get called on the client or on the server, which also causes a different icon to appear in the top right corner of the node.

If you create a new event and call it from an existing server-only event and no-where else, then obviously that method will also end up being server only. However, things like tick can happen either place (controlled by bAllowTickOnDedicatedServer on the tick function).

Michael Noland

Thanks for clarifying this.
I’m trying to establish my prototype mostly within blueprint, so in regards to Event Tick within blueprint only, is this called on both? Or just the server? The documentation doesn’t really help me sadly.
For example, in order to change the ‘set max walk speed’ and have the client know his walk speed was changed, I had to set it up as an RPC to run correctly. Otherwise, the set max walk speed wouldn’t change on the client’s side whatsoever. And this was simply taken from an input pressed/released event. So presumably, a custom input event was running from server. Or am I mistaken.