SupportsStructNetSerializerList
SupportsStructNetSerializerList
#Overview
name: SupportsStructNetSerializerList
The value of this variable can be defined or overridden in .ini config files. 15
.ini config files referencing this setting variable.
It is referenced in 3
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of SupportsStructNetSerializerList is to store a list of structures that support network serialization in Unreal Engine’s replication system. This setting variable is primarily used for the networking and replication subsystems within the engine.
Based on the callsites, the Iris Core module, which is part of Unreal Engine’s experimental networking system, relies on this setting variable. Specifically, it is used in the ReplicationStateDescriptorConfig class, which is likely responsible for configuring replication state descriptors.
The value of this variable is set through the engine’s configuration system. As seen in the first callsite, it is populated using GConfig->SetArray, which writes to the GEngineIni file. This suggests that the variable can be configured through engine initialization files or project settings.
The SupportsStructNetSerializerList interacts with the FSupportsStructNetSerializerConfig type, which likely defines the structure for each entry in the list.
Developers should be aware that this variable is part of an experimental system (Iris) and may be subject to changes in future engine versions. They should also understand that modifying this list could have significant impacts on network replication behavior for certain structures.
Best practices when using this variable include:
- Carefully considering which structures truly need network serialization support to avoid unnecessary network traffic.
- Ensuring that any custom structures added to this list properly implement the necessary serialization functions.
- Testing thoroughly after making changes to this list to ensure network replication still functions correctly.
- Keeping the list as minimal as possible to maintain optimal performance in networking scenarios.
- Documenting any changes made to this list for other team members and for future reference.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEngine.ini:1348, section: [/Script/IrisCore.ReplicationStateDescriptorConfig]
- INI Section:
/Script/IrisCore.ReplicationStateDescriptorConfig
- Raw value:
(StructName=GameplayCueParameters)
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:1349, section: [/Script/IrisCore.ReplicationStateDescriptorConfig]
- INI Section:
/Script/IrisCore.ReplicationStateDescriptorConfig
- Raw value:
(StructName=GameplayAbilityTargetData_LocationInfo)
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:1350, section: [/Script/IrisCore.ReplicationStateDescriptorConfig]
- INI Section:
/Script/IrisCore.ReplicationStateDescriptorConfig
- Raw value:
(StructName=GameplayAbilityTargetData_ActorArray)
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:1351, section: [/Script/IrisCore.ReplicationStateDescriptorConfig]
- INI Section:
/Script/IrisCore.ReplicationStateDescriptorConfig
- Raw value:
(StructName=GameplayAbilityTargetData_SingleTargetHit)
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:1352, section: [/Script/IrisCore.ReplicationStateDescriptorConfig]
- INI Section:
/Script/IrisCore.ReplicationStateDescriptorConfig
- Raw value:
(StructName=NetLevelVisibilityTransactionId)
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:1353, section: [/Script/IrisCore.ReplicationStateDescriptorConfig]
- INI Section:
/Script/IrisCore.ReplicationStateDescriptorConfig
- Raw value:
(StructName=Vector2D)
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:1354, section: [/Script/IrisCore.ReplicationStateDescriptorConfig]
- INI Section:
/Script/IrisCore.ReplicationStateDescriptorConfig
- Raw value:
(StructName=Vector2f)
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:1355, section: [/Script/IrisCore.ReplicationStateDescriptorConfig]
- INI Section:
/Script/IrisCore.ReplicationStateDescriptorConfig
- Raw value:
(StructName=GameplayDebuggerNetPack)
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:1356, section: [/Script/IrisCore.ReplicationStateDescriptorConfig]
- INI Section:
/Script/IrisCore.ReplicationStateDescriptorConfig
- Raw value:
(StructName=RootMotionSource)
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:1357, section: [/Script/IrisCore.ReplicationStateDescriptorConfig]
- INI Section:
/Script/IrisCore.ReplicationStateDescriptorConfig
- Raw value:
(StructName=RootMotionSource_ConstantForce)
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:1358, section: [/Script/IrisCore.ReplicationStateDescriptorConfig]
- INI Section:
/Script/IrisCore.ReplicationStateDescriptorConfig
- Raw value:
(StructName=RootMotionSource_JumpForce)
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:1359, section: [/Script/IrisCore.ReplicationStateDescriptorConfig]
- INI Section:
/Script/IrisCore.ReplicationStateDescriptorConfig
- Raw value:
(StructName=RootMotionSource_MoveToDynamicForce)
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:1360, section: [/Script/IrisCore.ReplicationStateDescriptorConfig]
- INI Section:
/Script/IrisCore.ReplicationStateDescriptorConfig
- Raw value:
(StructName=RootMotionSource_MoveToForce)
- Is Array:
True
Location: <Workspace>/Engine/Config/BaseEngine.ini:1361, section: [/Script/IrisCore.ReplicationStateDescriptorConfig]
- INI Section:
/Script/IrisCore.ReplicationStateDescriptorConfig
- Raw value:
(StructName=RootMotionSource_RadialForce)
- Is Array:
True
Location: <Workspace>/Projects/Lyra/Config/DefaultEngine.ini:38, section: [/Script/IrisCore.ReplicationStateDescriptorConfig]
- INI Section:
/Script/IrisCore.ReplicationStateDescriptorConfig
- Raw value:
(StructName=LyraGameplayAbilityTargetData_SingleTargetHit)
- Is Array:
True
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Programs/ReplicationSystemLowLevelTests/Private/ReplicationSystemLowLevelTests.cpp:30
Scope (from outer to inner):
file
namespace anonymous
lambda-function
Source code excerpt:
};
GConfig->SetArray(TEXT("/Script/IrisCore.ReplicationStateDescriptorConfig"), TEXT("SupportsStructNetSerializerList"), StructsSupportingNetSerializerList, GEngineIni);
});
}
GROUP_BEFORE_GLOBAL(Catch::DefaultGroup)
{
// Add command-line options always needed for the tests
#Loc: <Workspace>/Engine/Source/Runtime/Experimental/Iris/Core/Private/Iris/ReplicationState/ReplicationStateDescriptorConfig.cpp:12
Scope (from outer to inner):
file
function TConstArrayView<FSupportsStructNetSerializerConfig> UReplicationStateDescriptorConfig::GetSupportsStructNetSerializerList
Source code excerpt:
TConstArrayView<FSupportsStructNetSerializerConfig> UReplicationStateDescriptorConfig::GetSupportsStructNetSerializerList() const
{
return MakeArrayView(SupportsStructNetSerializerList);
}
#Loc: <Workspace>/Engine/Source/Runtime/Experimental/Iris/Core/Public/Iris/ReplicationState/ReplicationStateDescriptorConfig.h:36
Scope (from outer to inner):
file
class class UReplicationStateDescriptorConfig : public UObject
Source code excerpt:
*/
UPROPERTY(Config)
TArray<FSupportsStructNetSerializerConfig> SupportsStructNetSerializerList;
};