| name | niagara-emitters |
| display_name | Niagara Emitters |
| description | Niagara emitter color/curve authoring (tint, hue-shift, ColorFromCurve keys), rapid-iteration parameter tuning, and Custom-HLSL scratch-pad authoring (NiagaraEmitterService + NiagaraScratchPadService). Module/renderer CRUD is owned by the engine NiagaraToolsets. Use when the user asks to recolor or hue-shift particles, edit color curves, tune emitter params, or build a scratch-pad/Custom HLSL module. For system-level lifecycle, load niagara-systems. |
| vibeue_classes | ["NiagaraEmitterService","NiagaraScratchPadService","NiagaraService"] |
| unreal_classes | ["NiagaraEmitter","NiagaraScript"] |
| keywords | ["niagara emitter","rapid iteration","particle spawn","particle update","emitter update","niagara color","color from curve","ColorFromCurve","color tint","hue shift","color curve keys","NiagaraEmitterService","NiagaraScratchPadService","scratch pad","scratch module","custom hlsl","parameter map get","parameter map set","niagara graph","splat","grid 2d","render target","set_color_tint","shift_color_hue","get_color_curve_keys","set_rapid_iteration_param","create_scratch_module","add_custom_hlsl_node","add_module_input","connect_pins"] |
🧠 Brains complement: IF an unreal-engine-skills-manager tool (external MCP) exists in this session, call it with {action: "load", skill: "niagara-vfx"} for UE domain knowledge on this topic — correct APIs, architecture, best practices — and treat it as the rubric for any review / "best practices" question. If no such tool is available (e.g. running under Claude Code or Codex without that MCP), skip this line entirely and proceed with this skill alone — do NOT attempt the call.
Niagara Emitters Skill
Architecture (read first): VibeUE extends Unreal's native MCP endpoint. Emitter module and
renderer CRUD (add/remove/enable/reorder modules, add/remove renderers, set module/renderer
inputs, search module scripts) are owned by the engine NiagaraToolsets.* toolsets, called
through call_tool. VibeUE's NiagaraEmitterService was trimmed to the color/curve authoring
the engine doesn't provide, plus a rapid-iteration-parameter reader.
VibeUE NiagaraEmitterService (this skill) keeps ONLY color/curve authoring + a param reader:
set_color_tint — add/set a ScaleColor tint (handles ColorFromCurve automatically)
get_color_curve_keys / set_color_curve_keys — read/replace ColorFromCurve keyframes
shift_color_hue — hue-rotate a ColorFromCurve while preserving detail (best for recolors)
get_rapid_iteration_parameters — read an emitter's rapid-iteration params
NiagaraScratchPadService authors scratch-pad module graphs:
- Create empty scratch modules on any stage
- Drop Map Get / Map Set / Op / Custom HLSL nodes
- Add typed pins, connect pins, declare module inputs/outputs
- Apply + recompile in one call
For module / renderer CRUD → engine NiagaraToolsets.* via call_tool (discover with
list_toolsets / describe_toolset). For system-level operations (create system, add emitters,
user params, compile) → engine NiagaraToolsets.* and the niagara-systems skill. Rapid-iteration
param writes (set_rapid_iteration_param*) live on (niagara-systems skill).