FNiagaraCustomVersion

Namespace: UAssetAPI.CustomVersions

public enum FNiagaraCustomVersion

Inheritance ObjectValueTypeEnumFNiagaraCustomVersion
Implements IComparable, ISpanFormattable, IFormattable, IConvertible

Fields

NameValueDescription
BeforeCustomVersionWasAdded0Before any version changes were made in niagara
VMExternalFunctionBindingRework1Reworked vm external function binding to be more robust.
PostLoadCompilationEnabled2Making all Niagara files reference the version number, allowing post loading recompilation if necessary.
VMExternalFunctionBindingReworkPartDeux3Moved some runtime cost from external functions into the binding step and used variadic templates to neaten that code greatly.
DataInterfacePerInstanceRework4Moved per instance data needed for certain data interfaces out to it's own struct.
NiagaraShaderMaps5Added shader maps and corresponding infrastructure
UpdateSpawnEventGraphCombination6Combined Spawn, Update, and Event scripts into one graph.
DataSetLayoutRework7Reworked data layout to store float and int data separately.
AddedEmitterAndSystemScripts8Reworked scripts to support emitter and system scripts
ScriptExecutionContextRework9Rework of script execution contexts to allow better reuse and reduce overhead of parameter handling.
RemovalOfNiagaraVariableIDs10Removed the Niagara variable ID's making hookup impossible until next compile
SystemEmitterScriptSimulations11System and emitter script simulations.
IntegerRandom12Adding integer random to VM. TODO: The vm really needs its own versioning system that will force a recompile when changes.
AddedEmitterSpawnAttributes13Added emitter spawn attributes
NiagaraShaderMapCooking14cooking of shader maps and corresponding infrastructure
NiagaraShaderMapCooking215don't serialize shader maps for system scripts
AddedScriptRapidIterationVariables16Added script rapid iteration variables, usually top-level module parameters...
AddedTypeToDataInterfaceInfos17Added type to data interface infos
EnabledAutogeneratedDefaultValuesForFunctionCallNodes18Hooked up autogenerated default values for function call nodes.
CurveLUTNowOnByDefault19Now curve data interfaces have look-up tables on by default.
ScriptsNowUseAGuidForIdentificationInsteadOfAnIndex20Scripts now use a guid for identification instead of an index when there are more than one with the same usage.
NiagaraCombinedGPUSpawnUpdate21don't serialize shader maps for update scripts
DontCompileGPUWhenNotNeeded22don't serialize shader maps for emitters that don't run on gpu.
NowSerializingReadWriteDataSets24We weren't serializing event data sets previously.
TranslatorClearOutBetweenEmitters25Forcing the internal parameter map vars to be reset between emitter calls.
AddSamplerDataInterfaceParams26added sampler shader params based on DI buffer descriptors
GPUShadersForceRecompileNeeded27Need to force the GPU shaders to recompile
PlaybackRangeStoredOnSystem28The playback range for the timeline is now stored in the system editor data.
MovedToDerivedDataCache29All cached values will auto-recompile.
DataInterfacesNotAllocated30Data interfaces are preallocated
EmittersHaveGenericUniqueNames31emitter scripts are built using "Emitter." instead of the full name.
MovingTranslatorVersionToGuid32no longer have compiler version enum value in this list, instead moved to a guid, which works better for the DDC
AddingParamMapToDataSetBaseNode33adding a parameter map in/out to the data set base node
DataInterfaceComputeShaderParamRefactor34refactor of CS parameters allowing regular params as well as buffers.
CurveLUTRegen35bumping version and forcing curves to regen their LUT on version change.
AssignmentNodeUsesBeginDefaults36Changing the graph generation for assignment nodes so that it uses a "Begin Defaults" node where appropriate.
AssignmentNodeHasCorrectUsageBitmask37Updating the usage flage bitmask for assignment nodes to match the part of the stack it's used in.
EmitterLocalSpaceLiteralConstant38Emitter local space is compiled into the hlsl as a literal constant to expose it to emitter scripts and allow for some better optimization of particle transforms.
TextureDataInterfaceUsesCustomSerialize39The cpu cache of the texture is now directly serialized instead of using array property serialization.
TextureDataInterfaceSizeSerialize40The texture data interface now streams size info
SkelMeshInterfaceAPIImprovements41API to skeletal mesh interface was improved but requires a recompile and some graph fixup.
ImproveLoadTimeFixupOfOpAddPins42Only do op add pin fixup on existing nodes which are before this version
MoveCommonInputMetadataToProperties43Moved commonly used input metadata out of the strin/string property metadata map to actual properties on the metadata struct.
UseHashesToIdentifyCompileStateOfTopLevelScripts44Move to using the traversed graph hash and the base script id for the FNiagaraVMExecutableDataId instead of the change id guid to prevent invalidating the DDC.
MetaDataAndParametersUpdate45Reworked how the metadata is stored in NiagaraGraph from storing a Map of FNiagaraVariableMetaData to storing a map of UNiagaraScriptVariable* to be used with the Details panel.
MoveInheritanceDataFromTheEmitterHandleToTheEmitter46Moved the emitter inheritance data from the emitter handle to the emitter to allow for chained emitter inheritance.
AddLibraryAssetProperty47Add property to all Niagara scripts indicating whether or not they belong to the library
AddAdditionalDefinesProperty48Addding additional defines to the GPU script
RemoveGraphUsageCompileIds49Remove the random compile id guids from the cached script usage and from the compile and script ids since the hashes serve the same purpose and are deterministic.
AddRIAndDetailLevel50Adding UseRapidIterationParams and DetailLevelMask to the GPU script
ChangeEmitterCompiledDataToSharedRefs51Changing the system and emitter compiled data to shared pointers to deal with lifetime issues in the editor. They now are handled directly in system serialize.
DisableSortingByDefault52Sorting on Renderers is disabled by default, we add a version to maintain existing systems that expected sorting to be enabled
MemorySaving53Convert TMap into TArray to save memory, TMap contains an inline allocator which pushes the size to 80 bytes
AddSimulationStageUsageEnum54Added a new value to the script usage enum, and we need a custom version to fix the existing bitfields.
AddGeneratedFunctionsToGPUParamInfo55Save the functions generated by a GPU data interface inside FNiagaraDataInterfaceGPUParamInfo
PlatformScalingRefactor56Removed DetailLevel in favor of FNiagaraPlatfomSet based selection of per platform settings.
PrecompileNamespaceFixup57Promote parameters used across script executions to the Dataset, and Demote unused parameters.
FixNullScriptVariables58Postload fixup in UNiagaraGraph to fixup VariableToScriptVariable map entries being null.
PrecompileNamespaceFixup259Move FNiagaraVariableMetaData from storing scope enum to storing registered scope name.
SimulationStageInUsageBitmask60Enable the simulation stage flag by default in the usage bitmask of modules and functions
StandardizeParameterNames61Fix graph parameter map parameters on post load so that they all have a consisten parsable format and update the UI to show and filter based on these formats.
ComponentsOnlyHaveUserVariables62Make sure that UNiagaraComponents only have override maps for User variables.
RibbonRendererUVRefactor63Refactor the options for UV settings on the ribbon renderer.
VariablesUseTypeDefRegistry64Replace the TypeDefinition in VariableBase with an index into the type registry
AddLibraryVisibilityProperty65Expand the visibility options of the scripts to be able to hide a script completely from the user
ModuleVersioning67Added support for multiple versions of script data
ChangeSystemDeterministicDefault69Changed the default mode from deterministic to non-deterministic which matches emitters
StaticSwitchFunctionPinsUsePersistentGuids70Update static switch pins to use the PersistentId from their script variable so that when they're renamed their values aren't lost when reallocating pins.
VisibilityCullingImprovements71Extended visibility culling options and moved properties into their own struct.
PopulateFunctionCallNodePinNameBindings73Function call node refresh from external changes has been refactored so that they don't need to populate their name bindings every load.
ComponentRendererSpawnProperty74Changed the default value for the component renderer's OnlyCreateComponentsOnParticleSpawn property
RepopulateFunctionCallNodePinNameBindings75Previous repopulate didn't handle module attributes like Particles.Module.Name so they need to be repopulated for renaming to work correctly.
EventSpawnsUpdateInitialAttributeValues76Event spawns now optionally update Initial. attribute values. New default is true but old data is kept false to maintain existing behavior.
AddVariadicParametersToGPUFunctionInfo77Adds list of variadic parameters to the information about GPU functions.
DynamicPinNodeFixup78Some data fixup for NiagaraNodeWithDynamicPins.
RibbonRendererLinkOrderDefaultIsUniqueID79Ribbon renderer will default to unique ID rather than normalized age to make more things 'just work'
SubImageBlendEnabledByDefault80Renderer SubImage Blends are enabled by default
RibbonPlaneUseGeometryNormals81Ribbon renderer will use geometry normals by default rather than screen / facing aligned normals
InitialOwnerVelocityFromActor82Actors velocity is used for the initial velocity before the component has any tracking, old assets use the old zero velocity
ParameterBindingWithValueRenameFixup83FNiagaraParameterBindingWithValue wouldn't necessarily have the appropriate ResolvedParameter namespace when it comes to emitter merging
SimCache_BulkDataVersion184Sim Cache moved to bulk data by default
InheritanceUxRefactor85Decoupling of 'Template' and 'Inheritance'
NDCSpawnGroupOverrideDisabledByDefault86NDC Read DIs will not override spawn group by default when spawning particles. Old content will remain unchanged.
VersionPlusOne87DO NOT ADD A NEW VERSION UNLESS YOU HAVE TALKED TO THE NIAGARA LEAD. Mismanagement of these versions can lead to data loss if it is adjusted in multiple streams simultaneously. -----new versions can be added above this line-------------------------------------------------