void AMovingPlatform::BeginPlay()
{
Super::BeginPlay();
SetReplicates(true);
SetReplicateMovement(true);
}
void AMovingPlatform::BeginPlay()
{
Super::BeginPlay();
SetReplicates(true);
SetReplicateMovement(true);
}
I think it has to do with version of unreal, but i’m not a 100%.
Unreal 4.25.1. bypassed the HasAuthority() if statement around the box so that now client and server both see the box moving. No error generated.
Check the definition of the SetReplicates by selecting it and pressing F12 (visual studio), you see
void AActor::SetReplicates(bool bInReplicates)
{
if (GetLocalRole() == ROLE_Authority)
which is equivalent to the definition of HasAuthority function:
FORCEINLINE_DEBUGGABLE bool AActor::HasAuthority() const
{
return (GetLocalRole() == ROLE_Authority);
}
So the authority check before SetReplicates(true); seems redundant and the SetReplicateMovement function doesn’t even seem to do a check on authority all it does is call another function to set the bool bReplicateMovement.