UNiagaraScript

Runtime script for a Niagara system

Inheritance Hierarchy

References

Module

Niagara

Header

/Engine/Plugins/FX/Niagara/Source/Niagara/Classes/NiagaraScript.h

Include

#include "NiagaraScript.h"

Syntax

UCLASS(MinimalAPI)
class UNiagaraScript :
    public UNiagaraScriptBase,
    public FNiagaraVersionedObject

Remarks

Runtime script for a Niagara system

Variables

Name Description

Public variable UProperty

FNiagaraParamet...

 

RapidIterationParameters

Contains all of the top-level values that are iterated on in the UI.

Public variable UProperty

FNiagaraParamet...

 

RapidIterationParametersCookedEditorCache

Public variable UProperty assetregistrysearchable

ENiagaraScriptU...

 

Usage

How this script is to be used. cannot be private due to use of GET_MEMBER_NAME_CHECKED

Public variable UProperty Category, EditAnywhere instanced

TArray< TObject...

 

ValidationRules

A set of rules to apply when this script is used in the stack.

Public variable UProperty Transient

FGuid

 

VersionToOpenInEditor

This is used as a transient value to open a specific version in the graph editor

Constructors

Name Description

Public function

UNiagaraScript()

Public function

UNiagaraScript

(
    const FObjectInitializer& ObjectIn...
)

Functions

Name Description

Public function

FNiagaraShad...

 

AllocateResource()

Public function Const

bool

 

AreScriptAndSourceSynchronized

(
    const FGuid& VersionGuid
)

Determine if the Script and its source graph are in sync.

Public function Static

bool

 

BinaryToExecData

(
    const UNiagaraScript* Script,
    const TArray< uint8 >& InBinaryDat...,
    FNiagaraVMExecutableData& OutExecD...
)

Helper to convert the struct from its binary data out of the DDC to it's actual in-memory version.

Public function Static

FString

 

BuildNiagaraDDCKeyString

(
    const FNiagaraVMExecutableDataId& ...,
    const FString& ScriptPath
)

Builds the DDC string for the derived data cache using the supplied CompiledId and ScriptPath

Public function

void

 

CacheResourceShadersForCooking

(
    EShaderPlatform ShaderPlatform,
    TArray< FNiagaraShaderScript* ...,
    const ITargetPlatform* TargetP...
)

Infrastructure for GPU compute Shaders.

Public function

void

 

CacheResourceShadersForRendering

(
    bool bRegenerateId,
    bool bForceRecompile
)

Public function

void

 

CacheShadersForResources

(
    FNiagaraShaderScript* Resource...,
    bool bApplyCompletedShaderMapForRen...,
    bool bForceRecompile,
    bool bCooking,
    const ITargetPlatform* TargetP...
)

Public function Const

bool

 

CanBeRunOnGpu()

Public function

void

 

CheckVersionDataAvailable()

Makes sure that the default version data is available and fixes old script assets.

Public function Const

void

 

ComputeVMCompilationId

(
    FNiagaraVMExecutableDataId& Id,
    FGuid VersionGuid
)

Public function Static

bool

 

ContainsEquivilentUsage

(
    const TArray< ENiagaraScriptUsage >...,
    ENiagaraScriptUsage InUsage
)

Public function Const

bool

 

ContainsUsage

(
    ENiagaraScriptUsage InUsage
)

Public function Static

bool

 

ConvertUsageToGroup

(
    ENiagaraScriptUsage InUsage,
    ENiagaraScriptGroup& OutGroup
)

Public function

UNiagaraScri...

 

CreateCompilationCopy()

Creates a shallow transient copy of this script for compilation purposes.

Public function Const

bool

 

DidScriptCompilationSucceed

(
    bool bGPUScript
)

Public function Static

bool

 

ExecToBinaryData

(
    const UNiagaraScript* Script,
    TArray< uint8 >& OutBinaryData,
    FNiagaraVMExecutableData& InExecDa...
)

Reverse of the BinaryToExecData() function

Public function Const

TArray< FNam...

 

FindShaderFormatsForCooking

(
    const ITargetPlatform* TargetP...
)

Public function

void

 

GenerateStatIDs()

Public function Const

FGuid

 

GetBaseChangeID

(
    const FGuid& VersionGuid
)

Public function Const

TConstArrayV...

 

GetCachedDefaultDataInterfaces()

Public function

TArray< FNia...

 

GetCachedDefaultDataInterfaces()

Public function

TArray< UNia...

 

GetCachedParameterCollectionReferences()

Public function Const

TOptional< F...

 

GetCompilerTag

(
    const FNiagaraVariableBase& InVar,
    const FNiagaraParameterStore* ...
)

Public function Const

TOptional< T...

 

GetCompilerTag

(
    const FNiagaraVariableBase& InVar,
    const FNiagaraParameterStore* ...
)

Public function Const

const FNiaga...

 

GetComputedVMCompilationId()

Public function Const

TConstArrayV...

 

GetDataInterfaceGPUParamInfos()

Public function

FText

 

GetDescription

(
    const FGuid& VersionGuid
)

Public function

const FNiaga...

 

GetExecutionReadyParameterStore

(
    ENiagaraSimTarget SimTarget
)

Public function Const

FString

 

GetFriendlyName()

Public function Const

ENiagaraScri...

 

GetLastCompileStatus()

Public function Const

const FVersi...

 

GetLatestScriptData()

Returns the script data for latest exposed version.

Public function

FVersionedNi...

 

GetLatestScriptData()

Returns the script data for latest exposed version.

Public function

UNiagaraScri...

 

GetLatestSource()

Public function Const

const UNiaga...

 

GetLatestSource()

Public function

FString

 

GetNiagaraDDCKeyString

(
    const FGuid& ScriptVersion,
    const FString& ScriptPath
)

Creates a string key for the derived data cache

Public function Const

FVersionedNi...

 

GetOuterEmitter()

Workaround for emitter versioning because we used a lot of Script->GetOuter() previously.

Public function

FNiagaraShad...

 

GetRenderThreadScript()

Public function Const

const FNiaga...

 

GetRenderThreadScript()

Public function

FVersionedNi...

 

GetScriptData

(
    const FGuid& VersionGuid
)

Returns the script data for a specific version or nullptr if no such version is found.

Public function Const

const FVersi...

 

GetScriptData

(
    const FGuid& VersionGuid
)

Returns the script data for a specific version or nullptr if no such version is found.

Public function Const

const UNiaga...

 

GetSource

(
    const FGuid& VersionGuid
)

Public function

UNiagaraScri...

 

GetSource

(
    const FGuid& VersionGuid
)

Public function Static

TArray< ENia...

 

GetSupportedUsageContextsForBitmask

(
    int32 InModuleUsageBitmask,
    bool bIncludeHiddenUsages
)

Public function Const

ENiagaraScri...

 

GetUsage()

Public function Const

FGuid

 

GetUsageId()

Public function

FNiagaraVMEx...

 

GetVMExecutableData()

Public function Const

const FNiaga...

 

GetVMExecutableData()

Public function Const

const FNiaga...

 

GetVMExecutableDataCompilationId()

Public function

FGraphEventR...

 

HandleByteCodeOptimization

(
    bool bShouldForceNow
)

Kicks off an async job to convert the ByteCode into an optimized version for the platform we are running on.

Public function

bool

 

HandleVariableRenames

(
    const TMap< FNiagaraVariable, FNiag...,
    const FString& UniqueEmitterName
)

Public function

void

 

InvalidateCompileResults

(
    const FString& Reason
)

Public function

void

 

InvalidateExecutionReadyParameterStores()

Public function Const

bool

 

IsCompilable()

Public function Static

bool

 

IsCompilable

(
    ENiagaraScriptUsage Usage
)

Public function Static

bool

 

IsDynamicInputScript

(
    ENiagaraScriptUsage Usage
)

Public function Const

bool

 

IsDynamicInputScript()

Public function Static

bool

 

IsEmitterScript

(
    ENiagaraScriptUsage Usage
)

Public function Static

bool

 

IsEmitterSpawnScript

(
    ENiagaraScriptUsage Usage
)

Public function Const

bool

 

IsEmitterSpawnScript()

Public function Const

bool

 

IsEmitterUpdateScript()

Public function Static

bool

 

IsEmitterUpdateScript

(
    ENiagaraScriptUsage Usage
)

Public function Const

bool

 

IsEquivalentUsage

(
    ENiagaraScriptUsage InUsage
)

Public function Static

bool

 

IsEquivalentUsage

(
    ENiagaraScriptUsage InUsageA,
    ENiagaraScriptUsage InUsageB
)

Public function Const

bool

 

IsFunctionScript()

Public function Static

bool

 

IsFunctionScript

(
    ENiagaraScriptUsage Usage
)

Public function Static

bool

 

IsGPUScript

(
    ENiagaraScriptUsage Usage
)

Public function Static

bool

 

IsInterpolatedParticleSpawnScript

(
    ENiagaraScriptUsage Usage
)

Public function Const

bool

 

IsInterpolatedParticleSpawnScript()

Public function Const

bool

 

IsModuleScript()

Public function Static

bool

 

IsModuleScript

(
    ENiagaraScriptUsage Usage
)

Public function Const

bool

 

IsNonParticleScript()

Public function Static

bool

 

IsNonParticleScript

(
    ENiagaraScriptUsage Usage
)

Public function Const

bool

 

IsParticleEventScript()

Public function Static

bool

 

IsParticleEventScript

(
    ENiagaraScriptUsage Usage
)

Public function Const

bool

 

IsParticleScript()

Public function Static

bool

 

IsParticleScript

(
    ENiagaraScriptUsage Usage
)

Public function Const

bool

 

IsParticleSpawnScript()

Public function Static

bool

 

IsParticleSpawnScript

(
    ENiagaraScriptUsage Usage
)

Public function Static

bool

 

IsParticleStageScript

(
    ENiagaraScriptUsage Usage
)

Public function Const

bool

 

IsParticleUpdateScript()

Public function Static

bool

 

IsParticleUpdateScript

(
    ENiagaraScriptUsage Usage
)

Public function Const

bool

 

IsReadyToRun

(
    ENiagaraSimTarget SimTarget
)

Public function Const

bool

 

IsScriptCompilationPending

(
    bool bGPUScript
)

Public function Const

bool

 

IsScriptCooked()

Public function Static

bool

 

IsSpawnScript

(
    ENiagaraScriptUsage Usage
)

Public function Const

bool

 

IsSpawnScript()

Public function Const

bool

 

IsStandaloneScript()

Public function Static

bool

 

IsStandaloneScript

(
    ENiagaraScriptUsage Usage
)

Public function Static

bool

 

IsSupportedUsageContextForBitmask

(
    int32 InModuleUsageBitmask,
    ENiagaraScriptUsage InUsageContext,
    bool bIncludeHiddenUsages
)

Public function Static

bool

 

IsSystemScript

(
    ENiagaraScriptUsage Usage
)

Public function Static

bool

 

IsSystemSpawnScript

(
    ENiagaraScriptUsage Usage
)

Public function Const

bool

 

IsSystemSpawnScript()

Public function Static

bool

 

IsSystemUpdateScript

(
    ENiagaraScriptUsage Usage
)

Public function Const

bool

 

IsSystemUpdateScript()

Public function Static

bool

 

IsUsageDependentOn

(
    ENiagaraScriptUsage InUsageA,
    ENiagaraScriptUsage InUsageB
)

Is usage A dependent on Usage B?

Public function

void

 

MarkScriptAndSourceDesynchronized

(
    FString Reason,
    const FGuid& VersionGuid
)

Ensure that the Script and its source graph are marked out of sync.

Public function

FOnScriptCom...

 

OnGPUScriptCompiled()

Callback issued whenever a GPU script compilation successfully happened (even if the results are a script that cannot be executed due to errors)

Public function

FOnPropertyC...

 

OnPropertyChanged()

Callback issues whenever post edit changed is called on this script.

Public function

FOnScriptCom...

 

OnVMScriptCompiled()

Callback issued whenever a VM script compilation successfully happened (even if the results are a script that cannot be executed due to errors)

Public function Virtual

void

 

PostEditChangeVersionedProperty

(
    FPropertyChangedEvent& PropertyCha...,
    const FGuid& Version
)

Public function UFunction

void

 

RaiseOnGPUCompilationComplete()

Public function

void

 

RequestCompile

(
    const FGuid& ScriptVersion,
    bool bForceCompile
)

Request a synchronous compile for the script, possibly forcing it to compile.

Public function

bool

 

RequestExternallyManagedAsyncCompile

(
    const TSharedPtr< FNiagaraCompileRe...,
    const TSharedPtr< FNiagaraCompileRe...,
    FNiagaraVMExecutableDataId& OutCom...,
    uint32& OutAsyncHandle
)

Request an asynchronous compile for the script, possibly forcing it to compile.

Public function

void

 

SaveShaderStableKeys

(
    const ITargetPlatform* TP
)

Public function

void

 

SetLatestSource

(
    UNiagaraScriptSourceBase* InSo...
)

Public function Static

void

 

SetPreviewFeatureLevel

(
    ERHIFeatureLevel::Type PreviewFeatu...
)

Public function

void

 

SetSource

(
    UNiagaraScriptSourceBase* InSo...,
    const FGuid& VersionGuid
)

Public function

void

 

SetUsage

(
    ENiagaraScriptUsage InUsage
)

Public function

void

 

SetUsageId

(
    const FGuid& InUsageId
)

Public function

void

 

SetVMCompilationResults

(
    const FNiagaraVMExecutableDataId& ...,
    FNiagaraVMExecutableData& InScript...,
    FString EmitterUniqueName,
    const TMap< FName, UNiagaraDataInte...,
    bool ApplyRapidIterationParameters
)

External call used to identify the values for a successful VM script compilation.

Public function

void

 

SyncAliases

(
    const FNiagaraAliasContext& Resolv...
)

Public function

bool

 

SynchronizeExecutablesWithCompilation

(
    const UNiagaraScript* Script,
    const TMap< FString, FString >& Re...
)

In the event where we "merge" we duplicate the changes of the source script onto the newly cloned copy.

Public function Const

bool

 

UsesCollection

(
    const UNiagaraParameterCollection&...
)

Overridden from UNiagaraScriptBase

Name Description

Public function Virtual Const

TConstArrayV...

 

GetSimulationStageMetaData()

Public function Virtual Const

void

 

ModifyCompilationEnvironment

(
    EShaderPlatform Platform,
    FShaderCompilerEnvironment& OutEnv...
)

Public function Virtual Const

bool

 

ShouldCompile

(
    EShaderPlatform Platform
)

Overridden from UObject

Name Description

Public function Virtual

void

 

BeginCacheForCookedPlatformData

(
    const ITargetPlatform* TargetP...
)

Starts caching of platform specific data for the target platform Called when cooking before serialization so that object can prepare platform specific data Not called during normal loading of objects

Public function Virtual

void

 

BeginDestroy()

Called before destroying the object.

Public function Virtual Const

void

 

GetAssetRegistryTags

(
    TArray< FAssetRegistryTag >& OutTa...
)

Gathers a list of asset registry searchable tags which are name/value pairs with some type information This only needs to be implemented for asset objects

Public function Virtual

bool

 

IsCachedCookedPlatformDataLoaded

(
    const ITargetPlatform* TargetP...
)

Have we finished loading all the cooked platform data for the target platforms requested in BeginCacheForCookedPlatformData

Public function Virtual Const

bool

 

IsEditorOnly()

Called during saving to determine if the object is forced to be editor only or not

Public function Virtual

bool

 

IsReadyForFinishDestroy()

Called to check if the object is ready for FinishDestroy.

Public function Virtual

void

 

PostEditChangeProperty

(
    FPropertyChangedEvent& PropertyCha...
)

Called when a property on this object has been modified externally

Public function Virtual

void

 

PostEditUndo()

Called after applying a transaction to the object.

Public function Virtual

void

 

PostLoad()

Do any object-specific cleanup required immediately after loading an object.

Public function Virtual

void

 

PreSave

(
    FObjectPreSaveContext SaveContext
)

Presave function.

Public function Virtual

void

 

Serialize

(
    FArchive& Ar
)

Handles reading, writing, and reference collecting using FArchive.

Overridden from FNiagaraVersionedObject

Name Description

Public function Virtual

FGuid

 

AddNewVersion

(
    int32 MajorVersion,
    int32 MinorVersion
)

Creates a new data entry for the given version number.

Public function Virtual

void

 

DeleteVersion

(
    const FGuid& VersionGuid
)

Deletes the version data for an existing version.

Public function Virtual

void

 

DisableVersioning

(
    const FGuid& VersionGuidToUse
)

Disables versioning and keeps only the data from the given version guid.

Public function Virtual

void

 

EnableVersioning()

Enables versioning for this script asset.

Public function Virtual

void

 

ExposeVersion

(
    const FGuid& VersionGuid
)

Changes the exposed version. Does nothing if the guid does not exist in the script's version data.

Public function Virtual Const

FNiagaraAsse...

 

FindVersionData

(
    const FGuid& VersionGuid
)

Returns the version data for the given guid, if it exists. Otherwise returns nullptr.

Public function Virtual Const

TArray< FNia...

 

GetAllAvailableVersions()

Returns all available versions for this script.

Public function Virtual Const

FNiagaraAsse...

 

GetExposedVersion()

Returns the version of the exposed version data (i.e. the version used when adding a module to the stack)

Public function Virtual

TSharedPtr< ...

 

GetVersionDataAccessor

(
    const FGuid& Version
)

Public function Virtual Const

bool

 

IsVersioningEnabled()

If true then this script asset uses active version control to track changes.

Typedefs

Constants

Deprecated Variables

Name Description

Public variable UProperty Meta

uint32: 1

 

bDeprecated_DEPRECATED

Use property in struct returned from GetScriptData() instead

Public variable UProperty Meta

uint32: 1

 

bExperimental_DEPRECATED

Use property in struct returned from GetScriptData() instead

Public variable UProperty Meta

uint32: 1

 

bExposeToLibrary_DEPRECATED

Deprecated, use LibraryVisibility instead.

Public variable UProperty Meta

FText

 

Category_DEPRECATED

Use property in struct returned from GetScriptData() instead

Public variable UProperty Meta

FText

 

CollapsedViewFormat_DEPRECATED

Deprecated, use LibraryVisibility instead.

Public variable UProperty Meta

TSubclassOf< UN...

 

ConversionUtility_DEPRECATED

Use property in struct returned from GetScriptData() instead

Public variable UProperty Meta

FText

 

DeprecationMessage_DEPRECATED

Use property in struct returned from GetScriptData() instead

Public variable UProperty Meta

TObjectPtr< UNi...

 

DeprecationRecommendation_DEPRECATED

Use property in struct returned from GetScriptData() instead

Public variable UProperty Meta

FText

 

Description_DEPRECATED

Use property in struct returned from GetScriptData() instead

Public variable UProperty Meta

FText

 

ExperimentalMessage_DEPRECATED

Use property in struct returned from GetScriptData() instead

Public variable UProperty Meta

FText

 

Keywords_DEPRECATED

Use property in struct returned from GetScriptData() instead

Public variable UProperty Meta

ENiagaraScriptL...

 

LibraryVisibility_DEPRECATED

Use property in struct returned from GetScriptData() instead

Public variable UProperty Meta

int32

 

ModuleUsageBitmask_DEPRECATED

Use property in struct returned from GetScriptData() instead

Public variable UProperty Meta

FText

 

NoteMessage_DEPRECATED

Use property in struct returned from GetScriptData() instead

Public variable UProperty Meta

ENiagaraNumeric...

 

NumericOutputTypeSelectionMode_DEPRECATED

Use property in struct returned from GetScriptData() instead

Public variable UProperty Meta

TArray< FName >

 

ProvidedDependencies_DEPRECATED

Use property in struct returned from GetScriptData() instead

Public variable UProperty Meta

TArray< FNiagar...

 

RequiredDependencies_DEPRECATED

Use property in struct returned from GetScriptData() instead

Public variable UProperty Meta

TMap< FName, FS...

 

ScriptMetaData_DEPRECATED

Deprecated, use LibraryVisibility instead.

Public variable UProperty Meta

TObjectPtr< cla...

 

Source_DEPRECATED

'Source' data/graphs for this script

Public variable UProperty

int32

 

UsageIndex_DEPRECATED

Which instance of the usage in the graph to use. This is now deprecated and is handled by UsageId.

Deprecated Functions

Name Description

Public function Virtual

PRAGMA_DISAB...

 

PreSave

(
    const ITargetPlatform* TargetP...
)

Use version that takes FObjectPreSaveContext instead.

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Cancel