UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::Net::Private Namespace Reference

Namespaces

namespace  AttachmentReplicationCVars
 
namespace  CVars
 
namespace  GranularMemoryTracking
 
namespace  NetObjectGroupsInternal
 
namespace  ObjectBridgeDebugging
 

Classes

struct  FActorDormantReplicators
 
struct  FAutoDestructProperty
 
struct  FBitFieldPropertyNetSerializerInfo
 
class  FBridgeSerialization
 
struct  FChangeMaskCache
 
class  FChangeMaskStorageOrPointer
 
struct  FChangeMaskUtil
 
struct  FChildSubObjectsInfo
 
class  FChunkedDataReader
 
struct  FChunkedDataStreamParameters
 
class  FChunkedDataWriter
 
class  FCoreNetContext
 
struct  FCreateNetObjectParams
 
struct  FCreateReplicationProtocolParameters
 
class  FDeltaCompressionBaseline
 
class  FDeltaCompressionBaselineInvalidationTracker
 
struct  FDeltaCompressionBaselineInvalidationTrackerInitParams
 
class  FDeltaCompressionBaselineManager
 
struct  FDeltaCompressionBaselineManagerInitParams
 
struct  FDeltaCompressionBaselineManagerPostSendUpdateParams
 
struct  FDeltaCompressionBaselineManagerPreSendUpdateParams
 
class  FDeltaCompressionBaselineStateInfo
 
class  FDeltaCompressionBaselineStorage
 
struct  FDeltaCompressionBaselineStorageInitParams
 
struct  FDependentObjectInfo
 
struct  FDequantizeAndApplyHelper
 
class  FDirtyNetObjectTracker
 
struct  FDirtyNetObjectTrackerInitParams
 
class  FDirtyObjectsAccessor
 
struct  FDormantObjectReplicator
 
struct  FDormantReplicatorHolder
 
struct  FEnumAsBytePropertyNetSerializerInfo
 
struct  FEnumNetSerializerBase
 
class  FEnumPropertyNetSerializerInfo
 
class  FFastArrayReplicationFragmentBase
 
struct  FFastArrayReplicationFragmentHelper
 
struct  FFloatTripletNetSerializer
 
class  FForceInlineExportScope
 
struct  FFragmentRegistrationContextPrivateAccessor
 
struct  FGlobalChangeMaskAllocator
 
class  FInstancedStructDescriptorCache
 
class  FInternalNetSerializationContext
 
class  FInternalNetSerializerDelegates
 
struct  FInternalTypeInfo
 
struct  FIntNetSerializerBase
 
struct  FIntRangeNetSerializerBase
 
struct  FIrisFastArraySerializerPrivateAccessor
 
struct  FLazyGetPathNameHelper
 
struct  FMemStackChangeMaskAllocator
 
struct  FNativeBoolPropertyNetSerializerInfo
 
class  FNativeFastArrayReplicationFragmentBase
 
class  FNetBlobHandlerManager
 
class  FNetBlobManager
 
struct  FNetBlobManagerInitParams
 
class  FNetDependencyData
 
class  FNetExportContext
 
class  FNetExportRollbackScope
 
class  FNetExports
 
class  FNetObjectAttachmentReceiveQueue
 
struct  FNetObjectAttachmentReceiveQueueInitParams
 
class  FNetObjectAttachmentSendQueue
 
class  FNetObjectAttachmentsReader
 
struct  FNetObjectAttachmentsReaderInitParams
 
class  FNetObjectAttachmentsWriter
 
class  FNetObjectBlob
 
class  FNetObjectFilterHandleUtil
 
class  FNetObjectFilteringInfoAccessor
 
struct  FNetObjectGroup
 
struct  FNetObjectGroupInitParams
 
class  FNetObjectGroups
 
class  FNetPingICMP
 
class  FNetPingQoSBase
 
class  FNetPingUDPQoS
 
class  FNetPropertyConditionManager
 
class  FNetRefHandleManager
 
struct  FNetRoleNetSerializerInfo
 
class  FNetRPC
 
class  FNetSendStats
 
class  FNetStatsContext
 
class  FNetStatsTimer
 
class  FNetTimer
 
class  FNetTypeStats
 
struct  FNetTypeStatsData
 
struct  FNopNetSerializerInfo
 
struct  FObjectNetSerializerBase
 
class  FObjectPoller
 
class  FObjectPollFrequencyLimiter
 
struct  FObjectPropertyNetSerializerInfo
 
struct  FObjectPtrPropertyNetSerializerInfo
 
class  FObjectReferenceCache
 
class  FObjectScopeHysteresisUpdater
 
struct  FPackedVectorNetSerializerBase
 
struct  FPendingBatchData
 
struct  FPendingBatchHolder
 
struct  FPolymorphicStructNetSerializerInternal
 
class  FPropertyConditionDelegates
 
class  FPropertyReplicationStateDescriptorBuilder
 
struct  FQueuedDataChunk
 
class  FReliableNetBlobQueue
 
class  FReplicationConditionals
 
struct  FReplicationConditionalsInitParams
 
struct  FReplicationConnection
 
class  FReplicationConnections
 
class  FReplicationFiltering
 
struct  FReplicationFilteringInitParams
 
struct  FReplicationInstanceOperationsInternal
 
struct  FReplicationInstanceProtocolDeleter
 
struct  FReplicationParameters
 
class  FReplicationPollTask
 
struct  FReplicationPollTaskData
 
class  FReplicationPrioritization
 
struct  FReplicationPrioritizationInitParams
 
class  FReplicationProtocolManager
 
struct  FReplicationProtocolOperationsInternal
 
class  FReplicationReader
 
class  FReplicationRecord
 
class  FReplicationStateDescriptorRegistry
 
struct  FReplicationStateDescriptorRegistryInitParams
 
struct  FReplicationStateOperationsInternal
 
struct  FReplicationStats
 
class  FReplicationSystemImpl
 
class  FReplicationSystemInternal
 
struct  FReplicationSystemInternalInitParams
 
class  FReplicationWriter
 
class  FResolveAndCollectUnresolvedAndResolvedReferenceCollector
 
class  FScopedRemoteRPCMode
 
struct  FScriptInterfacePropertyNetSerializerInfo
 
struct  FStaticDestructionInfo
 
class  FStringNetSerializerUtils
 
struct  FTextPropertyNetSerializerInfo
 
struct  FUint8PropertyNetSerializerInfo
 
struct  FUnitQuatNetSerializerBase
 
struct  FVectorNetQuantizeNetSerializerBase
 
struct  FWeakObjectPtrPropertyNetSerializerInfo
 
class  TChunkedArrayWithChunkManagement
 
class  TInitEnumNetSerializerConfig
 
class  TInternalNetSerializer
 
class  TInternalNetSerializerBuilder
 
struct  TReplicationRecordHelper
 

Typedefs

typedef uint32 FInternalNetRefIndex
 
using ChangeMaskStorageType = FNetBitArrayView::StorageWordType
 
using DeltaCompressionBaselineStateInfoIndexType = uint32
 
typedef int8 FLifeTimeConditionStorage
 
typedef TUniquePtr< FReplicationInstanceProtocol, FReplicationInstanceProtocolDeleterFReplicationInstanceProtocolPtr
 
typedef TUniquePtr< FPendingBatchDataFPendingBatchDataPtr
 

Enumerations

enum class  ERemoteFunctionMode { None , Receiving , Sending }
 
enum class  EMemberPropertyTraits : uint32 {
  None = 0U , InitOnly = 1U << 0U , HasLifetimeConditionals = InitOnly << 1U , RepNotifyOnChanged = HasLifetimeConditionals << 1U ,
  RepNotifyAlways = RepNotifyOnChanged << 1U , NeedPreviousState = RepNotifyAlways << 1U , HasDynamicState = NeedPreviousState << 1U , HasObjectReference = HasDynamicState << 1U ,
  HasCustomObjectReference = HasObjectReference << 1U , IsSourceTriviallyConstructible = HasCustomObjectReference << 1U , IsSourceTriviallyDestructible = IsSourceTriviallyConstructible << 1U , IsTArray = IsSourceTriviallyDestructible << 1U ,
  IsFastArray = IsTArray << 1U , IsNativeFastArray = IsFastArray << 1U , IsFastArrayWithExtraProperties = IsNativeFastArray << 1U , IsFastArrayItem = IsFastArrayWithExtraProperties << 1U ,
  IsInvalidFastArray = IsFastArrayItem << 1U , HasConnectionSpecificSerialization = IsInvalidFastArray << 1U , HasPushBasedDirtiness = HasConnectionSpecificSerialization << 1U , UseSerializerIsEqual = HasPushBasedDirtiness << 1U
}
 
enum class  EStructNetSerializerType : unsigned { Struct , Custom , DerivedFromCustom }
 
enum class  ENetObjectAttachmentType : uint32 { Normal , OutOfBand , HugeObject , InternalCount }
 
enum class  EAttachmentWriteStatus : unsigned { Success , NoAttachments , ReliableWindowFull , BitstreamOverflow }
 
enum class  ENetObjectGroupTraits : uint32 { None = 0x0000 , IsExclusionFiltering = 0x0001 , IsInclusionFiltering = 0x0002 }
 
enum class  EAddSubObjectFlags : uint32 {
  None = 0U , WarnIfAlreadySubObject = 1U , SkipIfAlreadySubObject = WarnIfAlreadySubObject << 1U , DestroyWithOwner = SkipIfAlreadySubObject << 1U ,
  ReplicateWithSubObject = DestroyWithOwner << 1U , InsertAtStart = ReplicateWithSubObject << 1U , Default = WarnIfAlreadySubObject | DestroyWithOwner
}
 
enum class  ERemoveDependentObjectFlags : uint32 { None = 0U , RemoveFromDependentParentObjects = 1U , RemoveFromParentDependentObjects = RemoveFromDependentParentObjects << 1U , All = RemoveFromDependentParentObjects | RemoveFromParentDependentObjects }
 
enum  EReplicationDataStreamDebugFeatures : uint32 { None = 0U , BatchSizePerObject = 1U << 0U , Sentinels = 1U << 1U }
 
enum class  ENetObjectAttachmentDispatchFlags : uint32 { None = 0 , Reliable = 1U << 0U , Unreliable = Reliable << 1U }
 
enum  EReplicatedDestroyHeaderFlags : uint32 {
  ReplicatedDestroyHeaderFlags_None = 0U , ReplicatedDestroyHeaderFlags_TearOff = 1U << 0U , ReplicatedDestroyHeaderFlags_EndReplication = ReplicatedDestroyHeaderFlags_TearOff << 1U , ReplicatedDestroyHeaderFlags_DestroyInstance = ReplicatedDestroyHeaderFlags_EndReplication << 1U ,
  ReplicatedDestroyHeaderFlags_BitCount = 3U
}
 

Functions

FGuid GetEngineNetworkVersionGuid ()
 
FGuid GetGameNetworkVersionGuid ()
 
FCustomVersionContainerGetNetworkCustomVersions ()
 
FCustomVersionContainerGetCompatibleNetworkCustomVersions ()
 
template<int32 ScaleFactor, int32 MaxBitsPerComponent>
bool LegacyReadPackedVector (FVector3f &Value, FArchive &Ar)
 
bool IsActorValidForIrisReplication (const AActor *Actor)
 
void ActorReplicationBridgePreUpdateFunction (TArrayView< UObject * > Instances, const UObjectReplicationBridge *Bridge)
 
bool ShouldIncludeRootObjectInLevelGroups (const UObject *RootObject)
 
EActorNetSpawnInfoFlags GetSpawnInfoFlags ()
 
bool DoesTypeMatch (FReplicationSystemUtil::EType Type, UReplicationSystem *System)
 
TArray< UE::Net::Private::FAutoDestructPropertyCopyOutParametersToLocalParameters (UFunction *Function, FOutParmRec *OutParms, void *LocalParms, UObject *TargetObj)
 
void ApplyReplicationSystemConfig (const FNetDriverReplicationSystemConfig &ReplicationSystemConfig, UReplicationSystem::FReplicationSystemParams &OutParams)
 
bool IsGuidInOuterChain (const FNetGUIDCache &GuidCache, const FNetGuidCacheObject *CacheObj, FNetworkGUID GuidMatch)
 
constexpr int32 PingTypeToIdx (EPingType PingType)
 
void NetResultToString (FString &OutResultStr, const TCHAR *LexResult, const FString &ErrorContext, ENetResultString ConversionType)
 
uint32 GetBitsNeeded (const int32 Value)
 
uint32 GetBitsNeeded (const int64 Value)
 
int32 RoundFloatToInt (float F)
 
int64 RoundFloatToInt (double F)
 
template<class T >
bool WriteQuantizedVector (const int32 Scale, const T &Value, FArchive &Ar)
 
template<class T >
bool ReadQuantizedVector (const int32 Scale, T &Value, FArchive &Ar)
 
template<class T >
QuantizeVector (const int32 Scale, const T &Value)
 
 UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO (FInt8Property, FInt8NetSerializer)
 
 UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO (FInt16Property, FInt16NetSerializer)
 
 UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO (FIntProperty, FPackedInt32NetSerializer)
 
 UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO (FInt64Property, FInt64NetSerializer)
 
 UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO (FUInt16Property, FUint16NetSerializer)
 
 UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO (FUInt32Property, FPackedUint32NetSerializer)
 
 UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO (FUInt64Property, FUint64NetSerializer)
 
 UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO (FFloatProperty, FFloatNetSerializer)
 
 UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO (FDoubleProperty, FDoubleNetSerializer)
 
 UE_NET_IMPLEMENT_NETSERIALIZER_INFO (FObjectPropertyNetSerializerInfo)
 
 UE_NET_IMPLEMENT_NETSERIALIZER_INFO (FObjectPtrPropertyNetSerializerInfo)
 
 UE_NET_IMPLEMENT_NETSERIALIZER_INFO (FWeakObjectPtrPropertyNetSerializerInfo)
 
 UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO (FSoftObjectProperty, FSoftObjectNetSerializer)
 
 UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO (FSoftClassProperty, FSoftObjectNetSerializer)
 
 UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO (FFieldPathProperty, FFieldPathNetSerializer)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO (PropertyNetSerializerRegistry_NAME_SoftObjectPath, FSoftObjectPathNetSerializer)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO (PropertyNetSerializerRegistry_NAME_SoftClassPath, FSoftClassPathNetSerializer)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO (PropertyNetSerializerRegistry_NAME_RemoteObjectReference, FRemoteObjectReferenceNetSerializer)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO (PropertyNetSerializerRegistry_NAME_RemoteServerId, FRemoteServerIdNetSerializer)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO (PropertyNetSerializerRegistry_NAME_RemoteObjectId, FRemoteObjectIdNetSerializer)
 
 UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO (FStrProperty, FStringNetSerializer)
 
 UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO (FNameProperty, FNameAsNetTokenNetSerializer)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO (PropertyNetSerializerRegistry_NAME_Guid, FGuidNetSerializer)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO (NAME_Vector, FVectorNetSerializer)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO (NAME_Vector3f, FVector3fNetSerializer)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO (NAME_Vector3d, FVector3dNetSerializer)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO (NAME_Rotator, FRotatorNetSerializer)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO (NAME_Rotator3f, FRotator3fNetSerializer)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO (NAME_Rotator3d, FRotator3dNetSerializer)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO (NAME_Quat, FUnitQuatNetSerializer)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO (NAME_Quat4f, FUnitQuat4fNetSerializer)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO (NAME_Quat4d, FUnitQuat4dNetSerializer)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO (PropertyNetSerializerRegistry_NAME_Vector_NetQuantize100, FVectorNetQuantize100NetSerializer)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO (PropertyNetSerializerRegistry_NAME_Vector_NetQuantize10, FVectorNetQuantize10NetSerializer)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO (PropertyNetSerializerRegistry_NAME_Vector_NetQuantize, FVectorNetQuantizeNetSerializer)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO (PropertyNetSerializerRegistry_NAME_Vector_NetQuantizeNormal, FVectorNetQuantizeNormalNetSerializer)
 
 UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO (PropertyNetSerializerRegistry_NAME_DateTime, FDateTimeNetSerializer)
 
 UE_NET_IMPLEMENT_NETSERIALIZER_INFO (FUint8PropertyNetSerializerInfo)
 
 UE_NET_IMPLEMENT_NETSERIALIZER_INFO (FNativeBoolPropertyNetSerializerInfo)
 
 UE_NET_IMPLEMENT_NETSERIALIZER_INFO (FBitFieldPropertyNetSerializerInfo)
 
 UE_NET_IMPLEMENT_NETSERIALIZER_INFO (FScriptInterfacePropertyNetSerializerInfo)
 
 UE_NET_IMPLEMENT_NETSERIALIZER_INFO (FTextPropertyNetSerializerInfo)
 
void RegisterDefaultPropertyNetSerializerInfos ()
 
 UE_NET_IMPLEMENT_NETSERIALIZER_INFO (FEnumAsBytePropertyNetSerializerInfo)
 
 UE_NET_IMPLEMENT_NETSERIALIZER_INFO (FNetRoleNetSerializerInfo)
 
 UE_NET_IMPLEMENT_NETSERIALIZER_INFO (FEnumPropertyNetSerializerInfo)
 
 UE_NET_DECLARE_NETSERIALIZER_INFO (FEnumPropertyNetSerializerInfo)
 
 UE_NET_DECLARE_NETSERIALIZER_INFO (FNetRoleNetSerializerInfo)
 
void InitReplicationStateInternals (uint8 *StateBuffer, const FReplicationStateDescriptor *Descriptor)
 
void CopyPropertyReplicationStateInternals (uint8 *RESTRICT DstStateBuffer, uint8 *RESTRICT SrcStateBuffer, const FReplicationStateDescriptor *Descriptor, bool bOverwriteChangeMask=true)
 
void ConstructPropertyReplicationState (uint8 *StateBuffer, const FReplicationStateDescriptor *Descriptor)
 
void DestructPropertyReplicationState (uint8 *StateBuffer, const FReplicationStateDescriptor *Descriptor)
 
void CopyPropertyReplicationState (uint8 *RESTRICT DstStateBuffer, uint8 *RESTRICT SrcStateBuffer, const FReplicationStateDescriptor *Descriptor)
 
void CopyDirtyMembers (uint8 *RESTRICT DstStateBuffer, uint8 *RESTRICT SrcStateBuffer, const FReplicationStateDescriptor *Descriptor)
 
bool InternalCompareMember (const FReplicationStateDescriptor *Descriptor, uint32 MemberIndex, const void *RESTRICT ValueA, const void *RESTRICT ValueB)
 
bool InternalCompareStructProperty (const FReplicationStateDescriptor *StructDescriptor, const void *RESTRICT ValueA, const void *RESTRICT ValueB)
 
void InternalApplyStructProperty (const FReplicationStateDescriptor *StructDescriptor, void *RESTRICT Dst, const void *RESTRICT Src)
 
void InternalApplyPropertyValue (const FReplicationStateDescriptor *Descriptor, uint32 MemberIndex, void *RESTRICT Dst, const void *RESTRICT Src)
 
void InternalCopyStructProperty (const FReplicationStateDescriptor *StructDescriptor, void *RESTRICT Dst, const void *RESTRICT Src)
 
void InternalCopyPropertyValue (const FReplicationStateDescriptor *Descriptor, uint32 MemberIndex, void *RESTRICT Dst, const void *RESTRICT Src)
 
bool InternalCompareAndCopyArrayWithElementChangeMask (const FReplicationStateDescriptor *Descriptor, uint32 MemberIndex, const void *RESTRICT DstArray, const void *RESTRICT SrcArray, UE::Net::FNetBitArrayView &ChangeMask)
 
 ENUM_CLASS_FLAGS (EMemberPropertyTraits)
 
bool IsDeltaCompressionEnabled ()
 
void MarkNetObjectStateDirty (uint32 ReplicationSystemId, FInternalNetRefIndex NetObjectIndex)
 
void ForceNetUpdate (uint32 ReplicationSystemId, FInternalNetRefIndex NetObjectIndex)
 
 ENUM_CLASS_FLAGS (ENetObjectGroupTraits)
 
FName GetStaticFilterName (FNetObjectFilterHandle Filter)
 
constexpr bool IsIrisPushModelEnabled (bool=false)
 
 ENUM_CLASS_FLAGS (EAddSubObjectFlags)
 
 ENUM_CLASS_FLAGS (ERemoveDependentObjectFlags)
 
void CallRegisterReplicationFragments (UObject *Object, FFragmentRegistrationContext &Context, EFragmentRegistrationFlags RegistrationFlags)
 
 ENUM_CLASS_FLAGS (EReplicationDataStreamDebugFeatures)
 
void WriteReplicationDataStreamDebugFeatures (FNetBitStreamWriter *Writer, EReplicationDataStreamDebugFeatures Features)
 
EReplicationDataStreamDebugFeatures ReadReplicationDataStreamDebugFeatures (FNetBitStreamReader *Reader)
 
 ENUM_CLASS_FLAGS (ENetObjectAttachmentDispatchFlags)
 
template<>
void FReplicationWriter::HandleDroppedRecord< FReplicationWriter::EReplicatedObjectState::WaitOnCreateConfirmation > (FReplicationWriter::EReplicatedObjectState CurrentState, const FReplicationRecord::FRecordInfo &RecordInfo, FReplicationInfo &Info, const FNetObjectAttachmentsWriter::FReliableReplicationRecord &AttachmentRecord)
 
template<>
void FReplicationWriter::HandleDroppedRecord< FReplicationWriter::EReplicatedObjectState::Created > (FReplicationWriter::EReplicatedObjectState CurrentState, const FReplicationRecord::FRecordInfo &RecordInfo, FReplicationInfo &Info, const FNetObjectAttachmentsWriter::FReliableReplicationRecord &AttachmentRecord)
 
template<>
void FReplicationWriter::HandleDroppedRecord< FReplicationWriter::EReplicatedObjectState::WaitOnDestroyConfirmation > (FReplicationWriter::EReplicatedObjectState CurrentState, const FReplicationRecord::FRecordInfo &RecordInfo, FReplicationInfo &Info, const FNetObjectAttachmentsWriter::FReliableReplicationRecord &AttachmentRecord)
 
uint32 FloatAsUint32 (float Value)
 
float Uint32AsFloat (uint32 Value)
 
bool InitEnumNetSerializerConfig (FEnumInt8NetSerializerConfig &OutConfig, const UEnum *Enum)
 
bool InitEnumNetSerializerConfig (FEnumInt16NetSerializerConfig &OutConfig, const UEnum *Enum)
 
bool InitEnumNetSerializerConfig (FEnumInt32NetSerializerConfig &OutConfig, const UEnum *Enum)
 
bool InitEnumNetSerializerConfig (FEnumInt64NetSerializerConfig &OutConfig, const UEnum *Enum)
 
bool InitEnumNetSerializerConfig (FEnumUint8NetSerializerConfig &OutConfig, const UEnum *Enum)
 
bool InitEnumNetSerializerConfig (FEnumUint16NetSerializerConfig &OutConfig, const UEnum *Enum)
 
bool InitEnumNetSerializerConfig (FEnumUint32NetSerializerConfig &OutConfig, const UEnum *Enum)
 
bool InitEnumNetSerializerConfig (FEnumUint64NetSerializerConfig &OutConfig, const UEnum *Enum)
 
template<typename GetDataFunc , typename WriteSparseUint32Func >
void WriteSparseBitArray (FNetBitStreamWriter *Writer, const uint32 *Data, uint32 BitCount, GetDataFunc &&GetDataFunction, WriteSparseUint32Func &&WriteSparseUint32Function)
 
template<typename GetDataFunc , typename ReadSparseUint32Func >
void ReadSparseBitArray (FNetBitStreamReader *Reader, uint32 *OutData, uint32 BitCount, GetDataFunc &&GetDataFunction, ReadSparseUint32Func &&ReadSparseUint32Function)
 
template<typename WriteSparseUint32Func >
void WriteSparseBitArrayDelta (FNetBitStreamWriter *Writer, const uint32 *Data, const uint32 *OldData, uint32 BitCount, WriteSparseUint32Func &&WriteSparseUint32Function)
 
template<typename ReadSparseUint32Func >
void ReadSparseBitArrayDelta (FNetBitStreamReader *Reader, uint32 *OutData, const uint32 *OldData, uint32 BitCount, ReadSparseUint32Func &&ReadSparseUint32Function)
 
 CSV_DEFINE_CATEGORY (IrisPreUpdateMS, WITH_SERVER_CODE)
 
 CSV_DEFINE_CATEGORY (IrisPreUpdateCount, WITH_SERVER_CODE)
 
 CSV_DEFINE_CATEGORY (IrisPollMS, WITH_SERVER_CODE)
 
 CSV_DEFINE_CATEGORY (IrisPollCount, WITH_SERVER_CODE)
 
 CSV_DEFINE_CATEGORY (IrisPollWasteMS, WITH_SERVER_CODE)
 
 CSV_DEFINE_CATEGORY (IrisPollWasteCount, WITH_SERVER_CODE)
 
 CSV_DEFINE_CATEGORY (IrisQuantizeMS, WITH_SERVER_CODE)
 
 CSV_DEFINE_CATEGORY (IrisQuantizeCount, WITH_SERVER_CODE)
 
 CSV_DEFINE_CATEGORY (IrisWriteMS, WITH_SERVER_CODE)
 
 CSV_DEFINE_CATEGORY (IrisWriteCount, WITH_SERVER_CODE)
 
 CSV_DEFINE_CATEGORY (IrisWriteKBytes, WITH_SERVER_CODE)
 
 CSV_DEFINE_CATEGORY (IrisWriteWasteMS, WITH_SERVER_CODE)
 
 CSV_DEFINE_CATEGORY (IrisWriteWasteCount, WITH_SERVER_CODE)
 
 CSV_DEFINE_CATEGORY (IrisWriteWasteKBytes, WITH_SERVER_CODE)
 
 CSV_DEFINE_CATEGORY (IrisWriteCreationInfoCount, WITH_SERVER_CODE)
 
 CSV_DEFINE_CATEGORY (IrisWriteCreationInfoKBytes, WITH_SERVER_CODE)
 
 CSV_DEFINE_CATEGORY (IrisWriteExportsCount, WITH_SERVER_CODE)
 
constexpr uint32 GetInternalMemberOffset (const FReplicationStateMemberDescriptor *MemberDescriptors, const FInternalTypeInfo *InternalTypeInfo, uint32 MemberIndex)
 
template<typename T >
constexpr uint32 GetInternalStateSize (const T &MemberDescriptors, const FInternalTypeInfo *InternalTypeInfo)
 
template<typename T >
constexpr uint16 GetInternalStateAlignment (const T &MemberDescriptors, const FInternalTypeInfo *InternalTypeInfo)
 
template<typename T >
constexpr uint32 GetMemberChangeMaskSize (const T &MemberChangeMaskDescriptors)
 
UE::Net::FReplicationStateHeaderGetReplicationStateHeader (void *StateBuffer, const FReplicationStateDescriptor *Descriptor)
 
bool IsReplicationStateBound (void *StateBuffer, const FReplicationStateDescriptor *Descriptor)
 
FNetBitArrayView GetMemberChangeMask (uint8 *StateBuffer, const FReplicationStateDescriptor *Descriptor)
 
FNetBitArrayView GetMemberConditionalChangeMask (uint8 *StateBuffer, const FReplicationStateDescriptor *Descriptor)
 
FNetBitArrayView GetMemberPollMask (uint8 *StateBuffer, const FReplicationStateDescriptor *Descriptor)
 
void ResetMemberPollMask (uint8 *StateBuffer, const FReplicationStateDescriptor *Descriptor)
 
void MarkDirty (UE::Net::FReplicationStateHeader &InternalState, FNetBitArrayView &MemberChangeMask, const FReplicationStateMemberChangeMaskDescriptor &ChangeMaskInfo)
 

Variables

bool bTrackDormantObjectsByLevel = false
 
int32 SendDormantDestructionOnRemoval = 1
 
bool bUpdateReplicationSystemWithNoConnections = true
 
FAutoConsoleCommandWithWorld DumpActiveNetActorsCommand (TEXT("net.DumpActiveNetActors"), TEXT("Dumps all of the active net actors in the replication system."), FConsoleCommandWithWorldDelegate::CreateStatic(DumpActiveNetActors))
 
FAutoConsoleCommand PrintNetConnectionInfoCommand (TEXT("net.PrintNetConnections"), TEXT("Prints information on all net connections of a NetDriver. Defaults to the GameNetDriver. Choose a different driver via NetDriverName= or NetDriverDefinition="), FConsoleCommandWithArgsDelegate::CreateLambda([](const TArray< FString > &Args) { FName NetDriverName;FName NetDriverDef=NAME_GameNetDriver;if(const FString *DriverNameStr=Args.FindByPredicate([](const FString &Str) { return Str.Contains(TEXT("NetDriverName="));})) { FParse::Value(**DriverNameStr, TEXT("NetDriverName="), NetDriverName);} else if(const FString *DriverDefStr=Args.FindByPredicate([](const FString &Str) { return Str.Contains(TEXT("NetDriverDef="));})) { FParse::Value(**DriverDefStr, TEXT("NetDriverDef="), NetDriverDef);} auto PrintNetConnections=[](UNetDriver *NetDriver) { if(NetDriver->ServerConnection) { UE_LOG(LogNet, Display, TEXT("Printing Server Connection for: %s (Definition=%s)"), *NetDriver->NetDriverName.ToString(), *NetDriver->GetNetDriverDefinition().ToString());UE_LOG(LogNet, Display, TEXT("\tServerConnection: ConnectionId=%u ViewTarget=%s FullDescription=%s Child=false"), NetDriver->ServerConnection->GetConnectionHandle().GetParentConnectionId(), *GetNameSafe(NetDriver->ServerConnection->ViewTarget), *NetDriver->ServerConnection->Describe());for(UNetConnection *ChildNetConnection :NetDriver->ServerConnection->Children) { UE_LOG(LogNet, Display, TEXT("\tServerConnection: ConnectionId=%u ViewTarget=%s FullDescription=%s Child=true"), ChildNetConnection->GetConnectionHandle().GetParentConnectionId(), *GetNameSafe(ChildNetConnection->ViewTarget), *ChildNetConnection->Describe());} } else { UE_LOG(LogNet, Display, TEXT("Printing Client Connections (%u) for: %s (Definition=%s)"), NetDriver->ClientConnections.Num(), *NetDriver->NetDriverName.ToString(), *NetDriver->GetNetDriverDefinition().ToString());for(UNetConnection *NetConnection :NetDriver->ClientConnections) { UE_LOG(LogNet, Display, TEXT("\tClientConnection: ConnectionId=%u ViewTarget=%s NetId=%s FullDescription=%s Child=false"), NetConnection->GetConnectionHandle().GetParentConnectionId(), *GetNameSafe(NetConnection->ViewTarget), *NetConnection->PlayerId.ToDebugString(), *NetConnection->Describe());for(UNetConnection *ChildNetConnection :NetConnection->Children) { UE_LOG(LogNet, Display, TEXT("\tClientConnection: ConnectionId=%u ViewTarget=%s NetId=%s FullDescription=%s Child=true"), ChildNetConnection->GetConnectionHandle().GetParentConnectionId(), *GetNameSafe(ChildNetConnection->ViewTarget), *ChildNetConnection->PlayerId.ToDebugString(), *ChildNetConnection->Describe());} } } };for(TObjectIterator< UNetDriver > It;It;++It) { if(UNetDriver *NetDriver= *It) { if(NetDriverName !=NAME_None) { if(NetDriver->NetDriverName==NetDriverName) { PrintNetConnections(NetDriver);} } else if(NetDriverDef !=NAME_None) { if(NetDriver->GetNetDriverDefinition()==NetDriverDef) { PrintNetConnections(NetDriver);} } else { PrintNetConnections(NetDriver);} } } }))
 
bool bRemapStableSubobjects = true
 
UE::Net::Private::FNopNetSerializerInfo NopNetSerializerInfo
 
constexpr DeltaCompressionBaselineStateInfoIndexType InvalidDeltaCompressionBaselineStateInfoIndex = 0
 
bool bCVarRepFilterCullNonRelevant = true
 
bool bCVarRepFilterValidateNoSubObjectInScopeWithFilteredOutRootObject = false
 
bool bIsFactoryRegistrationAllowed = true
 
FAutoConsoleVariableRef CVarIrisAllowAsyncLoading (TEXT("net.iris.AllowAsyncLoading"), bIrisAllowAsyncLoading, TEXT("Flag to allow or disallow async loading when using iris replication. Note: net.allowAsyncLoading must also be enabled."), ECVF_Default)
 
FAutoConsoleVariableRef CVarIrisAsyncLoadingFailPackageName (TEXT("net.Iris.AsyncLoading.FailPackageName"), IrisAsyncLoadingFailPackageName, TEXT("Always fail loading the specified package name. For debugging purposes."), ECVF_Default)
 
FAutoConsoleVariableRef CVarIrisAsyncLoadingFailNextLoad (TEXT("net.Iris.AsyncLoading.FailNextLoad"), bIrisAsyncLoadingFailNextLoad, TEXT("Simulate failing the next async loading request. For debugging purposes."), ECVF_Default)
 
FAutoConsoleVariableRef CVarIrisAsyncLoadingFailAllLoads (TEXT("net.Iris.AsyncLoading.FailAllLoads"), bIrisAsyncLoadingFailAllLoads, TEXT("Simulate failing all async loading requests. For debugging purposes."), ECVF_Default)
 
FAutoConsoleVariableRef CVarIrisEnableRemoveReferenceFallbackPath (TEXT("net.iris.ObjectReferenceCache.EnableRemoveReferenceFallbackPath"), bIrisEnableRemoveReferenceFallbackPath, TEXT("Whether to enable the slow fallback path or not when ObjectReferenceCache::RemoveReference is passed a null pointer object."), ECVF_Default)
 
bool bReplicationDataStreamDebugBatchSizePerObjectEnabled
 
bool bReplicationDataStreamDebugSentinelsEnabled
 
constexpr uint32 SerializeSparseArrayMaxBitCount = 1024U
 
constexpr uint32 SerializeSparseArrayMaxWordCount = SerializeSparseArrayMaxBitCount / 32U
 
const uint32 SparseUint32UsingIndices_MaxEncodedIndexBits = 3U
 
const uint32 SparseUint32UsingIndices_EncodedIndexBitsHeaderSize = GetBitsNeeded(SparseUint32UsingIndices_MaxEncodedIndexBits)
 

Detailed Description

===================== NetSerialize and NetDeltaSerialize customization. =====================

The main purpose of this file it to hold custom methods for NetSerialization and NetDeltaSerialization. A longer explanation on how this all works is covered below. For quick reference however, this is how to customize net serialization for structs.

To define your own NetSerialize and NetDeltaSerialize on a structure: (of course you don't need to define both! Usually you only want to define one, but for brevity Im showing both at once) Everything related to Fast TArray Replication has been moved to "Net/Serialization/FastArraySerializer.h" ===================== Vector NetSerialization customization. ===================== Provides custom NetSerilization for FVectors.

There are two types of net quantization available:

Fixed Quantization (SerializeFixedVector) -Fixed number of bits -Max Value specified as template parameter

Serialized value is scaled based on num bits and max value. Precision is determined by MaxValue and NumBits (if 2^NumBits is > MaxValue, you will have room for extra precision).

This format is good for things like normals, where the magnitudes are often similar. For example normal values may often be in the 0.1f - 1.f range. In a packed format, the overhead in serializing num of bits per component would outweigh savings from serializing very small ( < 0.1f ) values.

It is also good for performance critical sections since you can guarantee byte alignment if that is important.

Packed Quantization (SerializePackedVector) -Scaling factor (usually 10, 100, etc) -Max number of bits per component (this is maximum, not a constant)

The format is <num of bits per component> <N bits for X> <N bits for Y> <N bits for Z>

The advantages to this format are that packed nature. You may support large magnitudes and have as much precision as you want. All while having small magnitudes take less space.

The trade off is that there is overhead in serializing how many bits are used for each component, and byte alignment is almost always thrown off.

Typedef Documentation

◆ ChangeMaskStorageType

◆ DeltaCompressionBaselineStateInfoIndexType

◆ FInternalNetRefIndex

◆ FLifeTimeConditionStorage

◆ FPendingBatchDataPtr

◆ FReplicationInstanceProtocolPtr

Enumeration Type Documentation

◆ EAddSubObjectFlags

Enumerator
None 
WarnIfAlreadySubObject 
SkipIfAlreadySubObject 
DestroyWithOwner 
ReplicateWithSubObject 
InsertAtStart 
Default 

◆ EAttachmentWriteStatus

Enumerator
Success 

At least one attachment could be sent.

NoAttachments 

There were no attachments to write.

ReliableWindowFull 

Due to the reliable window size being full no reliable attachments could be sent.

BitstreamOverflow 

Writing caused bitstream overflow.

◆ EMemberPropertyTraits

Enumerator
None 
InitOnly 
HasLifetimeConditionals 
RepNotifyOnChanged 
RepNotifyAlways 
NeedPreviousState 
HasDynamicState 
HasObjectReference 
HasCustomObjectReference 
IsSourceTriviallyConstructible 
IsSourceTriviallyDestructible 
IsTArray 
IsFastArray 
IsNativeFastArray 
IsFastArrayWithExtraProperties 
IsFastArrayItem 
IsInvalidFastArray 
HasConnectionSpecificSerialization 
HasPushBasedDirtiness 
UseSerializerIsEqual 

◆ ENetObjectAttachmentDispatchFlags

Enumerator
None 
Reliable 
Unreliable 

◆ ENetObjectAttachmentType

Enumerator
Normal 
OutOfBand 
HugeObject 
InternalCount 

◆ ENetObjectGroupTraits

Enumerator
None 
IsExclusionFiltering 
IsInclusionFiltering 

◆ ERemoteFunctionMode

Enumerator
None 
Receiving 
Sending 

◆ ERemoveDependentObjectFlags

Enumerator
None 
RemoveFromDependentParentObjects 
RemoveFromParentDependentObjects 
All 

◆ EReplicatedDestroyHeaderFlags

Enumerator
ReplicatedDestroyHeaderFlags_None 
ReplicatedDestroyHeaderFlags_TearOff 
ReplicatedDestroyHeaderFlags_EndReplication 
ReplicatedDestroyHeaderFlags_DestroyInstance 
ReplicatedDestroyHeaderFlags_BitCount 

◆ EReplicationDataStreamDebugFeatures

Enumerator
None 
BatchSizePerObject 
Sentinels 

◆ EStructNetSerializerType

Enumerator
Struct 
Custom 
DerivedFromCustom 

Function Documentation

◆ ActorReplicationBridgePreUpdateFunction()

void UE::Net::Private::ActorReplicationBridgePreUpdateFunction ( TArrayView< UObject * >  Instances,
const UObjectReplicationBridge Bridge 
)

◆ ApplyReplicationSystemConfig()

void UE::Net::Private::ApplyReplicationSystemConfig ( const FNetDriverReplicationSystemConfig ReplicationSystemConfig,
UReplicationSystem::FReplicationSystemParams OutParams 
)

◆ CallRegisterReplicationFragments()

void UE::Net::Private::CallRegisterReplicationFragments ( UObject Object,
FFragmentRegistrationContext Context,
EFragmentRegistrationFlags  RegistrationFlags 
)

◆ ConstructPropertyReplicationState()

IRISCORE_API void UE::Net::Private::ConstructPropertyReplicationState ( uint8 StateBuffer,
const FReplicationStateDescriptor Descriptor 
)

Construct the external state described by the descriptor in the given Buffer

◆ CopyDirtyMembers()

IRISCORE_API void UE::Net::Private::CopyDirtyMembers ( uint8 *RESTRICT  DstStateBuffer,
uint8 *RESTRICT  SrcStateBuffer,
const FReplicationStateDescriptor Descriptor 
)

Copy only properties from external state in SrcStateBuffer to external state DstStateBufferif dirty, destination changemask will also be updated

◆ CopyOutParametersToLocalParameters()

TArray< UE::Net::Private::FAutoDestructProperty > UE::Net::Private::CopyOutParametersToLocalParameters ( UFunction Function,
FOutParmRec OutParms,
void LocalParms,
UObject TargetObj 
)

◆ CopyPropertyReplicationState()

IRISCORE_API void UE::Net::Private::CopyPropertyReplicationState ( uint8 *RESTRICT  DstStateBuffer,
uint8 *RESTRICT  SrcStateBuffer,
const FReplicationStateDescriptor Descriptor 
)

Copy external state in SrcStateBuffer to external state DstStateBuffer including changemask

◆ CopyPropertyReplicationStateInternals()

void UE::Net::Private::CopyPropertyReplicationStateInternals ( uint8 *RESTRICT  DstStateBuffer,
uint8 *RESTRICT  SrcStateBuffer,
const FReplicationStateDescriptor Descriptor,
bool  bOverwriteChangeMask = true 
)

◆ CSV_DEFINE_CATEGORY() [1/17]

UE::Net::Private::CSV_DEFINE_CATEGORY ( IrisPollCount  ,
WITH_SERVER_CODE   
)

◆ CSV_DEFINE_CATEGORY() [2/17]

UE::Net::Private::CSV_DEFINE_CATEGORY ( IrisPollMS  ,
WITH_SERVER_CODE   
)

◆ CSV_DEFINE_CATEGORY() [3/17]

UE::Net::Private::CSV_DEFINE_CATEGORY ( IrisPollWasteCount  ,
WITH_SERVER_CODE   
)

◆ CSV_DEFINE_CATEGORY() [4/17]

UE::Net::Private::CSV_DEFINE_CATEGORY ( IrisPollWasteMS  ,
WITH_SERVER_CODE   
)

◆ CSV_DEFINE_CATEGORY() [5/17]

UE::Net::Private::CSV_DEFINE_CATEGORY ( IrisPreUpdateCount  ,
WITH_SERVER_CODE   
)

◆ CSV_DEFINE_CATEGORY() [6/17]

UE::Net::Private::CSV_DEFINE_CATEGORY ( IrisPreUpdateMS  ,
WITH_SERVER_CODE   
)

◆ CSV_DEFINE_CATEGORY() [7/17]

UE::Net::Private::CSV_DEFINE_CATEGORY ( IrisQuantizeCount  ,
WITH_SERVER_CODE   
)

◆ CSV_DEFINE_CATEGORY() [8/17]

UE::Net::Private::CSV_DEFINE_CATEGORY ( IrisQuantizeMS  ,
WITH_SERVER_CODE   
)

◆ CSV_DEFINE_CATEGORY() [9/17]

UE::Net::Private::CSV_DEFINE_CATEGORY ( IrisWriteCount  ,
WITH_SERVER_CODE   
)

◆ CSV_DEFINE_CATEGORY() [10/17]

UE::Net::Private::CSV_DEFINE_CATEGORY ( IrisWriteCreationInfoCount  ,
WITH_SERVER_CODE   
)

◆ CSV_DEFINE_CATEGORY() [11/17]

UE::Net::Private::CSV_DEFINE_CATEGORY ( IrisWriteCreationInfoKBytes  ,
WITH_SERVER_CODE   
)

◆ CSV_DEFINE_CATEGORY() [12/17]

UE::Net::Private::CSV_DEFINE_CATEGORY ( IrisWriteExportsCount  ,
WITH_SERVER_CODE   
)

◆ CSV_DEFINE_CATEGORY() [13/17]

UE::Net::Private::CSV_DEFINE_CATEGORY ( IrisWriteKBytes  ,
WITH_SERVER_CODE   
)

◆ CSV_DEFINE_CATEGORY() [14/17]

UE::Net::Private::CSV_DEFINE_CATEGORY ( IrisWriteMS  ,
WITH_SERVER_CODE   
)

◆ CSV_DEFINE_CATEGORY() [15/17]

UE::Net::Private::CSV_DEFINE_CATEGORY ( IrisWriteWasteCount  ,
WITH_SERVER_CODE   
)

◆ CSV_DEFINE_CATEGORY() [16/17]

UE::Net::Private::CSV_DEFINE_CATEGORY ( IrisWriteWasteKBytes  ,
WITH_SERVER_CODE   
)

◆ CSV_DEFINE_CATEGORY() [17/17]

UE::Net::Private::CSV_DEFINE_CATEGORY ( IrisWriteWasteMS  ,
WITH_SERVER_CODE   
)

◆ DestructPropertyReplicationState()

IRISCORE_API void UE::Net::Private::DestructPropertyReplicationState ( uint8 StateBuffer,
const FReplicationStateDescriptor Descriptor 
)

Destruct the external state described by the descriptor in the given Buffer

◆ DoesTypeMatch()

bool UE::Net::Private::DoesTypeMatch ( FReplicationSystemUtil::EType  Type,
UReplicationSystem System 
)

◆ ENUM_CLASS_FLAGS() [1/6]

UE::Net::Private::ENUM_CLASS_FLAGS ( EAddSubObjectFlags  )

◆ ENUM_CLASS_FLAGS() [2/6]

UE::Net::Private::ENUM_CLASS_FLAGS ( EMemberPropertyTraits  )

◆ ENUM_CLASS_FLAGS() [3/6]

UE::Net::Private::ENUM_CLASS_FLAGS ( ENetObjectAttachmentDispatchFlags  )

◆ ENUM_CLASS_FLAGS() [4/6]

UE::Net::Private::ENUM_CLASS_FLAGS ( ENetObjectGroupTraits  )

◆ ENUM_CLASS_FLAGS() [5/6]

UE::Net::Private::ENUM_CLASS_FLAGS ( ERemoveDependentObjectFlags  )

◆ ENUM_CLASS_FLAGS() [6/6]

UE::Net::Private::ENUM_CLASS_FLAGS ( EReplicationDataStreamDebugFeatures  )

◆ FloatAsUint32()

uint32 UE::Net::Private::FloatAsUint32 ( float  Value)
inline

◆ ForceNetUpdate()

IRISCORE_API void UE::Net::Private::ForceNetUpdate ( uint32  ReplicationSystemId,
FInternalNetRefIndex  NetObjectIndex 
)

◆ FReplicationWriter::HandleDroppedRecord< FReplicationWriter::EReplicatedObjectState::Created >()

template<>
void UE::Net::Private::FReplicationWriter::HandleDroppedRecord< FReplicationWriter::EReplicatedObjectState::Created > ( FReplicationWriter::EReplicatedObjectState  CurrentState,
const FReplicationRecord::FRecordInfo RecordInfo,
FReplicationInfo &  Info,
const FNetObjectAttachmentsWriter::FReliableReplicationRecord AttachmentRecord 
)

◆ FReplicationWriter::HandleDroppedRecord< FReplicationWriter::EReplicatedObjectState::WaitOnCreateConfirmation >()

template<>
void UE::Net::Private::FReplicationWriter::HandleDroppedRecord< FReplicationWriter::EReplicatedObjectState::WaitOnCreateConfirmation > ( FReplicationWriter::EReplicatedObjectState  CurrentState,
const FReplicationRecord::FRecordInfo RecordInfo,
FReplicationInfo &  Info,
const FNetObjectAttachmentsWriter::FReliableReplicationRecord AttachmentRecord 
)

◆ FReplicationWriter::HandleDroppedRecord< FReplicationWriter::EReplicatedObjectState::WaitOnDestroyConfirmation >()

template<>
void UE::Net::Private::FReplicationWriter::HandleDroppedRecord< FReplicationWriter::EReplicatedObjectState::WaitOnDestroyConfirmation > ( FReplicationWriter::EReplicatedObjectState  CurrentState,
const FReplicationRecord::FRecordInfo RecordInfo,
FReplicationInfo &  Info,
const FNetObjectAttachmentsWriter::FReliableReplicationRecord AttachmentRecord 
)

◆ GetBitsNeeded() [1/2]

uint32 UE::Net::Private::GetBitsNeeded ( const int32  Value)
inline

◆ GetBitsNeeded() [2/2]

uint32 UE::Net::Private::GetBitsNeeded ( const int64  Value)
inline

◆ GetCompatibleNetworkCustomVersions()

FCustomVersionContainer & UE::Net::Private::GetCompatibleNetworkCustomVersions ( )

◆ GetEngineNetworkVersionGuid()

FGuid UE::Net::Private::GetEngineNetworkVersionGuid ( )

◆ GetGameNetworkVersionGuid()

FGuid UE::Net::Private::GetGameNetworkVersionGuid ( )

◆ GetInternalMemberOffset()

constexpr uint32 UE::Net::Private::GetInternalMemberOffset ( const FReplicationStateMemberDescriptor MemberDescriptors,
const FInternalTypeInfo InternalTypeInfo,
uint32  MemberIndex 
)
constexpr

◆ GetInternalStateAlignment()

template<typename T >
constexpr uint16 UE::Net::Private::GetInternalStateAlignment ( const T &  MemberDescriptors,
const FInternalTypeInfo InternalTypeInfo 
)
constexpr

◆ GetInternalStateSize()

template<typename T >
constexpr uint32 UE::Net::Private::GetInternalStateSize ( const T &  MemberDescriptors,
const FInternalTypeInfo InternalTypeInfo 
)
constexpr

◆ GetMemberChangeMask()

FNetBitArrayView UE::Net::Private::GetMemberChangeMask ( uint8 StateBuffer,
const FReplicationStateDescriptor Descriptor 
)
inline

Get MemberChangeMask

◆ GetMemberChangeMaskSize()

template<typename T >
constexpr uint32 UE::Net::Private::GetMemberChangeMaskSize ( const T &  MemberChangeMaskDescriptors)
constexpr

◆ GetMemberConditionalChangeMask()

FNetBitArrayView UE::Net::Private::GetMemberConditionalChangeMask ( uint8 StateBuffer,
const FReplicationStateDescriptor Descriptor 
)
inline

Get MemberConditionalChangeMask. Valid if state has lifetime conditionals.

◆ GetMemberPollMask()

FNetBitArrayView UE::Net::Private::GetMemberPollMask ( uint8 StateBuffer,
const FReplicationStateDescriptor Descriptor 
)
inline

Get MemberPollMask. Valid if state has members

◆ GetNetworkCustomVersions()

FCustomVersionContainer & UE::Net::Private::GetNetworkCustomVersions ( )

◆ GetReplicationStateHeader()

UE::Net::FReplicationStateHeader & UE::Net::Private::GetReplicationStateHeader ( void StateBuffer,
const FReplicationStateDescriptor Descriptor 
)
inline

Get FReplicationStateHeader from a ReplicationState

◆ GetSpawnInfoFlags()

EActorNetSpawnInfoFlags UE::Net::Private::GetSpawnInfoFlags ( )

◆ GetStaticFilterName()

FName UE::Net::Private::GetStaticFilterName ( FNetObjectFilterHandle  Filter)

◆ InitEnumNetSerializerConfig() [1/8]

IRISCORE_API bool UE::Net::Private::InitEnumNetSerializerConfig ( FEnumInt16NetSerializerConfig OutConfig,
const UEnum Enum 
)

◆ InitEnumNetSerializerConfig() [2/8]

IRISCORE_API bool UE::Net::Private::InitEnumNetSerializerConfig ( FEnumInt32NetSerializerConfig OutConfig,
const UEnum Enum 
)

◆ InitEnumNetSerializerConfig() [3/8]

IRISCORE_API bool UE::Net::Private::InitEnumNetSerializerConfig ( FEnumInt64NetSerializerConfig OutConfig,
const UEnum Enum 
)

◆ InitEnumNetSerializerConfig() [4/8]

IRISCORE_API bool UE::Net::Private::InitEnumNetSerializerConfig ( FEnumInt8NetSerializerConfig OutConfig,
const UEnum Enum 
)

◆ InitEnumNetSerializerConfig() [5/8]

IRISCORE_API bool UE::Net::Private::InitEnumNetSerializerConfig ( FEnumUint16NetSerializerConfig OutConfig,
const UEnum Enum 
)

◆ InitEnumNetSerializerConfig() [6/8]

IRISCORE_API bool UE::Net::Private::InitEnumNetSerializerConfig ( FEnumUint32NetSerializerConfig OutConfig,
const UEnum Enum 
)

◆ InitEnumNetSerializerConfig() [7/8]

IRISCORE_API bool UE::Net::Private::InitEnumNetSerializerConfig ( FEnumUint64NetSerializerConfig OutConfig,
const UEnum Enum 
)

◆ InitEnumNetSerializerConfig() [8/8]

IRISCORE_API bool UE::Net::Private::InitEnumNetSerializerConfig ( FEnumUint8NetSerializerConfig OutConfig,
const UEnum Enum 
)

◆ InitReplicationStateInternals()

void UE::Net::Private::InitReplicationStateInternals ( uint8 StateBuffer,
const FReplicationStateDescriptor Descriptor 
)

◆ InternalApplyPropertyValue()

IRISCORE_API void UE::Net::Private::InternalApplyPropertyValue ( const FReplicationStateDescriptor Descriptor,
uint32  MemberIndex,
void *RESTRICT  Dst,
const void *RESTRICT  Src 
)

Copy property value to target. If the property is fully replicated we use the properties copy function, otherwise we do a per member copy of all replicated data. Members with NetSerializers with an Apply() function will call that.

◆ InternalApplyStructProperty()

IRISCORE_API void UE::Net::Private::InternalApplyStructProperty ( const FReplicationStateDescriptor StructDescriptor,
void *RESTRICT  Dst,
const void *RESTRICT  Src 
)

Copy struct members to target using InternalApplyPropertyValue

◆ InternalCompareAndCopyArrayWithElementChangeMask()

IRISCORE_API bool UE::Net::Private::InternalCompareAndCopyArrayWithElementChangeMask ( const FReplicationStateDescriptor Descriptor,
uint32  MemberIndex,
const void *RESTRICT  DstArray,
const void *RESTRICT  SrcArray,
UE::Net::FNetBitArrayView ChangeMask 
)

Compare array elements and mark dirty indices in the changemask. The resulting DstArray will be identical to the SrcArray after calling this function.

Parameters
ChangeMaskneeds to be big enough for the entire descriptor. The member's change mask descriptor will be modified for dirty array indices. The bit which indicates the array is dirty is left unmodified.
Returns
false if the DstArray was modified in anyway, including size changes, and true if the arrays were already identical.

◆ InternalCompareMember()

IRISCORE_API bool UE::Net::Private::InternalCompareMember ( const FReplicationStateDescriptor Descriptor,
uint32  MemberIndex,
const void *RESTRICT  ValueA,
const void *RESTRICT  ValueB 
)

Structs and Arrays need to be handled carefully. Our intermediate representation need to match the actual native representation perfectly. We are careful not to copy anything that isn't replicated and not consider a struct dirty in case a non-replicated member was modified. Rep notifies that require the previous value as parameter will only get the replicated values updated- non-replicated members will be the same as the default state.

CompareMembers, if data is not fully replicated we will use per member compare for structs and arrays

◆ InternalCompareStructProperty()

IRISCORE_API bool UE::Net::Private::InternalCompareStructProperty ( const FReplicationStateDescriptor StructDescriptor,
const void *RESTRICT  ValueA,
const void *RESTRICT  ValueB 
)

Compare struct members using InternalCompareMember, this function will only compare replicated members of the struct

◆ InternalCopyPropertyValue()

IRISCORE_API void UE::Net::Private::InternalCopyPropertyValue ( const FReplicationStateDescriptor Descriptor,
uint32  MemberIndex,
void *RESTRICT  Dst,
const void *RESTRICT  Src 
)

Copy property value, if the property is fully replicated we use the properties copy function, otherwise we do a per member copy of all replicated data

◆ InternalCopyStructProperty()

IRISCORE_API void UE::Net::Private::InternalCopyStructProperty ( const FReplicationStateDescriptor StructDescriptor,
void *RESTRICT  Dst,
const void *RESTRICT  Src 
)

Copy struct members using InternalCopyPropertyValue

◆ IsActorValidForIrisReplication()

bool UE::Net::Private::IsActorValidForIrisReplication ( const AActor Actor)

◆ IsDeltaCompressionEnabled()

bool UE::Net::Private::IsDeltaCompressionEnabled ( )

Is the delta compression feature enabled? Togglable via net.Iris.EnableDeltaCompression.

◆ IsGuidInOuterChain()

bool UE::Net::Private::IsGuidInOuterChain ( const FNetGUIDCache GuidCache,
const FNetGuidCacheObject CacheObj,
FNetworkGUID  GuidMatch 
)

◆ IsIrisPushModelEnabled()

constexpr bool UE::Net::Private::IsIrisPushModelEnabled ( bool  = false)
inlineconstexpr

◆ IsReplicationStateBound()

bool UE::Net::Private::IsReplicationStateBound ( void StateBuffer,
const FReplicationStateDescriptor Descriptor 
)
inline

◆ LegacyReadPackedVector()

template<int32 ScaleFactor, int32 MaxBitsPerComponent>
bool UE::Net::Private::LegacyReadPackedVector ( FVector3f Value,
FArchive Ar 
)

◆ MarkDirty()

void UE::Net::Private::MarkDirty ( UE::Net::FReplicationStateHeader InternalState,
FNetBitArrayView MemberChangeMask,
const FReplicationStateMemberChangeMaskDescriptor ChangeMaskInfo 
)
inline

Mark specific member dirty, if this is the first bit marked as dirty in the local MemberChangeMask and the state is bound, mark owning object as dirty as well. Note that all bits described by the ChangeMaskInfo will be dirtied by the call.

◆ MarkNetObjectStateDirty()

IRISCORE_API void UE::Net::Private::MarkNetObjectStateDirty ( uint32  ReplicationSystemId,
FInternalNetRefIndex  NetObjectIndex 
)

◆ NetResultToString()

NETCORE_API void UE::Net::Private::NetResultToString ( FString &  OutResultStr,
const TCHAR LexResult,
const FString &  ErrorContext,
ENetResultString  ConversionType 
)

◆ PingTypeToIdx()

constexpr int32 UE::Net::Private::PingTypeToIdx ( EPingType  PingType)
constexpr

Converts an EPingType flag to an array index at compile time.

Parameters
PingTypeThe EPingType flag to convert
Returns
The index that the flag represents

◆ QuantizeVector()

template<class T >
T UE::Net::Private::QuantizeVector ( const int32  Scale,
const T &  Value 
)

◆ ReadQuantizedVector()

template<class T >
bool UE::Net::Private::ReadQuantizedVector ( const int32  Scale,
T &  Value,
FArchive Ar 
)

◆ ReadReplicationDataStreamDebugFeatures()

EReplicationDataStreamDebugFeatures UE::Net::Private::ReadReplicationDataStreamDebugFeatures ( FNetBitStreamReader Reader)
inline

◆ ReadSparseBitArray()

void UE::Net::Private::ReadSparseBitArray ( FNetBitStreamReader Reader,
uint32 OutData,
uint32  BitCount,
GetDataFunc &&  GetDataFunction,
ReadSparseUint32Func &&  ReadSparseUint32Function 
)

◆ ReadSparseBitArrayDelta()

void UE::Net::Private::ReadSparseBitArrayDelta ( FNetBitStreamReader Reader,
uint32 OutData,
const uint32 OldData,
uint32  BitCount,
ReadSparseUint32Func &&  ReadSparseUint32Function 
)

◆ RegisterDefaultPropertyNetSerializerInfos()

void UE::Net::Private::RegisterDefaultPropertyNetSerializerInfos ( )

Apart from the specialized serializer we register here we support the following: Structs. Structs without specialized serializer will use the StructNetSerializer. UArrayProperty will use ArrayPropertyNetSerializer. As a last resort for properties we use LastResortPropertyNetSerializer. It's by no means ideal.

Register supported property types and their default NetSerializers

◆ ResetMemberPollMask()

void UE::Net::Private::ResetMemberPollMask ( uint8 StateBuffer,
const FReplicationStateDescriptor Descriptor 
)
inline

Reset MemberPollMask

◆ RoundFloatToInt() [1/2]

int64 UE::Net::Private::RoundFloatToInt ( double  F)
inline

◆ RoundFloatToInt() [2/2]

int32 UE::Net::Private::RoundFloatToInt ( float  F)
inline

◆ ShouldIncludeRootObjectInLevelGroups()

bool UE::Net::Private::ShouldIncludeRootObjectInLevelGroups ( const UObject RootObject)

◆ UE_NET_DECLARE_NETSERIALIZER_INFO() [1/2]

UE::Net::Private::UE_NET_DECLARE_NETSERIALIZER_INFO ( FEnumPropertyNetSerializerInfo  )

◆ UE_NET_DECLARE_NETSERIALIZER_INFO() [2/2]

UE::Net::Private::UE_NET_DECLARE_NETSERIALIZER_INFO ( FNetRoleNetSerializerInfo  )

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO() [1/20]

UE::Net::Private::UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO ( NAME_Quat  ,
FUnitQuatNetSerializer   
)

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO() [2/20]

UE::Net::Private::UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO ( NAME_Quat4d  ,
FUnitQuat4dNetSerializer   
)

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO() [3/20]

UE::Net::Private::UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO ( NAME_Quat4f  ,
FUnitQuat4fNetSerializer   
)

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO() [4/20]

UE::Net::Private::UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO ( NAME_Rotator  ,
FRotatorNetSerializer   
)

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO() [5/20]

UE::Net::Private::UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO ( NAME_Rotator3d  ,
FRotator3dNetSerializer   
)

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO() [6/20]

UE::Net::Private::UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO ( NAME_Rotator3f  ,
FRotator3fNetSerializer   
)

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO() [7/20]

UE::Net::Private::UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO ( NAME_Vector  ,
FVectorNetSerializer   
)

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO() [8/20]

UE::Net::Private::UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO ( NAME_Vector3d  ,
FVector3dNetSerializer   
)

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO() [9/20]

UE::Net::Private::UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO ( NAME_Vector3f  ,
FVector3fNetSerializer   
)

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO() [10/20]

UE::Net::Private::UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO ( PropertyNetSerializerRegistry_NAME_DateTime  ,
FDateTimeNetSerializer   
)

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO() [11/20]

UE::Net::Private::UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO ( PropertyNetSerializerRegistry_NAME_Guid  ,
FGuidNetSerializer   
)

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO() [12/20]

UE::Net::Private::UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO ( PropertyNetSerializerRegistry_NAME_RemoteObjectId  ,
FRemoteObjectIdNetSerializer   
)

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO() [13/20]

UE::Net::Private::UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO ( PropertyNetSerializerRegistry_NAME_RemoteObjectReference  ,
FRemoteObjectReferenceNetSerializer   
)

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO() [14/20]

UE::Net::Private::UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO ( PropertyNetSerializerRegistry_NAME_RemoteServerId  ,
FRemoteServerIdNetSerializer   
)

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO() [15/20]

UE::Net::Private::UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO ( PropertyNetSerializerRegistry_NAME_SoftClassPath  ,
FSoftClassPathNetSerializer   
)

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO() [16/20]

UE::Net::Private::UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO ( PropertyNetSerializerRegistry_NAME_SoftObjectPath  ,
FSoftObjectPathNetSerializer   
)

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO() [17/20]

UE::Net::Private::UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO ( PropertyNetSerializerRegistry_NAME_Vector_NetQuantize  ,
FVectorNetQuantizeNetSerializer   
)

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO() [18/20]

UE::Net::Private::UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO ( PropertyNetSerializerRegistry_NAME_Vector_NetQuantize10  ,
FVectorNetQuantize10NetSerializer   
)

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO() [19/20]

UE::Net::Private::UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO ( PropertyNetSerializerRegistry_NAME_Vector_NetQuantize100  ,
FVectorNetQuantize100NetSerializer   
)

◆ UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO() [20/20]

UE::Net::Private::UE_NET_IMPLEMENT_NAMED_STRUCT_NETSERIALIZER_INFO ( PropertyNetSerializerRegistry_NAME_Vector_NetQuantizeNormal  ,
FVectorNetQuantizeNormalNetSerializer   
)

◆ UE_NET_IMPLEMENT_NETSERIALIZER_INFO() [1/11]

UE::Net::Private::UE_NET_IMPLEMENT_NETSERIALIZER_INFO ( FBitFieldPropertyNetSerializerInfo  )

◆ UE_NET_IMPLEMENT_NETSERIALIZER_INFO() [2/11]

UE::Net::Private::UE_NET_IMPLEMENT_NETSERIALIZER_INFO ( FEnumAsBytePropertyNetSerializerInfo  )

◆ UE_NET_IMPLEMENT_NETSERIALIZER_INFO() [3/11]

UE::Net::Private::UE_NET_IMPLEMENT_NETSERIALIZER_INFO ( FEnumPropertyNetSerializerInfo  )

◆ UE_NET_IMPLEMENT_NETSERIALIZER_INFO() [4/11]

UE::Net::Private::UE_NET_IMPLEMENT_NETSERIALIZER_INFO ( FNativeBoolPropertyNetSerializerInfo  )

◆ UE_NET_IMPLEMENT_NETSERIALIZER_INFO() [5/11]

UE::Net::Private::UE_NET_IMPLEMENT_NETSERIALIZER_INFO ( FNetRoleNetSerializerInfo  )

◆ UE_NET_IMPLEMENT_NETSERIALIZER_INFO() [6/11]

UE::Net::Private::UE_NET_IMPLEMENT_NETSERIALIZER_INFO ( FObjectPropertyNetSerializerInfo  )

◆ UE_NET_IMPLEMENT_NETSERIALIZER_INFO() [7/11]

UE::Net::Private::UE_NET_IMPLEMENT_NETSERIALIZER_INFO ( FObjectPtrPropertyNetSerializerInfo  )

◆ UE_NET_IMPLEMENT_NETSERIALIZER_INFO() [8/11]

UE::Net::Private::UE_NET_IMPLEMENT_NETSERIALIZER_INFO ( FScriptInterfacePropertyNetSerializerInfo  )

◆ UE_NET_IMPLEMENT_NETSERIALIZER_INFO() [9/11]

UE::Net::Private::UE_NET_IMPLEMENT_NETSERIALIZER_INFO ( FTextPropertyNetSerializerInfo  )

◆ UE_NET_IMPLEMENT_NETSERIALIZER_INFO() [10/11]

UE::Net::Private::UE_NET_IMPLEMENT_NETSERIALIZER_INFO ( FUint8PropertyNetSerializerInfo  )

◆ UE_NET_IMPLEMENT_NETSERIALIZER_INFO() [11/11]

UE::Net::Private::UE_NET_IMPLEMENT_NETSERIALIZER_INFO ( FWeakObjectPtrPropertyNetSerializerInfo  )

◆ UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO() [1/14]

UE::Net::Private::UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO ( FDoubleProperty  ,
FDoubleNetSerializer   
)

◆ UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO() [2/14]

UE::Net::Private::UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO ( FFieldPathProperty  ,
FFieldPathNetSerializer   
)

◆ UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO() [3/14]

UE::Net::Private::UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO ( FFloatProperty  ,
FFloatNetSerializer   
)

◆ UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO() [4/14]

UE::Net::Private::UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO ( FInt16Property  ,
FInt16NetSerializer   
)

◆ UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO() [5/14]

UE::Net::Private::UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO ( FInt64Property  ,
FInt64NetSerializer   
)

◆ UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO() [6/14]

UE::Net::Private::UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO ( FInt8Property  ,
FInt8NetSerializer   
)

Primitive types defaults, remember to bind them as well in RegisterDefaultPropertyNetSerializerInfos

◆ UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO() [7/14]

UE::Net::Private::UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO ( FIntProperty  ,
FPackedInt32NetSerializer   
)

◆ UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO() [8/14]

UE::Net::Private::UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO ( FNameProperty  ,
FNameAsNetTokenNetSerializer   
)

◆ UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO() [9/14]

UE::Net::Private::UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO ( FSoftClassProperty  ,
FSoftObjectNetSerializer   
)

◆ UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO() [10/14]

UE::Net::Private::UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO ( FSoftObjectProperty  ,
FSoftObjectNetSerializer   
)

◆ UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO() [11/14]

UE::Net::Private::UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO ( FStrProperty  ,
FStringNetSerializer   
)

◆ UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO() [12/14]

UE::Net::Private::UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO ( FUInt16Property  ,
FUint16NetSerializer   
)

◆ UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO() [13/14]

UE::Net::Private::UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO ( FUInt32Property  ,
FPackedUint32NetSerializer   
)

◆ UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO() [14/14]

UE::Net::Private::UE_NET_IMPLEMENT_SIMPLE_NETSERIALIZER_INFO ( FUInt64Property  ,
FUint64NetSerializer   
)

◆ Uint32AsFloat()

float UE::Net::Private::Uint32AsFloat ( uint32  Value)
inline

◆ WriteQuantizedVector()

template<class T >
bool UE::Net::Private::WriteQuantizedVector ( const int32  Scale,
const T &  Value,
FArchive Ar 
)

◆ WriteReplicationDataStreamDebugFeatures()

void UE::Net::Private::WriteReplicationDataStreamDebugFeatures ( FNetBitStreamWriter Writer,
EReplicationDataStreamDebugFeatures  Features 
)
inline

◆ WriteSparseBitArray()

void UE::Net::Private::WriteSparseBitArray ( FNetBitStreamWriter Writer,
const uint32 Data,
uint32  BitCount,
GetDataFunc &&  GetDataFunction,
WriteSparseUint32Func &&  WriteSparseUint32Function 
)

◆ WriteSparseBitArrayDelta()

void UE::Net::Private::WriteSparseBitArrayDelta ( FNetBitStreamWriter Writer,
const uint32 Data,
const uint32 OldData,
uint32  BitCount,
WriteSparseUint32Func &&  WriteSparseUint32Function 
)

Variable Documentation

◆ bCVarRepFilterCullNonRelevant

bool UE::Net::Private::bCVarRepFilterCullNonRelevant = true

◆ bCVarRepFilterValidateNoSubObjectInScopeWithFilteredOutRootObject

bool UE::Net::Private::bCVarRepFilterValidateNoSubObjectInScopeWithFilteredOutRootObject = false

◆ bIsFactoryRegistrationAllowed

bool UE::Net::Private::bIsFactoryRegistrationAllowed = true

◆ bRemapStableSubobjects

NETCORE_API bool UE::Net::Private::bRemapStableSubobjects = true

◆ bReplicationDataStreamDebugBatchSizePerObjectEnabled

bool UE::Net::Private::bReplicationDataStreamDebugBatchSizePerObjectEnabled
extern

◆ bReplicationDataStreamDebugSentinelsEnabled

bool UE::Net::Private::bReplicationDataStreamDebugSentinelsEnabled
extern

◆ bTrackDormantObjectsByLevel

bool UE::Net::Private::bTrackDormantObjectsByLevel = false

◆ bUpdateReplicationSystemWithNoConnections

bool UE::Net::Private::bUpdateReplicationSystemWithNoConnections = true

◆ CVarIrisAllowAsyncLoading

FAutoConsoleVariableRef UE::Net::Private::CVarIrisAllowAsyncLoading(TEXT("net.iris.AllowAsyncLoading"), bIrisAllowAsyncLoading, TEXT("Flag to allow or disallow async loading when using iris replication. Note: net.allowAsyncLoading must also be enabled."), ECVF_Default) ( TEXT("net.iris.AllowAsyncLoading")  ,
bIrisAllowAsyncLoading  ,
TEXT("Flag to allow or disallow async loading when using iris replication. Note: net.allowAsyncLoading must also be enabled.")  ,
ECVF_Default   
)

◆ CVarIrisAsyncLoadingFailAllLoads

FAutoConsoleVariableRef UE::Net::Private::CVarIrisAsyncLoadingFailAllLoads(TEXT("net.Iris.AsyncLoading.FailAllLoads"), bIrisAsyncLoadingFailAllLoads, TEXT("Simulate failing all async loading requests. For debugging purposes."), ECVF_Default) ( TEXT("net.Iris.AsyncLoading.FailAllLoads")  ,
bIrisAsyncLoadingFailAllLoads  ,
TEXT("Simulate failing all async loading requests. For debugging purposes.")  ,
ECVF_Default   
)

◆ CVarIrisAsyncLoadingFailNextLoad

FAutoConsoleVariableRef UE::Net::Private::CVarIrisAsyncLoadingFailNextLoad(TEXT("net.Iris.AsyncLoading.FailNextLoad"), bIrisAsyncLoadingFailNextLoad, TEXT("Simulate failing the next async loading request. For debugging purposes."), ECVF_Default) ( TEXT("net.Iris.AsyncLoading.FailNextLoad")  ,
bIrisAsyncLoadingFailNextLoad  ,
TEXT("Simulate failing the next async loading request. For debugging purposes.")  ,
ECVF_Default   
)

◆ CVarIrisAsyncLoadingFailPackageName

FAutoConsoleVariableRef UE::Net::Private::CVarIrisAsyncLoadingFailPackageName(TEXT("net.Iris.AsyncLoading.FailPackageName"), IrisAsyncLoadingFailPackageName, TEXT("Always fail loading the specified package name. For debugging purposes."), ECVF_Default) ( TEXT("net.Iris.AsyncLoading.FailPackageName")  ,
IrisAsyncLoadingFailPackageName  ,
TEXT("Always fail loading the specified package name. For debugging purposes.")  ,
ECVF_Default   
)

◆ CVarIrisEnableRemoveReferenceFallbackPath

FAutoConsoleVariableRef UE::Net::Private::CVarIrisEnableRemoveReferenceFallbackPath(TEXT("net.iris.ObjectReferenceCache.EnableRemoveReferenceFallbackPath"), bIrisEnableRemoveReferenceFallbackPath, TEXT("Whether to enable the slow fallback path or not when ObjectReferenceCache::RemoveReference is passed a null pointer object."), ECVF_Default) ( TEXT("net.iris.ObjectReferenceCache.EnableRemoveReferenceFallbackPath")  ,
bIrisEnableRemoveReferenceFallbackPath  ,
TEXT("Whether to enable the slow fallback path or not when ObjectReferenceCache::RemoveReference is passed a null pointer object.")  ,
ECVF_Default   
)

◆ DumpActiveNetActorsCommand

FAutoConsoleCommandWithWorld UE::Net::Private::DumpActiveNetActorsCommand(TEXT("net.DumpActiveNetActors"), TEXT("Dumps all of the active net actors in the replication system."), FConsoleCommandWithWorldDelegate::CreateStatic(DumpActiveNetActors)) ( TEXT("net.DumpActiveNetActors")  ,
TEXT("Dumps all of the active net actors in the replication system.")  ,
FConsoleCommandWithWorldDelegate::CreateStatic(DumpActiveNetActors)   
)

◆ InvalidDeltaCompressionBaselineStateInfoIndex

constexpr DeltaCompressionBaselineStateInfoIndexType UE::Net::Private::InvalidDeltaCompressionBaselineStateInfoIndex = 0
constexpr

◆ NopNetSerializerInfo

UE::Net::Private::FNopNetSerializerInfo UE::Net::Private::NopNetSerializerInfo

◆ PrintNetConnectionInfoCommand

FAutoConsoleCommand UE::Net::Private::PrintNetConnectionInfoCommand(TEXT("net.PrintNetConnections"), TEXT("Prints information on all net connections of a NetDriver. Defaults to the GameNetDriver. Choose a different driver via NetDriverName= or NetDriverDefinition="), FConsoleCommandWithArgsDelegate::CreateLambda([](const TArray< FString > &Args) { FName NetDriverName; FName NetDriverDef=NAME_GameNetDriver; if(const FString *DriverNameStr=Args.FindByPredicate([](const FString &Str) { return Str.Contains(TEXT("NetDriverName="));})) { FParse::Value(**DriverNameStr, TEXT("NetDriverName="), NetDriverName); } else if(const FString *DriverDefStr=Args.FindByPredicate([](const FString &Str) { return Str.Contains(TEXT("NetDriverDef="));})) { FParse::Value(**DriverDefStr, TEXT("NetDriverDef="), NetDriverDef); } auto PrintNetConnections=[](UNetDriver *NetDriver) { if(NetDriver->ServerConnection) { UE_LOG(LogNet, Display, TEXT("Printing Server Connection for: %s (Definition=%s)"), *NetDriver->NetDriverName.ToString(), *NetDriver->GetNetDriverDefinition().ToString()); UE_LOG(LogNet, Display, TEXT("\tServerConnection: ConnectionId=%u ViewTarget=%s FullDescription=%s Child=false"), NetDriver->ServerConnection->GetConnectionHandle().GetParentConnectionId(), *GetNameSafe(NetDriver->ServerConnection->ViewTarget), *NetDriver->ServerConnection->Describe()); for(UNetConnection *ChildNetConnection :NetDriver->ServerConnection->Children) { UE_LOG(LogNet, Display, TEXT("\tServerConnection: ConnectionId=%u ViewTarget=%s FullDescription=%s Child=true"), ChildNetConnection->GetConnectionHandle().GetParentConnectionId(), *GetNameSafe(ChildNetConnection->ViewTarget), *ChildNetConnection->Describe()); } } else { UE_LOG(LogNet, Display, TEXT("Printing Client Connections (%u) for: %s (Definition=%s)"), NetDriver->ClientConnections.Num(), *NetDriver->NetDriverName.ToString(), *NetDriver->GetNetDriverDefinition().ToString()); for(UNetConnection *NetConnection :NetDriver->ClientConnections) { UE_LOG(LogNet, Display, TEXT("\tClientConnection: ConnectionId=%u ViewTarget=%s NetId=%s FullDescription=%s Child=false"), NetConnection->GetConnectionHandle().GetParentConnectionId(), *GetNameSafe(NetConnection->ViewTarget), *NetConnection->PlayerId.ToDebugString(), *NetConnection->Describe()); for(UNetConnection *ChildNetConnection :NetConnection->Children) { UE_LOG(LogNet, Display, TEXT("\tClientConnection: ConnectionId=%u ViewTarget=%s NetId=%s FullDescription=%s Child=true"), ChildNetConnection->GetConnectionHandle().GetParentConnectionId(), *GetNameSafe(ChildNetConnection->ViewTarget), *ChildNetConnection->PlayerId.ToDebugString(), *ChildNetConnection->Describe()); } } } }; for(TObjectIterator< UNetDriver > It;It;++It) { if(UNetDriver *NetDriver=*It) { if(NetDriverName !=NAME_None) { if(NetDriver->NetDriverName==NetDriverName) { PrintNetConnections(NetDriver); } } else if(NetDriverDef !=NAME_None) { if(NetDriver->GetNetDriverDefinition()==NetDriverDef) { PrintNetConnections(NetDriver); } } else { PrintNetConnections(NetDriver); } } } })) ( TEXT("net.PrintNetConnections")  ,
TEXT("Prints information on all net connections of a NetDriver. Defaults to the GameNetDriver. Choose a different driver via NetDriverName= or NetDriverDefinition=")  ,
FConsoleCommandWithArgsDelegate::CreateLambda([](const TArray< FString > &Args){ FName NetDriverName; FName NetDriverDef=NAME_GameNetDriver;if(const FString *DriverNameStr=Args.FindByPredicate([](const FString &Str) { return Str.Contains(TEXT("NetDriverName="));})) { FParse::Value(**DriverNameStr, TEXT("NetDriverName="), NetDriverName);} else if(const FString *DriverDefStr=Args.FindByPredicate([](const FString &Str) { return Str.Contains(TEXT("NetDriverDef="));})) { FParse::Value(**DriverDefStr, TEXT("NetDriverDef="), NetDriverDef);} auto PrintNetConnections=[](UNetDriver *NetDriver) { if(NetDriver->ServerConnection) { UE_LOG(LogNet, Display, TEXT("Printing Server Connection for: %s (Definition=%s)"), *NetDriver->NetDriverName.ToString(), *NetDriver->GetNetDriverDefinition().ToString()); UE_LOG(LogNet, Display, TEXT("\tServerConnection: ConnectionId=%u ViewTarget=%s FullDescription=%s Child=false"), NetDriver->ServerConnection->GetConnectionHandle().GetParentConnectionId(), *GetNameSafe(NetDriver->ServerConnection->ViewTarget), *NetDriver->ServerConnection->Describe()); for(UNetConnection *ChildNetConnection :NetDriver->ServerConnection->Children) { UE_LOG(LogNet, Display, TEXT("\tServerConnection: ConnectionId=%u ViewTarget=%s FullDescription=%s Child=true"), ChildNetConnection->GetConnectionHandle().GetParentConnectionId(), *GetNameSafe(ChildNetConnection->ViewTarget), *ChildNetConnection->Describe()); } } else { UE_LOG(LogNet, Display, TEXT("Printing Client Connections (%u) for: %s (Definition=%s)"), NetDriver->ClientConnections.Num(), *NetDriver->NetDriverName.ToString(), *NetDriver->GetNetDriverDefinition().ToString()); for(UNetConnection *NetConnection :NetDriver->ClientConnections) { UE_LOG(LogNet, Display, TEXT("\tClientConnection: ConnectionId=%u ViewTarget=%s NetId=%s FullDescription=%s Child=false"), NetConnection->GetConnectionHandle().GetParentConnectionId(), *GetNameSafe(NetConnection->ViewTarget), *NetConnection->PlayerId.ToDebugString(), *NetConnection->Describe()); for(UNetConnection *ChildNetConnection :NetConnection->Children) { UE_LOG(LogNet, Display, TEXT("\tClientConnection: ConnectionId=%u ViewTarget=%s NetId=%s FullDescription=%s Child=true"), ChildNetConnection->GetConnectionHandle().GetParentConnectionId(), *GetNameSafe(ChildNetConnection->ViewTarget), *ChildNetConnection->PlayerId.ToDebugString(), *ChildNetConnection->Describe()); } } } };for(TObjectIterator< UNetDriver > It;It;++It) { if(UNetDriver *NetDriver=*It) { if(NetDriverName !=NAME_None) { if(NetDriver->NetDriverName==NetDriverName) { PrintNetConnections(NetDriver); } } else if(NetDriverDef !=NAME_None) { if(NetDriver->GetNetDriverDefinition()==NetDriverDef) { PrintNetConnections(NetDriver); } } else { PrintNetConnections(NetDriver); } } }})   
)

◆ SendDormantDestructionOnRemoval

int32 UE::Net::Private::SendDormantDestructionOnRemoval = 1

◆ SerializeSparseArrayMaxBitCount

constexpr uint32 UE::Net::Private::SerializeSparseArrayMaxBitCount = 1024U
constexpr

◆ SerializeSparseArrayMaxWordCount

constexpr uint32 UE::Net::Private::SerializeSparseArrayMaxWordCount = SerializeSparseArrayMaxBitCount / 32U
constexpr

◆ SparseUint32UsingIndices_EncodedIndexBitsHeaderSize

const uint32 UE::Net::Private::SparseUint32UsingIndices_EncodedIndexBitsHeaderSize = GetBitsNeeded(SparseUint32UsingIndices_MaxEncodedIndexBits)

◆ SparseUint32UsingIndices_MaxEncodedIndexBits

const uint32 UE::Net::Private::SparseUint32UsingIndices_MaxEncodedIndexBits = 3U