Replicated UObjects

To replicate UObjects you have to make a new UObjectclass inheriting from UCSReplicatedObject.

[UClass]
public class UMyReplicatedUObject : UCSReplicatedObject
{
    
}

This object can now replicate variables and send RPCs.

To use your replicated UObject in Unreal's multiplayer system it needs to be registered through an AActor or UActorComponent.

Actor Example

[UClass]
public class AMyReplicatedActor : AActor
{
    [UProperty(PropertyFlags.Replicated)]
    public UMyReplicatedUObject ReplicatedObject { get; set; }

    protected override void BeginPlay()
    {
        base.BeginPlay();

        if (HasAuthority())
        {
            ReplicatedObject = NewObject<UMyReplicatedUObject>(this);
            
            // Register the new replicated UObject
            AddReplicatedSubObject(ReplicatedObject);
        }
    }
}

UActorComponent Example

[UClass]
public class UMyReplicatedComponent : UActorComponent
{
    [UProperty(PropertyFlags.Replicated)]
    public UMyReplicatedUObject ReplicatedObject { get; set; }

    public override void BeginPlay()
    {
        base.BeginPlay();

        if (Owner.HasAuthority())
        {
            ReplicatedObject = NewObject<UMyReplicatedUObject>(this);
            
            // Register the new replicated UObject
            AddReplicatedSubObject(ReplicatedObject);
        }
    }
}

Last updated