effect
Transient preview effects in the live world: debug shapes and dynamic lights.
What it's for
This namespace spawns short-lived visual helpers directly into the active world so you can see where something is, mark up a scene, or light a subject for a quick look. It draws debug shapes (spheres, boxes, arrows, cones, and more) at a location, creates dynamic light actors, and can sweep away the preview objects it made when you are done.
Reach for it when you want a temporary, in-editor annotation or a throwaway light rather than an authored, saved asset. Point your assistant at a spot and it will draw a marker there, drop a point or spot light to check how a mesh reads, then clear the clutter with a single cleanup pass keyed on the label prefix it used.
These are preview effects, not persistent particle authoring. For real Niagara systems, emitters,
renderers, parameters, and graph edits, use the niagara namespace with its read-first
inspect-then-edit workflow. For timeline-driven VFX baked into a cinematic, use
sequencer. Keep effect for transient shapes and lights in the live scene.
Examples
Mark a spot in the viewport
Drop a temporary sphere so you can see exactly where a location sits in the level.
You: Draw a red sphere at 0,0,300 so I can see the spawn point.
call("effect.draw_debug_shape", {preset:"marker", shapeType:"sphere",
location:[0,0,300], color:[255,0,0,255], size:150, duration:30})
→ {ok:true, shape:"sphere"}
Done. Red sphere drawn at the spawn point for 30 seconds.
Light a subject to check how it reads
Create a dynamic point light in the world without authoring a saved asset.
You: Add a bright point light above the drone to check the material.
call("effect.create_dynamic_light", {lightName:"PreviewKey", lightType:"Point",
location:[0,0,500], intensity:8000, color:[255,244,214,255]})
→ {ok:true, actor:"PreviewKey"}
Done. Point light PreviewKey created above the drone.
Clear away the preview clutter
Remove the temporary actors by their label prefix once you are finished looking.
You: Remove the preview lights I added.
call("effect.create_dynamic_light", {lightName:"Preview_Fill", lightType:"Spot",
location:[200,0,400], intensity:5000})
→ {ok:true, actor:"Preview_Fill"}
call("effect.cleanup", {filter:"Preview"})
→ {ok:true, removed:2}
Done. Removed 2 preview actors whose labels start with Preview.