Skip to content

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"
}