Skip to main content

Quick Reference

Cheat sheet for the most common ElysImpact patterns.

Blueprint Nodes

NodeCategoryDescription
Play Impact ResponseElysImpactPlay a Response Asset on a target
Stop SessionElysImpactCancel a running session
Stop All On ActorElysImpactCancel all sessions on a target
Set Feel ProfileElysImpact|FeelSwitch the active Feel Profile
Mute ChannelElysImpact|ChannelsSilence a channel tag
Unmute ChannelElysImpact|ChannelsRestore a channel tag
Set Channel IntensityElysImpact|ChannelsScale a channel’s intensity
Set Global IntensityElysImpactScale all response intensities
Get Dramatic IntensityElysImpact|DramaticRead actor’s current DI [0..1]
Reset Dramatic IntensityElysImpact|DramaticClear actor’s DI to 0
Make Impact ContextElysImpact|ContextBuild a context from target + magnitude
Make Impact Context From HitElysImpact|ContextBuild a context from a hit result

C++ Quick Reference

// Play (simple)
UERP_ImpactStatics::PlayResponse(this, Target, Asset, IntensityOverride);

// Play (full context)
FERP_ImpactContext Ctx = UERP_ImpactStatics::MakeImpactContextFromHit(Hit, Damage);
UERP_ImpactStatics::PlayResponseWithContext(this, Asset, Ctx);

// Stop
UERP_ImpactStatics::StopAllOnActor(this, Target);

// Channel muting
UERP_ImpactStatics::MuteChannel(this, FGameplayTag::RequestGameplayTag("ElysImpact.Channel.Audio"));
UERP_ImpactStatics::UnmuteChannel(this, AudioChannel);
UERP_ImpactStatics::SetChannelIntensity(this, CameraChannel, 0.5f);

// Global intensity
UERP_ImpactStatics::SetGlobalIntensity(this, 0.5f);

// Feel Profile
UERP_ImpactStatics::SetFeelProfile(this, MyProfile);

// Dramatic Intensity
float DI = UERP_ImpactStatics::GetDramaticIntensity(this, Target); // [0..1]
UERP_ImpactStatics::ResetDramaticIntensity(this, Target);

// Subsystem direct access
UERP_ImpactSubsystem* Sub = UERP_ImpactSubsystem::Get(this);

Handler Decision Guide

You want to...Use handler...
Camera shakeCamera Shake
FOV zoom/pulseCamera FOV Pulse
Scale punch (cartoon hit)Scale Punch
Spring jiggleJiggle
Squash & stretchSquash And Stretch
Physics impulseImpulse
Oscillate positionOscillate
Spin actorSpin
BounceBounce
Attract toward sourceAttract
Flash material overlayMaterial Flash
Rim/outline glowRim Highlight
Ghost after-imageAfter Image
Blink actorVisibility Blink
Flicker actorVisibility Flicker
Screen fadeScreen Fade
Play soundSound Effect
Controller rumbleController Rumble
Chromatic aberrationChromatic Aberration
Bloom flashBloom Pulse
Depth of field blurDepth Blur
Color gradeColor Grade
Niagara burstParticle Effect
Slow timeTime Dilation
Spawn actorSpawn Actor
Enable/disable actorSet Active
Trigger GAS eventTrigger Gameplay Event
Chain another assetChain Response
Debug outputDebug Log

Common Patterns

Hit Response on Character

  1. Response Asset with: Camera Shake + Sound Effect + Scale Punch + Material Flash
  2. All on channel ElysImpact.Channel.Hit
  3. DramaticContribution: 0.5
  4. Call from OnTakeAnyDamage with Magnitude = DamageAmount

Explosion Area Response

  1. Response Asset with: Camera Shake (Attenuate by Radius) + Chromatic Aberration + Bloom Pulse + Particle Effect
  2. Set ChoreographyGroup.GroupTag to Impact.Explosion
  3. PrimaryLockDuration: 1.0, MaxSecondaryCount: 3
  4. Call on all actors in explosion radius — Choreography handles visual budget
  1. Create UERP_FeelProfile with:
    • bSuppressAudio: true
    • bSuppressCameraEffects: true
    • bSuppressParticles: true
    • GlobalIntensityScale: 0.0
  2. SetFeelProfile(this, PauseProfile) on pause, SetFeelProfile(this, nullptr) on resume

Per-Platform Intensity

// In GameInstance BeginPlay:
float Scale = UGameUserSettings::GetGameUserSettings()->GetOverallScalabilityLevel() / 3.f;
UERP_ImpactStatics::SetChannelIntensity(this, PostProcessChannel, Scale);
UERP_ImpactStatics::SetChannelIntensity(this, ParticleChannel, Scale);

Naming Convention

ClassPrefixExample
UObject-derived classesUERP_UERP_ImpactSubsystem
StructsFERP_FERP_ImpactContext
EnumsERP_EERP_EChoreographyRole
Data AssetsDA_ (project convention)DA_Impact_HeavyHit
Response AssetsDA_Impact_DA_Impact_Explosion
Feel ProfilesDA_FeelProfile_DA_FeelProfile_Cinematic