UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
EngineReplicationBridge.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
7#include "UObject/ObjectPtr.h"
8#include "EngineReplicationBridge.generated.h"
9
10class UNetDriver;
13
14class UActorComponent;
15class UWorld;
16
17namespace UE::Net
18{
19 enum class ENetRefHandleError : uint32;
20}
21
22namespace UE::Net
23{
24
25// If actor should be replicated using IRIS or old replication system
27
28// Currently just a direct mapping of EEEndPlayReason::Type but we might want to add more specific reasons later on
42
44
45}
46
74
84
85UCLASS(Transient, MinimalAPI, config=Engine)
87{
89
90public:
92 virtual ENGINE_API ~UEngineReplicationBridge() override;
93
95
97 ENGINE_API void SetNetDriver(UNetDriver* const InNetDriver);
98
100 inline UNetDriver* GetNetDriver() const { return NetDriver; }
101
103 ENGINE_API FNetRefHandle StartReplicatingActor(AActor* Instance);
104
106 ENGINE_API void StopReplicatingActor(AActor* Actor, const FStopReplicatingActorParams& Params);
107
109 ENGINE_API EEndReplicationFlags ConvertToEndReplicationFlags(UE::Net::EStopReplicatingReason StopReplicatingReason) const;
110
115 ENGINE_API FNetRefHandle StartReplicatingComponent(FNetRefHandle RootObjectHandle, UActorComponent* ActorComponent);
116
118 ENGINE_API FNetRefHandle StartReplicatingSubObject(UObject* SubObject, const FSubObjectReplicationParams& Params);
119
121 ENGINE_API void StopReplicatingComponent(UActorComponent* ActorComponent, EEndReplicationFlags EndReplicationFlags = EEndReplicationFlags::None);
122
124 UIrisObjectReferencePackageMap* GetObjectReferencePackageMap() const { return ObjectReferencePackageMap; }
125
127 ENGINE_API virtual void SendErrorWithNetRefHandle(UE::Net::ENetRefHandleError ErrorType, FNetRefHandle RefHandle, uint32 ConnectionId, TConstArrayView<const FNetRefHandle> ExtraNetRefHandle = {}) override;
128
130 ENGINE_API void AddRootObjectToLevelGroup(const UObject* RootObject, const ULevel* Level);
131
133 void ActorChangedLevel(const AActor* Actor, const ULevel* PreviousLevel);
134
136 void OnNetUpdateFrequencyChanged(const AActor* Actor);
137
138 void WakeUpObjectInstantiatedFromRemote(AActor* Actor) const;
139
146
148 UE::Net::FNetObjectFactoryId GetActorFactoryId() const { return ActorFactoryId; }
149
151 UE::Net::FNetObjectFactoryId GetSubObjectFactoryId() const { return SubObjectFactoryId; }
152
153protected:
154 // UReplicationBridge
155 virtual void OnPreSeamlessTravelGarbageCollect() override;
156
157 // UObjectReplicationBridge
158 virtual void Initialize(UReplicationSystem* ReplicationSystem) override;
159 virtual void Deinitialize() override;
160 virtual void GetInitialDependencies(FNetRefHandle Handle, FNetDependencyInfoArray& OutDependencies) const override;
161 virtual bool RemapPathForPIE(uint32 ConnectionId, FString& Path, bool bReading) const override;
162 virtual bool ObjectLevelHasFinishedLoading(UObject* Object) const override;
163 virtual bool IsAllowedToDestroyInstance(const UObject* Instance) const override;
164 virtual void OnProtocolMismatchDetected(FNetRefHandle ObjectHandle) override;
165 virtual void OnProtocolMismatchReported(FNetRefHandle RefHandle, uint32 ConnectionId) override;
166 virtual bool CanCreateDestructionInfo() const override;
167
169 virtual bool IsClassReplicatedByDefault(const UClass* Class) const;
170
171 [[nodiscard]] virtual FString PrintConnectionInfo(uint32 ConnectionId) const override;
172
173private:
174
175 void OnMaxTickRateChanged(UNetDriver* InNetDriver, int32 NewMaxTickRate, int32 OldMaxTickRate);
176
177private:
178
179 UE::Net::FNetObjectFactoryId ActorFactoryId;
180 UE::Net::FNetObjectFactoryId SubObjectFactoryId;
181
182 UNetDriver* NetDriver = nullptr;
183
185 TObjectPtr<UIrisObjectReferencePackageMap> ObjectReferencePackageMap = nullptr;
186
187 UPROPERTY(Config)
189 FName ActorFactoryName;
190
191 UPROPERTY(Config)
193 FName SubObjectFactoryName;
194};
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define UCLASS(...)
Definition ObjectMacros.h:776
EEndReplicationFlags
Definition ReplicationBridgeTypes.h:12
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Actor.h:257
Definition Engine.Build.cs:7
Definition NameTypes.h:617
Definition Array.h:670
Definition ActorComponent.h:152
Definition Class.h:3793
Definition EngineReplicationBridge.h:87
UE::Net::FNetObjectFactoryId GetSubObjectFactoryId() const
Definition EngineReplicationBridge.h:151
UIrisObjectReferencePackageMap * GetObjectReferencePackageMap() const
Definition EngineReplicationBridge.h:124
UE::Net::FNetObjectFactoryId GetActorFactoryId() const
Definition EngineReplicationBridge.h:148
UNetDriver * GetNetDriver() const
Definition EngineReplicationBridge.h:100
Definition IrisObjectReferencePackageMap.h:72
Definition Level.h:423
Definition NetDriver.h:799
Definition ObjectReplicationBridge.h:83
Definition Object.h:95
Definition ReplicationSystem.h:70
Definition World.h:918
Type
Definition EngineTypes.h:3431
@ Destroyed
Definition EngineTypes.h:3433
Definition NetworkVersion.cpp:28
const TCHAR * LexToString(UE::Net::EStopReplicatingReason Reason)
Definition EngineReplicationBridge.cpp:121
uint8 FNetObjectFactoryId
Definition NetObjectFactoryRegistry.h:18
ENetRefHandleError
Definition NetEnums.h:130
bool ShouldUseIrisReplication()
Definition IrisConfig.cpp:15
EStopReplicatingReason
Definition EngineReplicationBridge.h:30
Definition EngineReplicationBridge.h:48
FName NetFactoryName
Definition EngineReplicationBridge.h:72
EFilterType FilterType
Definition EngineReplicationBridge.h:66
FName ExplicitDynamicFilterName
Definition EngineReplicationBridge.h:69
EFilterType
Definition EngineReplicationBridge.h:50
@ AlwaysRelevant
Definition EngineReplicationBridge.h:54
@ DefaultSpatial
Definition EngineReplicationBridge.h:56
@ ExplicitFilter
Definition EngineReplicationBridge.h:58
@ ConfigFilter
Definition EngineReplicationBridge.h:52
Definition AnalyticsEventAttribute.h:48
Definition EngineReplicationBridge.h:76
UE::Net::EStopReplicatingReason StopReplicatingReason
Definition EngineReplicationBridge.h:79
EEndPlayReason::Type EndPlayReason
Definition EngineReplicationBridge.h:82
Definition ObjectPtr.h:488