Skip to main content

Handler Reference

ElysImpact ships with 30 built-in handlers organized into 9 categories. Every handler inherits the shared base properties documented at the bottom of this page.


Base Handler Properties

All handlers expose the following properties in their Details panel.

Activation

PropertyTypeDefaultDescription
bEnabledbooltrueMaster on/off toggle for this handler instance.
ExecutionChancefloat (0–100)100Probability (%) that this handler fires each time the asset plays. Use < 100 for randomized variety.

Timing

PropertyTypeDefaultDescription
StartDelayfloat (≥0)0Seconds to wait after session start before this handler fires. Use to stagger simultaneous effects.

Intensity

PropertyTypeDefaultDescription
IntensityScalefloat (≥0)1.0Per-handler multiplier stacked on top of session CombinedIntensity.
IntensityRandomRangefloat (≥0)0±random variation added to IntensityScale each play.
IntensityOverLifetimeUCurveFloat*nullOptional curve (X=NormalizedTime, Y=multiplier) that modulates intensity across the handler's duration.

Performance

PropertyTypeDefaultDescription
MaxPlayDistancefloat (≥0)0Maximum camera distance to play. 0 = always play.
LODDistanceFadefloat (≥0)500Distance at which intensity fades toward zero (must be ≤ MaxPlayDistance).

Conditions

PropertyTypeDescription
TargetTagRequirementFGameplayTagQueryTags that must be present on the target actor for this handler to fire.
SourceTagRequirementFGameplayTagQueryTags that must be present on the source actor for this handler to fire.

Music Sync

PropertyTypeDefaultDescription
bQuantizeToBeatboolfalseWhen true, defers execution to the next ElysMusicEngine beat tick. Falls back to immediate execution if ElysMusicEngine is absent.
BeatDivisionERP_EBeatDivisionQuarterBeat subdivision used for quantization.

Audio

SoundEffect

Plays a USoundBase (Cue, Wave, or MetaSound) at the target's location.

PropertyTypeDefaultDescription
SoundUSoundBase*nullPrimary sound to play.
RandomSoundsTArray<USoundBase*>emptyPool of sounds for anti-repetition. When non-empty, a random entry is chosen instead of Sound.
VolumeMultiplierfloat (0–4)1.0Volume scale.
PitchMultiplierfloat (0.1–4)1.0Pitch scale.
PitchVariationfloat (0–0.5)0±random pitch variation applied each play.
bIs2DboolfalseWhen true, plays as a non-spatial 2D sound.
AttenuationUSoundAttenuation*nullOptional custom attenuation settings.

Tip: Fill RandomSounds with multiple impact variants to avoid the "machine gun" repetition effect automatically.


ControllerRumble

Sends force feedback to the player controller associated with the target actor.

PropertyTypeDefaultDescription
ForceFeedbackEffectUForceFeedbackEffect*nullFFE asset to play. Recommended — assign this for full per-motor control.
LeftMotorfloat (0–1)0.5Low-frequency motor intensity (fallback when no FFE assigned).
RightMotorfloat (0–1)0.8High-frequency motor intensity (fallback).
Durationfloat (≥0.01)0.2Rumble duration in seconds.
PlayerIndexint (≥0)0Target player index.

Note: Assign a UForceFeedbackEffect asset for best results. The manual motor fallback logs a warning and requires an FFE asset to function in UE 5.6.


Camera

CameraShake

Triggers a UCameraShakeBase subclass on the local player camera.

PropertyTypeDefaultDescription
ShakeClassTSubclassOf<UCameraShakeBase>nullThe shake blueprint or class to play.
Amplitudefloat (≥0)1.0Scale applied to the handler's resolved intensity, then passed as the shake's inner scale.
bAttenuateWithRadiusboolfalseWhen true, shake amplitude fades by distance from the target.
AttenuationRadiusfloat (≥0)1000Radius over which attenuation applies. Visible only when bAttenuateWithRadius is enabled.

CameraFOVPulse

Briefly expands or contracts the player camera's FOV, then eases back.

PropertyTypeDefaultDescription
FOVOffsetfloat15.0Degrees added to the current FOV at peak. Negative values contract the FOV.
Durationfloat (≥0.01)0.3Time in seconds for the full in–out cycle.
CurveUCurveFloat*nullOptional override curve (X=[0,1], Y=FOV multiplier).

This handler requires per-frame ticking. It restores the original FOV on completion.


Gameplay

ChainResponse

Triggers another UERP_ImpactResponseAsset from within a handler, enabling composable response trees.

PropertyTypeDefaultDescription
AssetUERP_ImpactResponseAsset*nullThe response asset to trigger.
IntensityOverridefloat (≥0)0Intensity for the chained asset. 0 = inherit current intensity.
ExtraDelayfloat (≥0)0Additional delay (stacks on top of this handler's own StartDelay).

Use case: A "HeavyHit" asset can chain to a "ScreenFlash" asset and a "TimeDilation" asset via separate ChainResponse handlers, keeping each asset focused and reusable.


DebugLog

Prints context information to the screen and/or log. Remove or disable in shipping builds.

PropertyTypeDefaultDescription
MessageFString"ElysImpact: Debug"Custom message prefix.
bPrintToScreenbooltruePrint to viewport.
ScreenDurationfloat (≥0.1)3.0On-screen display duration in seconds.
ScreenColorFLinearColortealColor for the on-screen message.
bPrintToLogbooltruePrint to output log.
bIncludeContextbooltrueAppend Target, Intensity, DI, and EventTag to the message.

SetActive

Enables, disables, or toggles visibility/collision/tick on the target actor's root component or actor.

Enum ERP_ESetActiveModeDescription
EnableForce-enables the selected flags.
DisableForce-disables the selected flags.
ToggleFlips the current state.
PropertyTypeDefaultDescription
ModeERP_ESetActiveModeToggleEnable / Disable / Toggle.
bAffectVisibilitybooltrueToggle SetActorHiddenInGame.
bAffectCollisionboolfalseToggle SetActorEnableCollision.
bAffectTickboolfalseToggle SetActorTickEnabled.
RestoreAfterfloat (≥0)0Seconds before reverting to the prior state. 0 = never restore.

SpawnActor

Spawns an actor class at the target's location (with optional relative offset).

PropertyTypeDefaultDescription
ActorClassTSubclassOf<AActor>nullClass to spawn.
LocationOffsetFVectorzeroPosition offset from the target root.
RotationOffsetFRotatorzeroRotation offset.
bRelativeOffsetbooltrueInterpret offsets relative to the target's transform.
bAttachToTargetboolfalseAttach the spawned actor to the target.
LifeSpanfloat (≥0)0Auto-destroy after N seconds. 0 = never destroy automatically.

TriggerGameplayEvent

Dispatches a Gameplay Ability System event to the target or source actor.

PropertyTypeDefaultDescription
EventTagFGameplayTagnoneGAS event tag (e.g., GameplayEvent.Hit.Stagger).
Magnitudefloat (≥0)0Event magnitude. When > 0, overrides Context.Magnitude.
bSendToSourceboolfalseSend the event to the source actor instead of the target.

Requires the target actor to have an AbilitySystemComponent.


Movement

Impulse

Applies a physics impulse to the target's root primitive component (or LaunchCharacter for pawns).

Enum ERP_EImpulseDirectionDescription
AwayFromSourceDirection from source to target.
AlongNormalUses Context.ImpactNormal.
WorldUpStraight up (+Z).
CustomUses CustomDirection.
PropertyTypeDefaultDescription
Forcefloat (≥0)500Impulse magnitude (units/s² equivalent).
UpwardForcefloat (≥0)0Additional upward force component.
DirectionModeERP_EImpulseDirectionAwayFromSourceDirection calculation mode.
CustomDirectionFVectorupUsed when DirectionMode is Custom.
bUseLaunchCharacterbooltrueUse ACharacter::LaunchCharacter on character targets.
bOverrideVelocityboolfalseOverride current velocity instead of adding to it.

Attract

Smoothly moves the target actor toward the source or impact point.

Enum ERP_EAttractTargetModeDescription
UseSourceMove toward the source actor's location.
UseImpactPointMove toward Context.ImpactPoint.
PropertyTypeDefaultDescription
TargetModeERP_EAttractTargetModeUseSourceWhat to move toward.
Speedfloat (≥0)300Movement speed (cm/s).
Durationfloat (≥0)0.5Max time to attract for.
StopRadiusfloat (≥0)50Stop when within this distance.

Bounce

Applies a squash-and-stretch bounce simulation that decays over multiple cycles.

PropertyTypeDefaultDescription
SquashAmountfloat (≥0)0.3Peak squash scale along the primary axis.
StretchAmountfloat (≥0)0.4Peak stretch scale along the primary axis.
BounceCountint (≥1)3Number of bounce cycles before settling.
Dampingfloat (≥0.01)0.7Multiplier applied to each successive bounce amplitude.
AxisFVectorupAxis along which the bounce occurs.

Duration is automatic based on BounceCount and Damping.


Oscillate

Translates the target back and forth along an axis using a sine wave.

PropertyTypeDefaultDescription
DirectionFVectorupWorld-space oscillation axis.
Distancefloat (≥0)20Peak displacement in cm.
CycleTimefloat (≥0.01)1.0Duration of one full oscillation cycle.
Durationfloat (≥0)3.0Total oscillation time.
bRandomizePhaseboolfalseStart at a random point in the cycle.

Spin

Continuously rotates the target around an axis for a set duration.

PropertyTypeDefaultDescription
AxisFVectorupWorld-space rotation axis.
DegreesPerSecondfloat360Rotation speed.
Durationfloat (≥0)1.0How long to spin.
bRestoreOnCompleteboolfalseSnap back to original rotation when done.

Particles

ParticleEffect

Spawns a Niagara particle system at or attached to the target.

Enum ERP_EParticleAttachmentDescription
AttachedAttached to the target mesh at SocketName.
AtImpactPointSpawned at Context.ImpactPoint (detached).
AtActorRootSpawned at the target's root transform (detached).
PropertyTypeDefaultDescription
NiagaraSystemUNiagaraSystem*nullThe Niagara system asset to spawn.
AttachmentRuleERP_EParticleAttachmentAtImpactPointWhere to spawn or attach.
SocketNameFNameNoneSocket or bone name for Attached mode.
LocationOffsetFVectorzeroPosition offset.
RotationOffsetFRotatorzeroRotation offset.
ScaleFVectoroneScale applied to the system instance.
bAutoDestroybooltrueDestroy the component when the effect completes.

Post-Process

Post-process handlers modify the scene's post-process volume. They require a blendable or a UPostProcessComponent on the camera or player pawn.

BloomPulse

Briefly increases the scene's bloom intensity, then eases back.

PropertyTypeDefaultDescription
BloomIntensityfloat (≥0)5.0Peak bloom multiplier.
Durationfloat (≥0.01)0.25Full pulse duration in seconds.
CurveUCurveFloat*nullOptional intensity-over-time curve.

ChromaticAberration

Adds chromatic aberration (lens distortion) for a brief moment.

PropertyTypeDefaultDescription
Intensityfloat (0–5)2.0Peak aberration strength.
Durationfloat (≥0.01)0.2Duration in seconds.
CurveUCurveFloat*nullOptional intensity-over-time curve.

ColorGrade

Temporarily shifts saturation, contrast, brightness, and tint.

PropertyTypeDefaultDescription
Saturationfloat (0–2)0.0Target saturation. 0 = fully desaturated (dramatic hit flash).
Contrastfloat (0–3)1.0Target contrast.
Brightnessfloat (0–3)1.0Target brightness.
TintFLinearColorwhiteColor tint overlaid on the scene.
Durationfloat (≥0.01)0.5Duration in seconds.

DepthBlur

Applies depth-of-field blur, simulating a momentary focus loss.

PropertyTypeDefaultDescription
FocalDistancefloat (≥0)200Distance (cm) at which the scene is in focus.
NearBlurSizefloat (≥0)4.0Blur kernel size for objects closer than focal distance.
FarBlurSizefloat (≥0)4.0Blur kernel size for objects further than focal distance.
Durationfloat (≥0.01)0.3Duration in seconds.

Time

TimeDilation

Slows or accelerates time — either globally or per-actor.

Enum ERP_ETimeDilationScopeDescription
ActorDilates only the target actor's tick rate.
GlobalCalls SetGlobalTimeDilation, affecting the entire world.
PropertyTypeDefaultDescription
TargetScalefloat (0.05–10)0.3Time scale factor. 0.3 = 30% speed (slow motion).
Durationfloat (≥0.01)0.2Duration in seconds before restoring.
ScopeERP_ETimeDilationScopeActorActor-local or global dilation.
CurveUCurveFloat*nullOptional dilation-over-time curve.
bRestoreOnCompletebooltrueRestore normal time scale when done.

Transform

ScalePunch

Briefly punches the target's scale and springs back, giving hits a satisfying "pop".

Enum ERP_EScalePunchModeDescription
UniformScales all axes equally.
PerAxisScales each axis from PunchScale independently.
PropertyTypeDefaultDescription
ModeERP_EScalePunchModeUniformUniform or per-axis punch.
PunchScaleFVector(0.25, 0.25, 0.25)Peak scale offset added to the base scale.
Durationfloat (≥0.01)0.3Full punch-and-return cycle time.
CurveUCurveFloat*nullOptional punch multiplier curve.

Jiggle

Spring-simulation jiggle on position, rotation, or scale that naturally decays.

Enum ERP_EJiggleModeDescription
PositionJiggle in world position.
RotationJiggle in rotation (Euler angles).
ScaleJiggle in local scale.
PropertyTypeDefaultDescription
ModeERP_EJiggleModeScaleWhich transform component to jiggle.
AmplitudeFVector(0.15, 0.05, 0.05)Peak displacement per axis.
Frequencyfloat (≥0.1)10.0Oscillation frequency (Hz).
Dampingfloat (≥0.01)0.5Decay rate. Higher = settles faster.
bRandomizeDirectionboolfalseRandomize initial jiggle direction each play.
SettleThresholdfloat0.005Stop ticking once displacement drops below this.

Duration is automatic (indefinite until settled).


SquashAndStretch

Applies a spring-damped squash-and-stretch deformation along a primary axis, with optional volume preservation.

PropertyTypeDefaultDescription
Amplitudefloat (≥0)0.3Initial stretch amplitude.
Frequencyfloat (≥0.1)8.0Oscillation frequency (Hz).
Dampingfloat (0.01–5)0.61.0 = critically damped (no oscillation).
PrimaryAxisFVectorupThe stretch axis (usually the actor's up vector).
bPreserveVolumebooltrueScale perpendicular axes inversely to maintain volume.
SettleThresholdfloat0.005Stop when deformation drops below this.

LookAt

Rotates the target actor to face the source or impact point.

Enum ERP_ELookAtModeDescription
InstantSnap to the target rotation immediately.
LerpSmoothly interpolate over LerpDuration seconds.
PropertyTypeDefaultDescription
ModeERP_ELookAtModeInstantInstant or smoothly lerped.
LerpDurationfloat (≥0.01)0.2Duration for smooth rotation. Visible only in Lerp mode.
bLockPitchboolfalseKeep pitch unchanged (only rotate yaw).
bLockRollbooltrueKeep roll unchanged.
bLookAtSourcebooltrueLook at the source actor. When false, looks at ImpactPoint.

Visual

MaterialFlash

Briefly applies an overlay material to the target's mesh, then removes it.

PropertyTypeDefaultDescription
OverlayMaterialUMaterialInterface*nullMaterial applied via SetOverlayMaterial.
Durationfloat (≥0.01)0.15How long the overlay stays on.

Create a simple emissive or solid-color material for a classic "damage flash" effect.


RimHighlight

Applies a rim/Fresnel material overlay to make the target glow from the edges.

PropertyTypeDefaultDescription
RimMaterialUMaterialInterface*nullFresnel rim overlay material.
ColorFLinearColorgoldMultiplied with the material's color parameter.
Durationfloat (≥0)0.4How long the rim effect lasts.
bPulseboolfalseOscillate the rim intensity over the duration.

AfterImage

Spawns translucent ghost copies of the target at fixed intervals, creating a motion trail.

PropertyTypeDefaultDescription
GhostCountint (≥1)3Number of ghost copies to spawn.
SpawnIntervalfloat (≥0)0.05Seconds between ghost spawns.
GhostLifetimefloat (≥0.01)0.3How long each ghost persists before fading.
Opacityfloat (0–1)0.5Ghost transparency.
GhostMaterialUMaterialInterface*nullOptional override material for ghosts (e.g., a translucent emissive).

Blinks the target's visibility on and off a fixed number of times.

PropertyTypeDefaultDescription
Durationfloat (≥0)1.0Total blink duration.
BlinkCountint (≥1)4Number of blink cycles.
bAccelerateOverTimeboolfalseIncrease blink frequency over the duration.
bRestoreOnCompletebooltrueEnsure visibility is restored when done.

VisibilityFlicker

Randomizes the target's visibility at irregular intervals for an organic flicker effect.

PropertyTypeDefaultDescription
MinIntervalfloat (≥0.01)0.03Minimum time between visibility flips (seconds).
MaxIntervalfloat (≥0.01)0.12Maximum time between visibility flips.
MinVisibleChancefloat (0–1)0.4Minimum probability of being visible at each flip.
Durationfloat (≥0)1.0Total flicker duration.

ScreenFade

Fades the player's screen in, out, or flashes it to a solid color.

Enum ERP_EScreenFadeTypeDescription
FadeInFade from solid color back to the game view.
FadeOutFade to a solid color.
FlashFade out then immediately back in (single flash).
PropertyTypeDefaultDescription
FadeTypeERP_EScreenFadeTypeFlashThe fade mode.
ColorFLinearColorblackThe solid color to fade to/from.
Durationfloat (≥0.01)0.3Total fade duration.
bHoldOnCompleteboolfalseHold the fade state at completion (manual restoration needed).

Handler Count Summary

CategoryCountHandlers
Audio2SoundEffect, ControllerRumble
Camera2CameraShake, CameraFOVPulse
Gameplay5ChainResponse, DebugLog, SetActive, SpawnActor, TriggerGameplayEvent
Movement5Impulse, Attract, Bounce, Oscillate, Spin
Particles1ParticleEffect
Post-Process4BloomPulse, ChromaticAberration, ColorGrade, DepthBlur
Time1TimeDilation
Transform4ScalePunch, Jiggle, SquashAndStretch, LookAt
Visual6MaterialFlash, RimHighlight, AfterImage, VisibilityBlink, VisibilityFlicker, ScreenFade
Total30