set_niagara_renderer_properties
Set Niagara renderer properties (Sprite/Mesh/Ribbon/Light/Decal) by reflection, applying supplied fields and triggering system compile and save.
Instructions
Author renderer UPROPERTYs on a Niagara renderer (Sprite/Mesh/Ribbon/Light/Decal) generically by reflection. Writes only the supplied fields onto the LIVE concrete renderer via MergeJsonWithClamp (FJsonObjectConverter + ClampMin/Max meta), then requests a system compile and saves. Enum writes (alignment/facing_mode/sort_mode/motion_vector_setting/decal_source_mode) also fire PostEditChangeProperty so derived state updates. Light/Decal scalar fields (radius_scale, affects_translucency, color_add, decal_screen_size_fade, decal_source_mode, ...) are covered here — use set_niagara_decal_renderer_material for the decal Material (object-ref). Keys not present on the concrete renderer class are reported in not_applicable (honest, not silently swallowed). Idempotent. Covers base renderer_enabled for free.
Returns: { system_path, emitter_name, renderer_index, renderer_class, applied:[prop names], not_applicable:[input keys], post_edit_fired: bool, properties:{round-trip dump}, save_error? }
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | No | Optional bool: base bIsEnabled (also accepted as renderer_enabled). | |
| alignment | No | Optional enum name (Sprite): Alignment (e.g. "Unaligned"/"VelocityAligned"/"CustomAlignment"/"Automatic"). | |
| color_add | No | Optional {x,y,z} or [x,y,z] (Light): ColorAdd (FVector3f RGB shift). | |
| sort_mode | No | Optional enum name (Sprite/Mesh): SortMode (e.g. "None"/"ViewDepth"/"ViewDistance"/"CustomAscending"/"CustomDescending"). | |
| facing_mode | No | Optional enum name (Sprite ENiagaraSpriteFacingMode or Mesh ENiagaraMeshFacingMode, resolved by class): FacingMode. | |
| locked_axis | No | Optional [x,y,z] or {X,Y,Z} (Mesh): LockedAxis. | |
| system_path | Yes | Asset path of the Niagara System. | |
| cast_shadows | No | Optional bool (Sprite): bCastShadows. | |
| emitter_name | Yes | Name of the emitter handle. | |
| radius_scale | No | Optional float (Light, ClampMin=0): RadiusScale. | |
| diffuse_scale | No | Optional float (Light, ClampMin=0): DiffuseScale. | |
| renderer_index | Yes | 0-based index of the renderer (use get_niagara_emitter_renderers). | |
| specular_scale | No | Optional float (Light, ClampMin=0): SpecularScale. | |
| sub_image_size | No | Optional [x,y] or {X,Y} (Sprite/Mesh): SubImageSize. | |
| macro_uv_radius | No | Optional float (Sprite): MacroUVRadius. | |
| sort_order_hint | No | Optional int: base SortOrderHint. | |
| default_exponent | No | Optional float (Light, ClampMin=0): DefaultExponent (used when use_inverse_squared_falloff=false). | |
| allow_mega_lights | No | Optional bool (Light): bAllowMegaLights. | |
| decal_source_mode | No | Optional enum name/int (Decal): SourceMode ("Particles"/"Emitter"); fires PostEditChangeProperty so UpdateSourceModeDerivates runs. | |
| mesh_bounds_scale | No | Optional [x,y,z] or {X,Y,Z} (Mesh): MeshBoundsScale. | |
| pivot_in_uv_space | No | Optional [x,y] or {X,Y} (Sprite): PivotInUVSpace. | |
| override_materials | No | Optional bool (Mesh): bOverrideMaterials. | |
| renderer_visibility | No | Optional int (Sprite): RendererVisibility tag value. | |
| affects_translucency | No | Optional bool (Light): bAffectsTranslucency. | |
| allow_in_cull_proxies | No | Optional bool: base bAllowInCullProxies. | |
| motion_vector_setting | No | Optional enum name: base MotionVectorSetting (e.g. "AutoDetect"/"Precise"/"Disable"). | |
| decal_screen_size_fade | No | Optional float (Decal): DecalScreenSizeFade. | |
| inverse_exposure_blend | No | Optional float (Light): InverseExposureBlend. | |
| alpha_scales_brightness | No | Optional bool (Light): bAlphaScalesBrightness. | |
| mega_lights_cast_shadows | No | Optional bool (Light): bMegaLightsCastShadows. | |
| use_inverse_squared_falloff | No | Optional bool (Light): bUseInverseSquaredFalloff. | |
| override_inverse_exposure_blend | No | Optional bool (Light): bOverrideInverseExposureBlend. |