Is there some kind of checklist of what I should do only on server, only on client, and what I should do on both?
I’m currently working with character movement modifications in my own game and using UT source code as a point of reference. Later I’ll be working on weapons, powerups, and abilities.
I’m looking at the UT source code and there are a few checks for if(Role == ROLE_Authority) on some things, and not on other things that I feel should potentially be done only on the server.
Here are a few examples: ProcessLanded() in UTCharacterMovement has no server only guards.
TakeFallingDamage() in AUTCharacter has server only guards.
I’d think ProcessLanded() has a lot of code that should only execute on the server so it’s not immediately obvious to me why it’s allowed to run on the client.