UE1 - UT Does CheckReplacement get called on the client?

  • Two Factor Authentication is now available on BeyondUnreal Forums. To configure it, visit your Profile and look for the "Two Step Verification" option on the left side. We can send codes via email (may be slower) or you can set up any TOTP Authenticator app on your phone (Authy, Google Authenticator, etc) to deliver codes. It is highly recommended that you configure this to keep your account safe.

Helen

Member
Jan 23, 2010
48
0
6
I know just because you throw a 'simulated' in front of a function, that doesn't mean it is guaranteed to get called on the client. What's the scoop with CheckReplacement, will it fire on the client if I prefix with 'simulated'?

Thanks.
 

meowcat

take a chance
Jun 7, 2001
803
3
18
No it is not called on the client because mutators only exist on the server for starters (even if 'simulated' it would never be called). The function call chain goes from actor (Prebeginplay) to the level.game (gameinfo class's IsRelevant function) down to the mutator's IsRelevant function. I don't even remember if the PreBeginPlay function gets called on clients, I'm pretty sure that the levelinfo's game does not exist on the client (only its GameRepliccationInfo GRI) and most of the functions in that chain are not simulated.

Depending on what you are trying to do you may be able to use a SpawnNotify though... (they are very useful but can easily be abused in ways that will cause infinite recursion errors...)
 
Last edited:

Wormbo

Administrator
Staff member
Jun 4, 2001
5,913
36
48
Germany
www.koehler-homepage.de
Mutators not existing on clients isn't the problem. The reason is that the mutator chain starts with Level.Game.BaseMutator. And as you may know, Level.Game is None on clients because the GameInfo is definitely serverside-only.
As a result there's no way to access the mutator chain (it's simply not maintained on clients, even if some mutators are replicated) and thus actors can't use it to call AlwaysKeep(), CheckReplacement(), etc.