DefaultDynamicInputScript
DefaultDynamicInputScript
#Overview
name: DefaultDynamicInputScript
The value of this variable can be defined or overridden in .ini config files. 1
.ini config file referencing this setting variable.
It is referenced in 3
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of DefaultDynamicInputScript is to provide a default template for creating new dynamic input scripts in the Niagara visual effects system within Unreal Engine 5.
This setting variable is primarily used by the Niagara plugin, specifically within the NiagaraEditor module. It’s utilized in the script creation and factory processes for Niagara effects.
The value of this variable is set in the Niagara Editor Settings, as evidenced by its declaration in the UNiagaraEditorSettings class in NiagaraEditorSettings.h. It’s configured as an FSoftObjectPath, which allows for lazy loading of the referenced asset.
DefaultDynamicInputScript interacts with other script-related variables in the Niagara system, such as DefaultFunctionScript. These variables serve similar purposes for different types of Niagara scripts.
Developers must be aware that this variable is used as a template for new dynamic input scripts. Modifying the referenced script will affect all new dynamic input scripts created in the project. It’s important to ensure that the referenced script is a suitable base for all dynamic input scripts in the project.
Best practices when using this variable include:
- Setting up a well-structured and optimized default dynamic input script to serve as a template.
- Regularly reviewing and updating the default script to incorporate any new best practices or features.
- Documenting any changes made to the default script, as it will affect all new dynamic input scripts created.
- Considering project-specific needs when customizing the default script.
- Ensuring that the path set in the Niagara Editor Settings points to a valid and appropriate script asset.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Plugins/FX/Niagara/Config/BaseNiagara.ini:65, section: [/Script/NiagaraEditor.NiagaraEditorSettings]
- INI Section:
/Script/NiagaraEditor.NiagaraEditorSettings
- Raw value:
/Niagara/DefaultAssets/DefaultDynamicInputs.DefaultDynamicInputs
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Plugins/FX/Niagara/Source/NiagaraEditor/Private/NiagaraScriptFactory.cpp:72
Scope (from outer to inner):
file
function const FSoftObjectPath& UNiagaraScriptFactoryNew::GetDefaultScriptFromSettings
Source code excerpt:
break;
case ENiagaraScriptUsage::DynamicInput:
if (Settings->DefaultDynamicInputScript.IsValid())
{
return Settings->DefaultDynamicInputScript;
}
break;
case ENiagaraScriptUsage::Function:
if (Settings->DefaultFunctionScript.IsValid())
{
return Settings->DefaultFunctionScript;
#Loc: <Workspace>/Engine/Plugins/FX/Niagara/Source/NiagaraEditor/Private/ViewModels/NiagaraScratchPadViewModel.cpp:486
Scope (from outer to inner):
file
function TSharedPtr<FNiagaraScratchPadScriptViewModel> UNiagaraScratchPadViewModel::CreateNewScript
Source code excerpt:
case ENiagaraScriptUsage::DynamicInput:
{
UNiagaraScript* DefaultDynamicInput = Cast<UNiagaraScript>(GetDefault<UNiagaraEditorSettings>()->DefaultDynamicInputScript.TryLoad());
if (DefaultDynamicInput != nullptr &&
Cast<UNiagaraScriptSource>(DefaultDynamicInput->GetLatestSource()) != nullptr &&
Cast<UNiagaraScriptSource>(DefaultDynamicInput->GetLatestSource())->NodeGraph != nullptr)
{
NewScript = CastChecked<UNiagaraScript>(StaticDuplicateObject(DefaultDynamicInput, ScriptOuter, GetUniqueScriptName(ScriptOuter, TEXT("ScratchDynamicInput"))));
TArray<UNiagaraNodeOutput*> OutputNodes;
#Loc: <Workspace>/Engine/Plugins/FX/Niagara/Source/NiagaraEditor/Public/NiagaraEditorSettings.h:352
Scope (from outer to inner):
file
class class UNiagaraEditorSettings : public UDeveloperSettings
Source code excerpt:
/** Niagara script to duplicate as the base of all new script assets created. */
UPROPERTY(config, EditAnywhere, Category = Niagara)
FSoftObjectPath DefaultDynamicInputScript;
/** Niagara script to duplicate as the base of all new script assets created. */
UPROPERTY(config, EditAnywhere, Category = Niagara)
FSoftObjectPath DefaultFunctionScript;
/** Niagara script to duplicate as the base of all new script assets created. */