Net.MakeBpPropertiesPushModel
Net.MakeBpPropertiesPushModel
#Overview
name: Net.MakeBpPropertiesPushModel
This variable is created as a Console Variable (cvar).
- type:
Var
- help:
Whether or not properties declared in Blueprints will be forced to used Push Model
It is referenced in 4
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of Net.MakeBpPropertiesPushModel is to control whether properties declared in Blueprints are forced to use the Push Model for network replication in Unreal Engine.
This setting variable is primarily used by the networking subsystem, specifically the Push Model component of Unreal Engine’s networking architecture. It’s part of the Net Core module, which handles core networking functionality.
The value of this variable is set through a console variable (CVar) system. It’s initialized to true by default and can be changed at runtime using console commands.
The associated variable bMakeBpPropertiesPushModel directly interacts with Net.MakeBpPropertiesPushModel. They share the same value, with bMakeBpPropertiesPushModel being the C++ boolean variable that’s used in the code to check the setting.
Developers should be aware that this setting affects how Blueprint-declared properties are handled in network replication. When enabled, it forces all Blueprint-declared properties to use the Push Model, which can have implications for network performance and behavior.
Best practices when using this variable include:
- Understanding the impact of Push Model on network performance for your specific use case.
- Testing network behavior with this setting both enabled and disabled to ensure optimal performance.
- Being cautious when changing this setting in a live environment, as it can significantly alter network behavior.
Regarding the associated variable bMakeBpPropertiesPushModel:
- Its purpose is to provide a quick, in-code way to check if Blueprint properties should use Push Model.
- It’s used in the Net Core module of Unreal Engine.
- Its value is set by the console variable Net.MakeBpPropertiesPushModel.
- It’s accessed through the UEPushModelPrivate::MakeBpPropertiesPushModel() function, which returns its current value.
- Developers should be aware that this variable directly reflects the console setting and changing one will affect the other.
- Best practice is to use the UEPushModelPrivate::MakeBpPropertiesPushModel() function to check this setting rather than accessing the variable directly, as this provides a layer of abstraction and potential for future changes.
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Runtime/Net/Core/Private/Net/Core/PushModel/PushModel.cpp:440
Scope (from outer to inner):
file
namespace UEPushModelPrivate
Source code excerpt:
bool bMakeBpPropertiesPushModel = true;
FAutoConsoleVariableRef CVarMakeBpPropertiesPushModel(
TEXT("Net.MakeBpPropertiesPushModel"),
bMakeBpPropertiesPushModel,
TEXT("Whether or not properties declared in Blueprints will be forced to used Push Model")
);
FAutoConsoleCommand PushModelPrintHandles(
TEXT("Net.PushModelPrintHandles"),
#Associated Variable and Callsites
This variable is associated with another variable named bMakeBpPropertiesPushModel
. They share the same value. See the following C++ source code.
#Loc: <Workspace>/Engine/Source/Runtime/Net/Core/Private/Net/Core/PushModel/PushModel.cpp:438
Scope (from outer to inner):
file
namespace UEPushModelPrivate
Source code excerpt:
);
bool bMakeBpPropertiesPushModel = true;
FAutoConsoleVariableRef CVarMakeBpPropertiesPushModel(
TEXT("Net.MakeBpPropertiesPushModel"),
bMakeBpPropertiesPushModel,
TEXT("Whether or not properties declared in Blueprints will be forced to used Push Model")
);
FAutoConsoleCommand PushModelPrintHandles(
TEXT("Net.PushModelPrintHandles"),
TEXT("Prints the list of replicated objects relevant to a specific connection"),
#Loc: <Workspace>/Engine/Source/Runtime/Net/Core/Public/Net/Core/PushModel/PushModel.h:334
Scope (from outer to inner):
file
namespace UEPushModelPrivate
Source code excerpt:
extern NETCORE_API bool bIsPushModelEnabled;
extern NETCORE_API bool bMakeBpPropertiesPushModel;
/** @return Whether or not PushModel is currently enabled. See "net.IsPushModelEnabled." */
static const bool IsPushModelEnabled()
{
return bIsPushModelEnabled;
}
#Loc: <Workspace>/Engine/Source/Runtime/Net/Core/Public/Net/Core/PushModel/PushModel.h:345
Scope (from outer to inner):
file
namespace UEPushModelPrivate
function static const bool MakeBpPropertiesPushModel
Source code excerpt:
static const bool MakeBpPropertiesPushModel()
{
return bMakeBpPropertiesPushModel;
}
/** Are we allowed to create new push model handles */
NETCORE_API bool IsHandleCreationAllowed();
/** Control if we are allowed to create pushmodel handles */