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:

  1. Setting up a well-structured and optimized default dynamic input script to serve as a template.
  2. Regularly reviewing and updating the default script to incorporate any new best practices or features.
  3. Documenting any changes made to the default script, as it will affect all new dynamic input scripts created.
  4. Considering project-specific needs when customizing the default script.
  5. 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]

#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. */