SF
STS Forge

Specialized

Specialized verbs: Niagara parameters, Enhanced Input, config management, gameplay tags, texture export.

Back to AI Guide

Specialized verbs for Niagara VFX parameters, Enhanced Input asset creation, engine/project config INI access, gameplay tag registry management, and texture export. Niagara and Enhanced Input verbs are conditionally compiled and require their respective plugins in the engine.


Niagara verbs (2)#

Requires the Niagara plugin (BAA_WITH_NIAGARA). These verbs will not appear in the verb list if Niagara is not present.

niagara-list-params#

List user parameters on a NiagaraSystem or NiagaraEmitter.

Category: Read (Niagara)

Args:

Arg Required Description
-asset= Yes Niagara asset path (NiagaraSystem or NiagaraEmitter)

Examples:

-verb=niagara-list-params -asset=/Game/FX/NS_MuzzleFlash

Output:

{
    "success": true,
    "assetType": "NiagaraSystem",
    "parameters": [
        { "name": "User.Color", "type": "LinearColor" },
        { "name": "User.SpawnRate", "type": "Float" },
        { "name": "User.LifetimeMultiplier", "type": "Float" }
    ]
}

niagara-set-param#

Set a user parameter value on a NiagaraSystem or NiagaraEmitter.

Category: Write (Niagara)

Args:

Arg Required Description
-asset= Yes Niagara asset path
-name= Yes Parameter name (e.g., User.SpawnRate)
-value= Yes Value as string (parsed based on parameter type)
-type= No Override the auto-detected type (e.g., Float, LinearColor, Vector)

Examples:

# Set a float parameter
-verb=niagara-set-param -asset=/Game/FX/NS_MuzzleFlash -name=User.SpawnRate -value=500.0 -save

# Set a color parameter
-verb=niagara-set-param -asset=/Game/FX/NS_MuzzleFlash -name=User.Color -value="(R=1.0,G=0.5,B=0.0,A=1.0)" -save

# Override auto-detected type
-verb=niagara-set-param -asset=/Game/FX/NS_Trail -name=User.Width -value=10.0 -type=Float -save

Batch example: configure a Niagara system's parameters in one commandlet run:

{
    "defaultAsset": "/Game/FX/NS_MuzzleFlash",
    "operations": [
        { "verb": "niagara-set-param", "args": { "name": "User.SpawnRate", "value": "500.0" } },
        { "verb": "niagara-set-param", "args": { "name": "User.LifetimeMultiplier", "value": "1.5" } },
        { "verb": "niagara-set-param", "args": { "name": "User.Color", "value": "(R=1.0,G=0.8,B=0.2,A=1.0)" } }
    ],
    "save": true
}

Enhanced Input verbs (3)#

Requires the EnhancedInput plugin (BAA_WITH_ENHANCED_INPUT). These verbs create Enhanced Input assets and bind keys within them.

create-input-action#

Create an InputAction asset. Idempotent: if the asset already exists at the specified path, the verb succeeds without overwriting it.

Category: Write (Enhanced Input)

Args:

Arg Required Description
-asset= Yes Content path for the new InputAction (e.g., /Game/Input/IA_Jump)
-valuetype= No Value type: Bool (default), Float1D/Axis1D/Float, Vector2D/Axis2D, Vector3D/Axis3D

Examples:

# Create a simple boolean action (press/release)
-verb=create-input-action -asset=/Game/Input/IA_Jump

# Create a 1D axis action for throttle/brake
-verb=create-input-action -asset=/Game/Input/IA_MoveForward -valuetype=Float1D

# Create a 2D axis action for mouse look
-verb=create-input-action -asset=/Game/Input/IA_Look -valuetype=Vector2D

create-input-mapping#

Create an InputMappingContext asset. Idempotent: if the asset already exists, the verb succeeds without overwriting it.

Category: Write (Enhanced Input)

Args:

Arg Required Description
-asset= Yes Content path for the new IMC (e.g., /Game/Input/IMC_Default)

Examples:

-verb=create-input-mapping -asset=/Game/Input/IMC_Default
-verb=create-input-mapping -asset=/Game/Input/IMC_Vehicle

input-map-key#

Map a key to an InputAction within an InputMappingContext. Adds the mapping entry linking a physical key to a logical action.

Category: Write (Enhanced Input)

Args:

Arg Required Description
-asset= Yes IMC asset path
-action= Yes InputAction asset path to bind
-key= Yes UE key name (e.g., SpaceBar, LeftMouseButton, Gamepad_FaceButton_Bottom, W, A, S, D)

Examples:

# Map spacebar to jump
-verb=input-map-key -asset=/Game/Input/IMC_Default -action=/Game/Input/IA_Jump -key=SpaceBar -save

# Map left mouse button to fire
-verb=input-map-key -asset=/Game/Input/IMC_Default -action=/Game/Input/IA_Fire -key=LeftMouseButton -save

# Map gamepad face button
-verb=input-map-key -asset=/Game/Input/IMC_Default -action=/Game/Input/IA_Jump -key=Gamepad_FaceButton_Bottom -save

Batch example: create a complete input setup from scratch:

{
    "operations": [
        { "verb": "create-input-action", "args": { "asset": "/Game/Input/IA_Jump" } },
        { "verb": "create-input-action", "args": { "asset": "/Game/Input/IA_Fire", "valuetype": "Bool" } },
        { "verb": "create-input-action", "args": { "asset": "/Game/Input/IA_Move", "valuetype": "Vector2D" } },
        { "verb": "create-input-mapping", "args": { "asset": "/Game/Input/IMC_Default" } },
        { "verb": "input-map-key", "args": { "asset": "/Game/Input/IMC_Default", "action": "/Game/Input/IA_Jump", "key": "SpaceBar" } },
        { "verb": "input-map-key", "args": { "asset": "/Game/Input/IMC_Default", "action": "/Game/Input/IA_Fire", "key": "LeftMouseButton" } },
        { "verb": "input-map-key", "args": { "asset": "/Game/Input/IMC_Default", "action": "/Game/Input/IA_Move", "key": "W" } },
        { "verb": "input-map-key", "args": { "asset": "/Game/Input/IMC_Default", "action": "/Game/Input/IA_Move", "key": "S" } }
    ],
    "save": true
}

Config verbs (3)#

Read and write engine/project configuration (INI) values. These operate on the project's Config/ directory files without loading a full editor session.

config-get#

Read a config/INI value.

Category: Read (Config)

Args:

Arg Required Description
-asset= No Not used (ignored if provided)
-file= Yes Config file: Game, Engine, Input, Editor (shortcuts), or a direct file path
-section= Yes INI section name (e.g., /Script/Engine.GameMapsSettings)
-key= Yes Key name

Examples:

# Read the default map
-verb=config-get -file=Game -section=/Script/EngineSettings.GameMapsSettings -key=GameDefaultMap

# Read a custom gameplay setting
-verb=config-get -file=Game -section=/Script/CombatDemo.CombatSettings -key=MaxPlayersPerTeam

# Read from Engine config
-verb=config-get -file=Engine -section=/Script/Engine.GarbageCollectionSettings -key=gc.MaxObjectsInGame

Output:

{
    "success": true,
    "file": "Game",
    "section": "/Script/EngineSettings.GameMapsSettings",
    "key": "GameDefaultMap",
    "value": "/Game/Maps/MainMenu"
}

config-set#

Set a config/INI value. Creates the section and key if they do not exist.

Category: Write (Config)

Args:

Arg Required Description
-file= Yes Config file (same shortcuts as config-get, or a direct path)
-section= Yes INI section name
-key= Yes Key name
-value= Yes Value to set

Examples:

# Set the default map
-verb=config-set -file=Game -section=/Script/EngineSettings.GameMapsSettings -key=GameDefaultMap -value=/Game/Maps/Lobby

# Set a custom gameplay config value
-verb=config-set -file=Game -section=/Script/CombatDemo.CombatSettings -key=MaxPlayersPerTeam -value=5

# Set an engine config value
-verb=config-set -file=Engine -section=/Script/Engine.InputSettings -key=bEnableMouseSmoothing -value=False

config-list#

List all keys in a config/INI section.

Category: Read (Config)

Args:

Arg Required Description
-file= Yes Config file (same shortcuts as config-get, or a direct path)
-section= Yes INI section name

Examples:

-verb=config-list -file=Game -section=/Script/EngineSettings.GameMapsSettings
-verb=config-list -file=Engine -section=/Script/Engine.InputSettings

Output:

{
    "success": true,
    "file": "Game",
    "section": "/Script/EngineSettings.GameMapsSettings",
    "keys": [
        { "key": "GameDefaultMap", "value": "/Game/Maps/MainMenu" },
        { "key": "GlobalDefaultGameMode", "value": "/Game/Blueprints/BP_GameMode.BP_GameMode_C" },
        { "key": "GlobalDefaultServerGameMode", "value": "" }
    ]
}

Batch example: read multiple config values in one commandlet run:

{
    "operations": [
        { "verb": "config-get", "args": { "file": "Game", "section": "/Script/EngineSettings.GameMapsSettings", "key": "GameDefaultMap" } },
        { "verb": "config-get", "args": { "file": "Game", "section": "/Script/EngineSettings.GameMapsSettings", "key": "GlobalDefaultGameMode" } },
        { "verb": "config-get", "args": { "file": "Engine", "section": "/Script/Engine.InputSettings", "key": "bEnableMouseSmoothing" } }
    ]
}

Gameplay Tag verbs (3)#

Manage the project's gameplay tag registry. These verbs add, remove, and list tags in the project tag INI file. No -asset parameter is needed; they operate on the project-wide tag registry.

tag-add#

Add a gameplay tag to the project's tag registry.

Category: Write (Tags)

Args:

Arg Required Description
-tag= Yes Tag string (e.g., Ability.Skill.Fireball)
-comment= No Tag comment/description

Examples:

# Add a simple tag
-verb=tag-add -tag=Ability.Skill.Fireball

# Add a tag with a description
-verb=tag-add -tag=Ability.Skill.Fireball -comment="Fireball projectile ability"

# Add a state tag
-verb=tag-add -tag=State.Dead -comment="Character is dead, cannot act"

Notes:

  • Idempotent: adding an existing tag succeeds without error.
  • Parent tags in the hierarchy are created implicitly (e.g., adding Ability.Skill.Fireball ensures Ability and Ability.Skill exist).

tag-remove#

Remove a gameplay tag from the registry. Idempotent: if the tag does not exist, the verb succeeds without error.

Category: Write (Tags)

Args:

Arg Required Description
-tag= Yes Tag string to remove

Examples:

-verb=tag-remove -tag=Ability.Skill.Fireball
-verb=tag-remove -tag=State.Deprecated.OldState

tag-list#

List gameplay tags, optionally filtered by a prefix.

Category: Read (Tags)

Args:

Arg Required Description
-filter= No Prefix filter (supports * wildcard suffix, e.g., Ability.*)

Examples:

# List all tags
-verb=tag-list

# List only ability tags
-verb=tag-list -filter=Ability.*

# List state tags
-verb=tag-list -filter=State.*

# List weapon-related tags
-verb=tag-list -filter=Ability.Weapon.*

Output:

{
    "success": true,
    "filter": "Ability.*",
    "tags": [
        { "tag": "Ability.Cooldown", "comment": "" },
        { "tag": "Ability.Skill.Fireball", "comment": "Fireball projectile ability" },
        { "tag": "Ability.Skill.Dash", "comment": "Dash movement ability" },
        { "tag": "Ability.Weapon.CanFire", "comment": "Weapon is ready to fire" },
        { "tag": "Ability.Weapon.Reloading", "comment": "Weapon is reloading" }
    ]
}

Batch example: register a set of gameplay tags for a new ability:

{
    "operations": [
        { "verb": "tag-add", "args": { "tag": "Ability.Skill.IceBlast", "comment": "Ice blast AoE ability" } },
        { "verb": "tag-add", "args": { "tag": "Ability.Cooldown.IceBlast", "comment": "Cooldown tag for Ice Blast" } },
        { "verb": "tag-add", "args": { "tag": "Effect.Slow.IceBlast", "comment": "Slow debuff from Ice Blast" } },
        { "verb": "tag-add", "args": { "tag": "GameplayCue.Ability.IceBlast", "comment": "VFX/SFX cue for Ice Blast" } }
    ]
}

Texture verbs (1)#

Export texture data from UE assets to standard image files on disk.

texture-export#

Export a texture asset to a file on disk. Supports multiple output formats and mip level selection.

Category: Read (Texture)

Args:

Arg Required Description
-asset= Yes Texture asset path
-format= No Output format: png (default), jpg/jpeg, bmp, exr
-mip= No Specific mip level index (0 = highest resolution)
-maxSize= No Auto-select the smallest mip level >= this pixel size
-out= No Output file path (auto-generated from asset name if omitted)

Examples:

# Export a texture as PNG (default format, auto-generated output path)
-verb=texture-export -asset=/Game/Textures/T_PlayerIcon

# Export as JPEG to a specific location
-verb=texture-export -asset=/Game/Textures/T_PlayerIcon -format=jpg -out=C:/Temp/player_icon.jpg

# Export a specific mip level
-verb=texture-export -asset=/Game/Textures/T_WorldMap -mip=2

# Export the smallest mip that is at least 256px
-verb=texture-export -asset=/Game/Textures/T_WorldMap -maxSize=256

# Export as EXR for HDR data (useful for lightmaps, height maps)
-verb=texture-export -asset=/Game/Textures/T_Heightmap -format=exr -out=C:/Temp/heightmap.exr

Output:

{
    "success": true,
    "asset": "/Game/Textures/T_PlayerIcon",
    "outputPath": "C:/Temp/T_PlayerIcon.png",
    "format": "png",
    "mipLevel": 0,
    "resolution": { "width": 512, "height": 512 }
}

Notes:

  • The verb reads the texture data from the cooked or source asset. It does not modify the asset.
  • When -out is omitted, the file is written to the project's Saved/ directory with a name derived from the asset path.
  • Use -maxSize when you need a quick thumbnail-sized export without knowing the exact mip structure. The verb picks the closest mip level that meets the size requirement.

Tips#

  • Conditional verbs may be absent. If niagara-list-params or create-input-action returns an unknown verb error, the required plugin is not compiled into the engine build. Check BAA_WITH_NIAGARA / BAA_WITH_ENHANCED_INPUT.
  • Config shortcuts save typing. Use Game, Engine, Input, Editor instead of full file paths for the four standard config files.
  • Tag hierarchy is implicit. Adding Ability.Skill.Fireball auto-creates parent tags. You do not need to add Ability and Ability.Skill separately.
  • Batch tag operations. When setting up a new ability or system, batch all tag-add calls in a single commandlet run to avoid repeated 30-60s startup costs.
  • Texture mip selection. Use -mip=0 for full resolution or -maxSize= for size-constrained exports. Omitting both defaults to mip level 0.