NiagaraToolsets.NiagaraToolset_Assets¶
Niagara Toolset for discovery of Niagara script assets.
Provides: - GetAssetDiscoveryInfo: project-configured asset discovery groups - FindNiagaraScripts: asset registry search filtered by usage, visibility, name, and module usage bitmask - GetNiagaraScriptDigest: decoded asset-registry tags for a single script
All functions read from the asset registry without LoadObject. Pair with NiagaraToolset_System.AddModule to drop discovered modules into a stack.
Note: FAssetData JSON serialization does not include the TagsAndValues map (it is not a UPROPERTY), so callers wanting decoded metadata for a result row from FindNiagaraScripts must round-trip through GetNiagaraScriptDigest.
3 tool(s).
NiagaraToolsets.NiagaraToolset_Assets.FindNiagaraScripts¶
Searches for UNiagaraScript assets matching the given filters.
Reads filterable metadata from asset registry tags only - no LoadObject required.
Tags reflect the exposed (published) version of versioned scripts; this function does not need a version filter and there is no way to discover non-exposed versions through the asset registry.
Input schema
{
"properties": {
"bIncludeDeprecated": {
"description": "If false (default usage), assets whose exposed version has bDeprecated=true are excluded. Pass true only when the caller explicitly wants to surface deprecated assets (e.g. searching for the canonical replacement of a known deprecated module).",
"type": "boolean"
},
"bRecursive": {
"description": "Whether to search subfolders. Ignored when FolderPath is empty (whole-project scan is always exhaustive).",
"type": "boolean"
},
"folderPath": {
"description": "The folder to search within. Pass an empty string to search the entire project.",
"type": "string"
},
"moduleUsageBitmask": {
"description": "If non-zero, restricts results to Module scripts whose ModuleUsageBitmask shares at least one bit with this argument (any-match). Non-Module scripts are excluded when this is non-zero. Pass 0 to disable the bitmask gate.",
"type": "integer"
},
"name": {
"description": "If non-empty, only return assets whose name contains this substring (case-insensitive).",
"type": "string"
},
"usages": {
"description": "If non-empty, only return assets whose Usage matches one of the listed values. Empty array = all usages allowed.",
"items": {
"enum": [
"Function",
"Module",
"DynamicInput",
"ParticleSpawnScript",
"ParticleSpawnScriptInterpolated",
"ParticleUpdateScript",
"ParticleEventScript",
"ParticleSimulationStageScript",
"ParticleGPUComputeScript",
"EmitterSpawnScript",
"EmitterUpdateScript",
"SystemSpawnScript",
"SystemUpdateScript"
],
"title": "ENiagaraScriptUsage",
"type": "string"
},
"type": "array"
},
"visibilities": {
"description": "If non-empty, only return assets whose LibraryVisibility matches one of the listed values. Empty array defaults to {Library} (the editor's \"Exposed\") - explicit override required to surface Unexposed or Hidden scripts.",
"items": {
"enum": [
"Invalid",
"Unexposed",
"Library",
"Hidden"
],
"title": "ENiagaraScriptLibraryVisibility",
"type": "string"
},
"type": "array"
}
},
"required": [
"folderPath",
"name",
"usages",
"visibilities",
"moduleUsageBitmask",
"bRecursive",
"bIncludeDeprecated"
],
"type": "object"
}
Output schema
{
"properties": {
"returnValue": {
"description": "Array of AssetData entries for matching scripts. Use GetNiagaraScriptDigest to decode tag metadata for any row.",
"items": {
"properties": {
"assetClass": {
"type": "string"
},
"assetClassPath": {
"description": "The path of the asset's class, e.g. /Script/Engine.StaticMesh",
"properties": {
"assetName": {
"description": "Name of the asset within the package e.g. 'AssetName'",
"type": "string"
},
"packageName": {
"description": "Name of the package containing the asset e.g. /Path/To/Package",
"type": "string"
}
},
"required": [
"packageName",
"assetName"
],
"title": "TopLevelAssetPath",
"type": "object"
},
"assetName": {
"description": "The name of the asset without the package",
"type": "string"
},
"objectPath": {
"type": "string"
},
"packageName": {
"description": "The name of the package in which the asset is found, this is the full long package name such as /Game/Path/Package",
"type": "string"
},
"packagePath": {
"description": "The path to the package in which the asset is found, this is /Game/Path with the Package stripped off",
"type": "string"
}
},
"required": [
"objectPath",
"packageName",
"packagePath",
"assetName",
"assetClass",
"assetClassPath"
],
"title": "AssetData",
"type": "object"
},
"type": "array"
}
},
"required": [
"returnValue"
],
"type": "object"
}
NiagaraToolsets.NiagaraToolset_Assets.GetAssetDiscoveryInfo¶
Returns the project's configured asset discovery groups. Each group describes a content directory's purpose and paths.
Input schema
{
"type": "object"
}
Output schema
{
"properties": {
"returnValue": {
"description": "Configured asset discovery groups, or an empty array if none are configured in NiagaraToolsetsSettings.",
"items": {
"properties": {
"description": {
"description": "Description of what types of assets are in these paths and when to use them",
"type": "string"
},
"paths": {
"description": "Content directory paths containing assets for this group",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"description",
"paths"
],
"title": "NiagaraToolsetAssetDiscoveryGroup",
"type": "object"
},
"type": "array"
}
},
"required": [
"returnValue"
],
"type": "object"
}
NiagaraToolsets.NiagaraToolset_Assets.GetNiagaraScriptDigest¶
Returns the decoded asset-registry tag metadata for a Niagara script asset.
Looks up the asset by object path in the asset registry and reads its tags; no LoadObject is performed. Returned fields reflect the exposed (published) version when the script uses FVersionedNiagaraScriptData versioning - the registry never carries non-exposed-version metadata.
Input schema
{
"properties": {
"objectPath": {
"description": "Full object path of the script (e.g. \"/Niagara/Modules/Spawn/Initialize Particle.Initialize Particle\").",
"type": "string"
}
},
"required": [
"objectPath"
],
"type": "object"
}
Output schema
{
"properties": {
"returnValue": {
"description": "Decoded digest. If the path is invalid or not a UNiagaraScript, an error is raised and a default-initialized digest is returned.",
"properties": {
"assetName": {
"description": "Asset name without package",
"type": "string"
},
"bDeprecated": {
"description": "True if the script is marked deprecated",
"type": "boolean"
},
"bSuggested": {
"description": "True if the script is marked suggested",
"type": "boolean"
},
"category": {
"description": "Library category text (empty if unset)",
"type": "string"
},
"description": {
"description": "Library description text (empty if unset)",
"type": "string"
},
"keywords": {
"description": "Library search keywords (empty if unset)",
"type": "string"
},
"libraryVisibility": {
"description": "Library visibility: Unexposed, Library (= \"Exposed\" in editor UI), or Hidden",
"enum": [
"Invalid",
"Unexposed",
"Library",
"Hidden"
],
"title": "ENiagaraScriptLibraryVisibility",
"type": "string"
},
"moduleUsageBitmask": {
"description": "Bitmask of stack contexts a Module is compatible with. 0 for non-Module scripts.",
"type": "integer"
},
"objectPath": {
"description": "Full object path: /Path/To/Package.AssetName",
"type": "string"
},
"packageName": {
"description": "Long package name: /Path/To/Package",
"type": "string"
},
"usage": {
"description": "Script kind: Module, DynamicInput, Function, or one of the stage scripts",
"enum": [
"Function",
"Module",
"DynamicInput",
"ParticleSpawnScript",
"ParticleSpawnScriptInterpolated",
"ParticleUpdateScript",
"ParticleEventScript",
"ParticleSimulationStageScript",
"ParticleGPUComputeScript",
"EmitterSpawnScript",
"EmitterUpdateScript",
"SystemSpawnScript",
"SystemUpdateScript"
],
"title": "ENiagaraScriptUsage",
"type": "string"
}
},
"required": [
"objectPath",
"packageName",
"assetName",
"usage",
"libraryVisibility",
"moduleUsageBitmask",
"category",
"description",
"keywords",
"bDeprecated",
"bSuggested"
],
"title": "NiagaraExt_ScriptDigest",
"type": "object"
}
},
"required": [
"returnValue"
],
"type": "object"
}