They're just network messages.
The server sends a message to the client, when the client receives the message it calls a function. It's that simple.
(RPC is short for Remote Procedure Call)
On entities you can mark a function as an RPC:
Here Client tells us that this method should only ever be called on the client.
So if you're on the server and you do this:
It gets called on the client version of the entity. We've done some magic in the background.
We have a problem with the above example. We wouldn't want to show the death screen to every player. We'd want to show it to just one.
The code generator has got you covered, it's created another function in the background which takes a target as the first argument.
Calling this will only call
- Sending messages from client to server
- Multicast messages