UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DataChannel.cpp File Reference

Classes

class  UE::Net::FTearOffSetter
 
class  FScopedRoleDowngrade
 

Namespaces

namespace  UE
 
namespace  UE::Net
 
namespace  DataChannelInternal
 

Functions

 DEFINE_LOG_CATEGORY (LogNet)
 
 DEFINE_LOG_CATEGORY (LogNetSubObject)
 
 DEFINE_LOG_CATEGORY (LogRep)
 
 DEFINE_LOG_CATEGORY (LogNetPlayerMovement)
 
 DEFINE_LOG_CATEGORY (LogNetTraffic)
 
 DEFINE_LOG_CATEGORY (LogNetLifecycle)
 
 DEFINE_LOG_CATEGORY (LogRepTraffic)
 
 DEFINE_LOG_CATEGORY (LogNetDormancy)
 
 DEFINE_LOG_CATEGORY (LogSecurity)
 
 DEFINE_LOG_CATEGORY_STATIC (LogNetPartialBunch, Warning, All)
 
 DECLARE_CYCLE_STAT (TEXT("ActorChan_CleanUp"), Stat_ActorChanCleanUp, STATGROUP_Net)
 
 DECLARE_CYCLE_STAT (TEXT("ActorChan_PostNetInit"), Stat_PostNetInit, STATGROUP_Net)
 
 DECLARE_CYCLE_STAT (TEXT("Channel ReceivedRawBunch"), Stat_ChannelReceivedRawBunch, STATGROUP_Net)
 
 DECLARE_CYCLE_STAT (TEXT("ActorChan_FindOrCreateRep"), Stat_ActorChanFindOrCreateRep, STATGROUP_Net)
 
 DECLARE_LLM_MEMORY_STAT (TEXT("NetChannel"), STAT_NetChannelLLM, STATGROUP_LLMFULL)
 
 LLM_DEFINE_TAG (NetChannel, NAME_None, TEXT("Networking"), GET_STATFNAME(STAT_NetChannelLLM), GET_STATFNAME(STAT_NetworkingSummaryLLM))
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (Hello)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (Welcome)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (Upgrade)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (Challenge)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (Netspeed)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (Login)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (Failure)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (Join)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (JoinSplit)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (Skip)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (Abort)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (PCSwap)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (ActorChannelFailure)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (DebugText)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (NetGUIDAssign)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (SecurityViolation)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (GameSpecific)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (EncryptionAck)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (DestructionInfo)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (CloseReason)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (NetPing)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (BeaconWelcome)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (BeaconJoin)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (BeaconAssignGUID)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (BeaconNetGUIDAck)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (IrisProtocolMismatch)
 
 IMPLEMENT_CONTROL_CHANNEL_MESSAGE (IrisNetRefHandleError)
 

Variables

int32 GDoReplicationContextString
 
int32 GNetDormancyValidate
 
bool GbNetReuseReplicatorsForDormantObjects
 
TAutoConsoleVariable< int32CVarNetReliableDebug (TEXT("net.Reliable.Debug"), 0, TEXT(" 2: Print reliable bunch buffer each net update"), ECVF_Default)
 
int32 GCVarNetPartialBunchReliableThreshold = 8
 
FAutoConsoleVariableRef CVarNetPartialBunchReliableThreshold (TEXT("net.PartialBunchReliableThreshold"), GCVarNetPartialBunchReliableThreshold, TEXT("If a bunch is broken up into this many partial bunches are more, we will send it reliable even if the original bunch was not reliable. Partial bunches are atonmic and must all make it over to be used"))
 
int32 GSkipReplicatorForDestructionInfos = 1
 
FAutoConsoleVariableRef CVarNetSkipReplicatorForDestructionInfos (TEXT("net.SkipReplicatorForDestructionInfos"), GSkipReplicatorForDestructionInfos, TEXT("If enabled, skip creation of object replicator in SetChannelActor when we know there is no content payload and we're going to immediately destroy the actor."))
 
int32 UE::Net::FilterGuidRemapping = 1
 
bool UE::Net::bDiscardTornOffActorRPCs = true
 
bool UE::Net::bNetReplicateOnlyBeginPlay = false
 
UObjectDataChannelInternal::CurrentSubObjectOwner = nullptr
 
bool DataChannelInternal::bIgnoreLegacyReplicateSubObject = false
 
bool DataChannelInternal::bTrackReplicatedSubObjects = false
 
bool DataChannelInternal::bTestingLegacyMethodForComparison = false
 
bool GReplicateActorTimingEnabled = false
 
double GReplicateActorTimeSeconds = 0.0
 
int32 GNumReplicateActorCalls = 0
 
FAutoConsoleCommandWithWorld DormantActorCommand (TEXT("net.ListNetGUIDs"), TEXT("Lists NetGUIDs for actors"), FConsoleCommandWithWorldDelegate::CreateStatic(DebugNetGUIDs))
 
FAutoConsoleCommandWithWorld ListOpenActorChannelsCommand (TEXT("net.ListActorChannels"), TEXT("Lists open actor channels"), FConsoleCommandWithWorldDelegate::CreateStatic(ListOpenActorChannels))
 
FAutoConsoleCommandWithWorld DeleteDormantActorCommand (TEXT("net.DeleteDormantActor"), TEXT("Lists open actor channels"), FConsoleCommandWithWorldDelegate::CreateStatic(DeleteDormantActor))
 
FAutoConsoleCommandWithWorldAndArgs FindNetGUIDCommand (TEXT("net.Packagemap.FindNetGUID"), TEXT("Looks up object that was assigned a given NetGUID"), FConsoleCommandWithWorldAndArgsDelegate::CreateStatic(FindNetGUID))
 
FAutoConsoleCommandWithWorldAndArgs TestObjectRefSerializeCommand (TEXT("net.TestObjRefSerialize"), TEXT("Attempts to replicate an object reference to all clients"), FConsoleCommandWithWorldAndArgsDelegate::CreateStatic(TestObjectRefSerialize))
 

Function Documentation

◆ DECLARE_CYCLE_STAT() [1/4]

DECLARE_CYCLE_STAT ( TEXT("ActorChan_CleanUp")  ,
Stat_ActorChanCleanUp  ,
STATGROUP_Net   
)

◆ DECLARE_CYCLE_STAT() [2/4]

DECLARE_CYCLE_STAT ( TEXT("ActorChan_FindOrCreateRep")  ,
Stat_ActorChanFindOrCreateRep  ,
STATGROUP_Net   
)

◆ DECLARE_CYCLE_STAT() [3/4]

DECLARE_CYCLE_STAT ( TEXT("ActorChan_PostNetInit")  ,
Stat_PostNetInit  ,
STATGROUP_Net   
)

◆ DECLARE_CYCLE_STAT() [4/4]

DECLARE_CYCLE_STAT ( TEXT("Channel ReceivedRawBunch" ,
Stat_ChannelReceivedRawBunch  ,
STATGROUP_Net   
)

◆ DECLARE_LLM_MEMORY_STAT()

DECLARE_LLM_MEMORY_STAT ( TEXT("NetChannel")  ,
STAT_NetChannelLLM  ,
STATGROUP_LLMFULL   
)

◆ DEFINE_LOG_CATEGORY() [1/9]

DEFINE_LOG_CATEGORY ( LogNet  )

◆ DEFINE_LOG_CATEGORY() [2/9]

DEFINE_LOG_CATEGORY ( LogNetDormancy  )

◆ DEFINE_LOG_CATEGORY() [3/9]

DEFINE_LOG_CATEGORY ( LogNetLifecycle  )

◆ DEFINE_LOG_CATEGORY() [4/9]

DEFINE_LOG_CATEGORY ( LogNetPlayerMovement  )

◆ DEFINE_LOG_CATEGORY() [5/9]

DEFINE_LOG_CATEGORY ( LogNetSubObject  )

◆ DEFINE_LOG_CATEGORY() [6/9]

DEFINE_LOG_CATEGORY ( LogNetTraffic  )

◆ DEFINE_LOG_CATEGORY() [7/9]

DEFINE_LOG_CATEGORY ( LogRep  )

◆ DEFINE_LOG_CATEGORY() [8/9]

DEFINE_LOG_CATEGORY ( LogRepTraffic  )

◆ DEFINE_LOG_CATEGORY() [9/9]

DEFINE_LOG_CATEGORY ( LogSecurity  )

◆ DEFINE_LOG_CATEGORY_STATIC()

DEFINE_LOG_CATEGORY_STATIC ( LogNetPartialBunch  ,
Warning  ,
All   
)

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [1/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( Abort  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [2/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( ActorChannelFailure  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [3/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( BeaconAssignGUID  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [4/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( BeaconJoin  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [5/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( BeaconNetGUIDAck  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [6/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( BeaconWelcome  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [7/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( Challenge  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [8/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( CloseReason  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [9/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( DebugText  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [10/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( DestructionInfo  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [11/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( EncryptionAck  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [12/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( Failure  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [13/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( GameSpecific  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [14/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( Hello  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [15/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( IrisNetRefHandleError  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [16/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( IrisProtocolMismatch  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [17/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( Join  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [18/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( JoinSplit  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [19/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( Login  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [20/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( NetGUIDAssign  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [21/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( NetPing  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [22/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( Netspeed  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [23/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( PCSwap  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [24/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( SecurityViolation  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [25/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( Skip  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [26/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( Upgrade  )

◆ IMPLEMENT_CONTROL_CHANNEL_MESSAGE() [27/27]

IMPLEMENT_CONTROL_CHANNEL_MESSAGE ( Welcome  )

◆ LLM_DEFINE_TAG()

LLM_DEFINE_TAG ( NetChannel  ,
NAME_None  ,
TEXT("Networking")  ,
GET_STATFNAME(STAT_NetChannelLLM ,
GET_STATFNAME(STAT_NetworkingSummaryLLM  
)

Variable Documentation

◆ CVarNetPartialBunchReliableThreshold

FAutoConsoleVariableRef CVarNetPartialBunchReliableThreshold(TEXT("net.PartialBunchReliableThreshold"), GCVarNetPartialBunchReliableThreshold, TEXT("If a bunch is broken up into this many partial bunches are more, we will send it reliable even if the original bunch was not reliable. Partial bunches are atonmic and must all make it over to be used")) ( TEXT("net.PartialBunchReliableThreshold")  ,
GCVarNetPartialBunchReliableThreshold  ,
TEXT("If a bunch is broken up into this many partial bunches are more, we will send it reliable even if the original bunch was not reliable. Partial bunches are atonmic and must all make it over to be used"  
)

◆ CVarNetReliableDebug

TAutoConsoleVariable< int32 > CVarNetReliableDebug(TEXT("net.Reliable.Debug"), 0, TEXT(" 2: Print reliable bunch buffer each net update"), ECVF_Default) ( TEXT("net.Reliable.Debug")  ,
,
TEXT(" 2: Print reliable bunch buffer each net update" ,
ECVF_Default   
)

◆ CVarNetSkipReplicatorForDestructionInfos

FAutoConsoleVariableRef CVarNetSkipReplicatorForDestructionInfos(TEXT("net.SkipReplicatorForDestructionInfos"), GSkipReplicatorForDestructionInfos, TEXT("If enabled, skip creation of object replicator in SetChannelActor when we know there is no content payload and we're going to immediately destroy the actor.")) ( TEXT("net.SkipReplicatorForDestructionInfos")  ,
GSkipReplicatorForDestructionInfos  ,
TEXT("If enabled, skip creation of object replicator in SetChannelActor when we know there is no content payload and we're going to immediately destroy the actor."  
)

◆ DeleteDormantActorCommand

FAutoConsoleCommandWithWorld DeleteDormantActorCommand(TEXT("net.DeleteDormantActor"), TEXT("Lists open actor channels"), FConsoleCommandWithWorldDelegate::CreateStatic(DeleteDormantActor)) ( TEXT("net.DeleteDormantActor")  ,
TEXT("Lists open actor channels" ,
FConsoleCommandWithWorldDelegate::CreateStatic(DeleteDormantActor)   
)

◆ DormantActorCommand

FAutoConsoleCommandWithWorld DormantActorCommand(TEXT("net.ListNetGUIDs"), TEXT("Lists NetGUIDs for actors"), FConsoleCommandWithWorldDelegate::CreateStatic(DebugNetGUIDs)) ( TEXT("net.ListNetGUIDs")  ,
TEXT("Lists NetGUIDs for actors" ,
FConsoleCommandWithWorldDelegate::CreateStatic(DebugNetGUIDs)   
)

◆ FindNetGUIDCommand

FAutoConsoleCommandWithWorldAndArgs FindNetGUIDCommand(TEXT("net.Packagemap.FindNetGUID"), TEXT("Looks up object that was assigned a given NetGUID"), FConsoleCommandWithWorldAndArgsDelegate::CreateStatic(FindNetGUID)) ( TEXT("net.Packagemap.FindNetGUID")  ,
TEXT("Looks up object that was assigned a given NetGUID" ,
FConsoleCommandWithWorldAndArgsDelegate::CreateStatic(FindNetGUID)   
)

◆ GbNetReuseReplicatorsForDormantObjects

bool GbNetReuseReplicatorsForDormantObjects
extern

◆ GCVarNetPartialBunchReliableThreshold

int32 GCVarNetPartialBunchReliableThreshold = 8

◆ GDoReplicationContextString

int32 GDoReplicationContextString
extern

◆ GNetDormancyValidate

int32 GNetDormancyValidate
extern

◆ GNumReplicateActorCalls

int32 GNumReplicateActorCalls = 0

◆ GReplicateActorTimeSeconds

double GReplicateActorTimeSeconds = 0.0

◆ GReplicateActorTimingEnabled

bool GReplicateActorTimingEnabled = false

◆ GSkipReplicatorForDestructionInfos

int32 GSkipReplicatorForDestructionInfos = 1

◆ ListOpenActorChannelsCommand

FAutoConsoleCommandWithWorld ListOpenActorChannelsCommand(TEXT("net.ListActorChannels"), TEXT("Lists open actor channels"), FConsoleCommandWithWorldDelegate::CreateStatic(ListOpenActorChannels)) ( TEXT("net.ListActorChannels")  ,
TEXT("Lists open actor channels" ,
FConsoleCommandWithWorldDelegate::CreateStatic(ListOpenActorChannels)   
)

◆ TestObjectRefSerializeCommand

FAutoConsoleCommandWithWorldAndArgs TestObjectRefSerializeCommand(TEXT("net.TestObjRefSerialize"), TEXT("Attempts to replicate an object reference to all clients"), FConsoleCommandWithWorldAndArgsDelegate::CreateStatic(TestObjectRefSerialize)) ( TEXT("net.TestObjRefSerialize")  ,
TEXT("Attempts to replicate an object reference to all clients" ,
FConsoleCommandWithWorldAndArgsDelegate::CreateStatic(TestObjectRefSerialize)   
)