UNiagaraSystem

Container for multiple emitters that combine together to create a particle system effect.

Windows
MacOS
Linux

Inheritance Hierarchy

References

Module

Niagara

Header

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

Include

#include "NiagaraSystem.h"

Syntax

[UCLASS](Programming/UnrealArchitecture/Reference/Classes#classdeclaration)(BlueprintType)
class UNiagaraSystem :
    public UFXSystemAsset,
    public INiagaraParameterDefinitionsSubscriber

Remarks

Container for multiple emitters that combine together to create a particle system effect.

Variables

Name Description

Protected variable UProperty Transient

TArray< FNiagar...

 

ActiveCompilations

Protected variable

int32

 

ActiveInstances

Total active instances of this system.

Protected variable

FGuid

 

AssetGuid

Protected variable UProperty export

UNiagaraBakerSe...

 

BakerGeneratedSettings

Generated data baker settings, will be null until we have generated at least once.

Protected variable UProperty export

UNiagaraBakerSe...

 

BakerSettings

Settings used inside the baker

Protected variable UProperty Category, EditAnywhere, Meta

bool

 

bAutoDeactivate

Public variable UProperty Category, EditAnywhere, AdvancedDisplay

uint32: 1

 

bBakeOutRapidIteration

Experimental feature that allows us to bake out rapid iteration parameters during the normal compile process.

Public variable UProperty Category, EditAnywhere, AdvancedDisplay, Meta

uint32: 1

 

bBakeOutRapidIterationOnCook

If true bBakeOutRapidIteration will be made to be true during cooks

Public variable UProperty Category, EditAnywhere, AdvancedDisplay

uint32: 1

 

bCompressAttributes

Toggles whether or not emitters within this system will try and compress their particle attributes.

Public variable UProperty Meta

uint32: 1

 

bDisableAllDebugSwitches

If true, forcefully disables all debug switches

Public variable UProperty Category, EditAnywhere

bool

 

bDumpDebugEmitterInfo

Public variable UProperty Category, EditAnywhere

bool

 

bDumpDebugSystemInfo

Public variable UProperty Category, EditAnywhere, AdvancedDisplay, Meta assetregistrysearchable

bool

 

bExposeToLibrary

If this system is exposed to the library.

Public variable UProperty Category, EditAnywhere, Meta

uint32: 1

 

bFixedBounds

Whether or not fixed bounds are enabled.

Public variable

bool

 

bFullyLoaded

Protected variable

uint32: 1

 

bHasAnyGPUEmitters

Protected variable

uint32: 1

 

bHasDIsWithPostSimulateTick

Protected variable UProperty

bool

 

bHasSystemScriptDIsWithPerInstanceData

Protected variable

bool

 

bIsolateEnabled

Protected variable

uint32: 1

 

bIsReadyToRunCached

Protected variable

uint32: 1

 

bIsValidCached

Protected variable UProperty

bool

 

bNeedsGPUContextInitForDataInterfaces

Protected variable

uint32: 1

 

bNeedsSortedSignificanceCull

Protected variable UProperty Category, EditAnywhere

bool

 

bOverrideScalabilitySettings

Public variable UProperty Category, EditAnywhere

bool

 

bRequireCurrentFrameData

When enabled, we follow the settings on the UNiagaraComponent for tick order.

Public variable UProperty Category, EditAnywhere, AdvancedDisplay

uint32: 1

 

bTrimAttributes

If true Particle attributes will be removed from the DataSet if they are unnecessary (are never read by ParameterMap)

Public variable UProperty Category, EditAnywhere, AdvancedDisplay, Meta

uint32: 1

 

bTrimAttributesOnCook

If true bTrimAttributes will be made to be true during cooks

Protected variable

FString

 

CrashReporterTag

Protected variable

FNiagaraSystemS...

 

CurrentScalabilitySettings

Protected variable UProperty

UNiagaraEditorD...

 

EditorData

Data used by the editor to maintain UI state etc..

Public variable UProperty Transient

FNiagaraParamet...

 

EditorOnlyAddedParameters

Protected variable UProperty

UNiagaraEditorP...

 

EditorParameters

Wrapper for editor only parameters.

Protected variable UProperty Category, EditAnywhere

UNiagaraEffectT...

 

EffectType

Protected variable

TArray< TShared...

 

EmitterCompiledData

Protected variable

TArray< FNiagar...

 

EmitterExecutionOrder

Array of emitter indices sorted by execution priority.

Protected variable

TArray< FNiagar...

 

EmitterExecutionStateAccessors

Protected variable UProperty

TArray< FNiagar...

 

EmitterHandles

Handles to the emitter this System will simulate.

Protected variable

TArray< TArray<...

 

EmitterSpawnInfoAccessors

Protected variable UProperty

FNiagaraUserRed...

 

ExposedParameters

Variables exposed to the outside work for tweaking

Protected variable UProperty Category, EditAnywhere, Meta

FBox

 

FixedBounds

The fixed bounding box value. bFixedBounds is the condition whether the fixed bounds can be edited.

Protected variable

TOptional< floa...

 

MaxDeltaTime

Protected variable UProperty

TMap< FGuid, UN...

 

MessageKeyToMessageMap

Messages associated with the System asset.

Protected variable

FOnSystemCompil...

 

OnSystemCompiledDelegate

A multicast delegate which is called whenever the script has been compiled (successfully or not).

Protected variable

FOnSystemPostEd...

 

OnSystemPostEditChangeDelegate

A multicast delegate which is called whenever this system's properties are changed.

Protected variable UProperty Category, EditAnywhere

TArray< UNiagar...

 

ParameterCollectionOverrides

Public variable UProperty

TArray< FParame...

 

ParameterDefinitionsSubscriptions

Subscriptions to definitions of parameters.

Protected variable

TArray< FNiagar...

 

RendererCompletionOrder

Array of renderer indices to notify system Completion, in order of execution

Protected variable

TArray< int32 >

 

RendererDrawOrder

Precomputed emitter renderer draw order, since emitters & renderers are not dynamic we can do this.

Protected variable

TArray< FNiagar...

 

RendererPostTickOrder

Array of renderer indices to notify system PostTick, in order of execution

Public variable UProperty

TArray< UNiagar...

 

ScratchPadScripts

Protected variable UProperty

FNiagaraSystemC...

 

SystemCompiledData

Protected variable

FNiagaraDataSet...

 

SystemExecutionStateAccessor

Protected variable UProperty Category, EditAnywhere, Meta

FNiagaraSystemS...

 

SystemScalabilityOverrides

Protected variable UProperty

UNiagaraScript ...

 

SystemSpawnScript

/** Category of this system. */

Protected variable UProperty

UNiagaraScript ...

 

SystemUpdateScript

The script which defines the System parameters, and which generates the bindings from System parameter to emitter parameter.

Public variable UProperty Category, EditAnywhere, AdvancedDisplay, Meta assetregistrysearchable

FText

 

TemplateAssetDescription

Public variable UProperty Category, EditAnywhere, AdvancedDisplay, Meta assetregistrysearchable

ENiagaraScriptT...

 

TemplateSpecification

Public variable UProperty

UTexture2D *...

 

ThumbnailImage

Internal: The thumbnail image.

Public variable UProperty

uint32: 1

 

ThumbnailImageOutOfDate

Internal: Indicates the thumbnail image is out of date.

Public variable UProperty Transient

FNiagaraSystemU...

 

UpdateContext

Protected variable UProperty

TArray< FName >

 

UserDINamesReadInSystemScripts

Protected variable UProperty Category, EditAnywhere

int32

 

WarmupTickCount

Number of ticks to process for warmup. You can set by this or by time via WarmupTime.

Protected variable UProperty Category, EditAnywhere

float

 

WarmupTickDelta

Delta time to use for warmup ticks.

Protected variable UProperty Category, EditAnywhere

float

 

WarmupTime

Warm up time in seconds.

Constructors

Name Description

Public function

UNiagaraSystem

(
    const FObjectInitializer& ObjectIn...
)

Public function

UNiagaraSystem

(
    FVTableHelper& Helper
)

Functions

Name Description

Public function

FNiagaraEmit...

 

AddEmitterHandle

(
    UNiagaraEmitter& SourceEmitter,
    FName EmitterName
)

Adds a new emitter handle to this System.

Public function

void

 

AddEmitterHandleDirect

(
    FNiagaraEmitterHandle& EmitterHand...
)

Adds a new emitter handle to this system without copying the original asset.

Public function

void

 

AddMessage

(
    const FGuid& MessageKey,
    UNiagaraMessageDataBase* NewMe...
)

Public function Const

void

 

AddToInstanceCountStat

(
    int32 NumInstances,
    bool bSolo
)

Public function

void

 

CacheFromCompiledData()

Cache data & accessors from the compiled data, allows us to avoid per instance.

Public function Const

bool

 

CanObtainEmitterAttribute

(
    const FNiagaraVariableBase& InVarW...
)

Public function Const

bool

 

CanObtainSystemAttribute

(
    const FNiagaraVariableBase& InVar
)

Public function Const

bool

 

CanObtainUserVariable

(
    const FNiagaraVariableBase& InVar
)

Public function

bool

 

ComputeEmitterPriority

(
    int32 EmitterIdx,
    TArray< int32, TInlineAllocator< 32...,
    const TBitArray< TInlineAllocator< ...
)

Computes emitter priorities based on the dependency information.

Public function

void

 

ComputeEmittersExecutionOrder()

Computes the order in which the emitters in the Emitters array will be ticked and stores the results in EmitterExecutionOrder.

Public function

void

 

ComputeRenderersDrawOrder()

Computes the order in which renderers will render

Public function

FNiagaraEmit...

 

DuplicateEmitterHandle

(
    const FNiagaraEmitterHandle& Emitt...,
    FName EmitterName
)

Duplicates an existing emitter handle and adds it to the System.

Public function Const

void

 

EnsureFullyLoaded()

Public function

void

 

FindDataInterfaceDependencies

(
    UNiagaraEmitter* Emitter,
    UNiagaraScript* Script,
    TArray< class UNiagaraEmitter*...
)

Queries all the data interfaces in the array for emitter dependencies.

Public function

void

 

FindEventDependencies

(
    UNiagaraEmitter* Emitter,
    TArray< UNiagaraEmitter* >& D...
)

Looks at all the event handlers in the emitter to determine which other emitters it depends on.

Public function

void

 

ForceGraphToRecompileOnNextCheck()

Public function Const

void

 

ForEachScript

(
    TAction Func
)

Performs the passed action for all scripts in this system.

Protected function Const

void

 

GenerateStatID()

Public function

int32 &

 

GetActiveInstancesCount()

Public function Const

const FGuid ...

 

GetAssetGuid()

Public function Const

const UNiaga...

 

GetBakerGeneratedSettings()

Public function

UNiagaraBake...

 

GetBakerSettings()

Public function Const

const FStrin...

 

GetCrashReporterTag()

Public function Const

const UNiaga...

 

GetEditorData()

Gets editor specific data stored with this system.

Public function

UNiagaraEdit...

 

GetEditorData()

Gets editor specific data stored with this system.

Public function

UNiagaraEdit...

 

GetEditorParameters()

Gets editor specific parameters stored with this system

Public function Const

UNiagaraEffe...

 

GetEffectType()

Public function Const

const TArray...

 

GetEmitterCompiledData()

Public function Const

TConstArrayV...

 

GetEmitterExecutionOrder()

Public function Const

TConstArrayV...

 

GetEmitterExecutionStateAccessors()

Public function

FNiagaraEmit...

 

GetEmitterHandle

(
    int Idx
)

Public function Const

const FNiaga...

 

GetEmitterHandle

(
    int Idx
)

Public function

const TArray...

 

GetEmitterHandles()

Gets an array of the emitter handles.

Public function Const

const TArray...

 

GetEmitterHandles()

Gets an array of the emitter handles.

Public function Const

TConstArrayV...

 

GetEmitterSpawnInfoAccessors

(
    int32 EmitterIndex
)

Public function Const

const FNiaga...

 

GetExposedParameters()

From the last compile, what are the variables that were exported out of the system for external use?

Public function

FNiagaraUser...

 

GetExposedParameters()

Public function Const

FBox

 

GetFixedBounds()

Public function Const

bool

 

GetIsolateEnabled()

Public function Const

TOptional< f...

 

GetMaxDeltaTime()

Public function Const

const TMap< ...

 

GetMessages()

Public function

int

 

GetNumEmitters()

Public function Const

bool

 

GetOverrideScalabilitySettings()

Public function

UNiagaraPara...

 

GetParameterCollectionOverride

(
    UNiagaraParameterCollection* C...
)

Public function Const

TConstArrayV...

 

GetRendererCompletionOrder()

Public function Const

TConstArrayV...

 

GetRendererDrawOrder()

Public function Const

TConstArrayV...

 

GetRendererPostTickOrder()

Public function

const FNiaga...

 

GetScalabilitySettings()

Public function Const

TStatId

 

GetStatID

(
    bool bGameThread,
    bool bConcurrent
)

Public function Const

const FNiaga...

 

GetSystemCompiledData()

Public function Const

const FNiaga...

 

GetSystemExecutionStateAccessor()

Public function Const

const UNiaga...

 

GetSystemSpawnScript()

Public function

UNiagaraScri...

 

GetSystemSpawnScript()

Gets the System script which is used to populate the System parameters and parameter bindings.

Public function Const

const UNiaga...

 

GetSystemUpdateScript()

Public function

UNiagaraScri...

 

GetSystemUpdateScript()

Public function Const

const TArray...

 

GetUserDINamesReadInSystemScripts()

Public function Const

int32

 

GetWarmupTickCount()

Public function Const

float

 

GetWarmupTickDelta()

Public function Const

float

 

GetWarmupTime()

Public function

void

 

HandleVariableRemoved

(
    const FNiagaraVariable& InOldVaria...,
    bool bUpdateContexts
)

Helper method to handle when an internal variable has been removed.

Public function

void

 

HandleVariableRenamed

(
    const FNiagaraVariable& InOldVaria...,
    const FNiagaraVariable& InNewVaria...,
    bool bUpdateContexts
)

Helper method to handle when an internal variable has been renamed.

Public function Const

bool

 

HasAnyGPUEmitters()

Public function Const

bool

 

HasDIsWithPostSimulateTick()

Public function Const

bool

 

HasOutstandingCompilationRequests

(
    bool bIncludingGPUShaders
)

Are there any pending compile requests?

Public function Const

bool

 

HasSystemScriptDIsWithPerInstanceData()

Public function

void

 

InvalidateActiveCompiles()

Invalidates any active compilation requests which will ignore their results.

Public function Const

bool

 

IsLooping()

Public function Const

bool

 

IsReadyToRun()

Public function Const

bool

 

IsValid()

Returns true if this system is valid and can be instanced. False otherwise.

Public function Const

bool

 

NeedsGPUContextInitForDataInterfaces()

Public function Const

bool

 

NeedsSortedSignificanceCull()

Public function Const

bool

 

NeedsWarmup()

Public function

void

 

OnScalabilityCVarChanged()

Public function

FOnSystemCom...

 

OnSystemCompiled()

Delegate called when the system's dependencies have all been compiled.

Public function

FOnSystemPos...

 

OnSystemPostEditChange()

Delegate called on PostEditChange.

Public function

bool

 

PollForCompilationComplete()

If we have a pending compile request, is it done with yet?

Public function Static

void

 

RecomputeExecutionOrderForDataInterface

(
    UNiagaraDataInterface* DataInt...
)

Public function Static

void

 

RecomputeExecutionOrderForEmitter

(
    UNiagaraEmitter* InEmitter
)

Public function

bool

 

ReferencesInstanceEmitter

(
    UNiagaraEmitter& Emitter
)

Determines if this system has the supplied emitter as an editable and simulating emitter instance.

Public function

void

 

RefreshSystemParametersFromEmitter

(
    const FNiagaraEmitterHandle& Emitt...
)

Updates the system's rapid iteration parameters from a specific emitter.

Public function

void

 

RegisterActiveInstance()

Public function

void

 

RemoveEmitterHandle

(
    const FNiagaraEmitterHandle& Emitt...
)

Removes the provided emitter handle.

Public function

void

 

RemoveEmitterHandlesById

(
    const TSet< FGuid >& HandlesToRemo...
)

Removes the emitter handles which have an Id in the supplied set.

Public function

void

 

RemoveMessage

(
    const FGuid& MessageKey
)

Public function

void

 

RemoveMessageDelegateable

(
    const FGuid MessageKey
)

Public function

void

 

RemoveSystemParametersForEmitter

(
    const FNiagaraEmitterHandle& Emitt...
)

Removes the system's rapid iteration parameters for a specific emitter.

Public function

bool

 

RequestCompile

(
    bool bForce,
    FNiagaraSystemUpdateContext* O...
)

Request that any dirty scripts referenced by this system be compiled.

Public function Static

void

 

RequestCompileForEmitter

(
    UNiagaraEmitter* InEmitter
)

Public function

void

 

SetBakerGeneratedSettings

(
    UNiagaraBakerSettings* Setting...
)

Public function

void

 

SetEffectType

(
    UNiagaraEffectType* EffectType
)

Public function

void

 

SetFixedBounds

(
    const FBox& Box
)

Public function

void

 

SetIsolateEnabled

(
    bool bIsolate
)

Public function

void

 

SetOverrideScalabilitySettings

(
    bool bOverride
)

Public function Const

bool

 

ShouldAutoDeactivate()

Public function

void

 

UnregisterActiveInstance()

Public function

void

 

UpdateSystemAfterLoad()

Public function Const

bool

 

UsesCollection

(
    const UNiagaraParameterCollection&...
)

Public function Const

bool

 

UsesEmitter

(
    const UNiagaraEmitter* Emitter
)

Public function Const

bool

 

UsesScript

(
    const UNiagaraScript* Script
)

Public function

void

 

WaitForCompilationComplete

(
    bool bIncludingGPUShaders,
    bool bShowProgress
)

Blocks until all active compile jobs have finished

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

void

 

PostEditChangeProperty

(
    FPropertyChangedEvent& PropertyCha...
)

Called when a property on this object has been modified externally

Public function Virtual

void

 

PostInitProperties()

Called after the C++ constructor and after the properties have been initialized, including those loaded from config.

Public function Virtual

void

 

PostLoad()

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

Public function Virtual

void

 

PreEditChange

(
    FProperty* PropertyAboutToChan...
)

This is called when a property is about to be modified externally

Public function Virtual

void

 

PreSave

(
    const ITargetPlatform* TargetP...
)

Presave function.

Public function Virtual

void

 

Serialize

(
    FArchive& Ar
)

Handles reading, writing, and reference collecting using FArchive.

Overridden from INiagaraParameterDefinitionsSubscriber

Name Description

Public function Virtual

TArray< UNia...

 

GetAllSourceScripts()

Get all UNiagaraScriptSourceBase of this subscriber.

Public function Virtual

TArray< UNia...

 

GetEditorOnlyParametersAdapters()

Get All adapters to editor only script vars owned directly by this subscriber.

Public function Virtual

TArray< INia...

 

GetOwnedParameterDefinitionsSubscribers()

Get all subscribers that are owned by this subscriber.

Public function Virtual

TArray< FPar...

 

GetParameterDefinitionsSubscriptions()

Public function Virtual Const

const TArray...

 

GetParameterDefinitionsSubscriptions()

Public function Virtual Const

FString

 

GetSourceObjectPathName()

Get the path to the UObject of this subscriber.

Typedefs

Constants

Name

Description

kStartNewOverlapGroupBit

When an index inside the EmitterExecutionOrder array has this bit set, it means the corresponding emitter cannot execute in parallel with the previous emitters due to a data dependency.

Deprecated Variables

Name Description

Public variable UProperty

bool

 

bIsTemplateAsset_DEPRECATED

Protected variable UProperty

TArray< FNiagar...

 

ScalabilityOverrides_DEPRECATED

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