Recipe: Add a Gameplay Cue¶
Goal: Create a Gameplay Cue that plays VFX/SFX in response to a gameplay event.
Prerequisites: A Gameplay Effect or Ability that will trigger the cue. See Gameplay Cues Overview for concepts.
Steps¶
1. Choose the Cue Type¶
| Need | Cue Type | Parent Class |
|---|---|---|
| One-shot effect (hit, cast, pop) | Burst | GameplayCueNotify_Burst |
| One-shot with timelines/delays | BurstLatent | GameplayCueNotify_BurstLatent |
| Duration effect (aura, trail, loop) | Looping | GameplayCueNotify_Looping |
| Fully custom persistent actor | Actor | GameplayCueNotify_Actor |
| Minimal code-only handler | Static | GameplayCueNotify_Static |
See Cue Notify Types for detailed guidance.
2. Create the Blueprint¶
- In Content Browser, navigate to
GAS/Cues/ - Right-click > Blueprint Class
- Search for your chosen parent class (e.g.,
GameplayCueNotify_Burst) - Name with
GC_prefix:GC_Hit_Physical
3. Set the GameplayCue Tag¶
Open the Blueprint, go to Class Defaults:
- Set GameplayCue Tag to
GameplayCue.Hit.Physical
Auto-derive from name
If you follow the naming convention (dots → underscores), the tag can be auto-derived. GC_Hit_Physical → GameplayCue.Hit.Physical. But it's safer to set it explicitly.
4. Implement the Events¶
Configure effects in Class Defaults:
- BurstEffects > Burst Particles: Add Niagara systems
- BurstEffects > Burst Sounds: Add sound cues/waves
- BurstEffects > Burst Camera Shakes: Add camera shake classes
- DefaultPlacementInfo: Set to use hit location from parameters
Optionally, override the OnBurst event for additional custom logic.
Configure effects in Class Defaults:
- ApplicationEffects: One-shot effects when the buff starts
- LoopingEffects: Persistent particles/sounds while active
- RecurringEffects: Effects per periodic tick
- RemovalEffects: One-shot effects when the buff ends
Override OnApplication, OnLoopingStart, OnRecurring, OnRemoval events as needed.
- Add components to the actor (Niagara, Audio, etc.)
- Override On Become Relevant (WhileActive): activate VFX
- Override On Cease Relevant (OnRemove): deactivate VFX
- Set bAutoAttachToOwner = true if it should follow the target
- Set bAutoDestroyOnRemove = true
5. Trigger the Cue¶
On your GE, add the GameplayCue GE Component and set the tag to GameplayCue.Hit.Physical.
- Instant effects →
Executeevent - Duration/Infinite effects →
Addon apply,Removeon end
Add a GameplayCue (Burst) or GameplayCue (Looping) anim notify to your montage. See AnimNotify and Sequencer.
6. Verify Scan Path¶
Make sure your cue folder is in the GameplayCueManager's scan paths:
Project Settings > Gameplay Abilities > GameplayCue Notify Paths:
7. Test¶
- PIE
- Trigger the ability or effect that fires the cue
- Verify VFX/SFX play at the correct location
- For duration cues: verify they start and stop correctly
- Check the log for any "missing gameplay cue" warnings
Checklist¶
- Cue type chosen based on needs
- Blueprint created with
GC_prefix - GameplayCue tag set in Class Defaults
- Effects configured (particles, sounds, etc.)
- Events implemented (OnBurst / OnApplication / etc.)
- Trigger configured (GE cue component, ability code, or anim notify)
- Scan path includes the cue folder
- Tested in PIE
Related¶
- Cue Notify Types -- detailed type comparison
- Cue Parameters -- passing data to your cue
- Cue Manager -- scan paths and loading