Quick Start Guide
Get Agentic FeedbackFX working in your UE5 project in 5 minutes
Quick Start Guide
1. Enable the Plugin
Add to your .uproject:
{
"Name": "AgenticFeedbackFX",
"Enabled": true
}2. Create a Config Data Asset
- Right-click in Content Browser
- Miscellaneous → Data Asset → AgenticFeedbackFXConfig
- Name it (e.g.,
DA_FeedbackConfig)
3. Add Event Mappings
In your config asset, add entries:
| Event Tag | Events |
|---|---|
Event.Damage.Light | Shake (small), Audio |
Event.Damage.Heavy | Shake (large), HitStop (short), Haptics |
Event.Damage.Critical | Shake, HitStop, PostProcess (blood), Audio |
Event.Status.LowHealth | PostProcess (vignette, persistent) |
4. Add Component to Controller
Blueprint
- Open your PlayerController Blueprint
- Add Component → Agentic FeedbackFX Component
- Set Feedback Config to your data asset
C++
// In your PlayerController header
UPROPERTY(VisibleAnywhere, BlueprintReadOnly)
TObjectPtr<UAgenticFeedbackFXComponent> FeedbackComponent;
// In constructor
FeedbackComponent = CreateDefaultSubobject<UAgenticFeedbackFXComponent>(TEXT("FeedbackFX"));5. Trigger Events
From C++
// Get component from controller
UAgenticFeedbackFXComponent* Feedback = GetController()->FindComponentByClass<UAgenticFeedbackFXComponent>();
// Simple - just magnitude
Feedback->TriggerFeedbackEventSimple(
FGameplayTag::RequestGameplayTag("Event.Damage.Heavy"),
0.8f // 0-1 intensity
);
// Full context
FAgenticFeedbackFXContext Context;
Context.Magnitude = FMath::Clamp(DamageAmount / 100.0f, 0.0f, 1.0f);
Context.WorldLocation = HitLocation;
Context.SourceActor = Attacker;
Context.TargetActor = Victim;
Feedback->TriggerFeedbackEvent(Tag, Context);
// Helper for damage
FAgenticFeedbackFXContext Ctx = FAgenticFeedbackFXContext::FromDamage(
DamageAmount, 0.0f, 100.0f, Attacker, Victim, HitLocation);From Blueprint
- Get reference to your FeedbackFX Component
- Call
Trigger Feedback EventorTrigger Feedback Event Simple
6. Automatic Triggers (Optional)
Add triggers to your config for automatic effects:
Low Health Vignette:
- Trigger Type:
Attribute - Attribute:
Health - Max Attribute:
MaxHealth - Comparison:
Less Than - Threshold:
25(percent) - Hysteresis:
5 - Event Tag:
Event.Status.LowHealth
The effect auto-triggers when health drops below 25% and auto-removes when health rises above 30%.
Context Fields
| Field | Type | Purpose |
|---|---|---|
Magnitude | float | Intensity scaling (any value, often 0-1) |
WorldLocation | FVector | For directional/3D effects |
ImpactTransform | FTransform | For spawning world VFX (Niagara, decals) |
SourceActor | AActor* | Who caused the event (attacker) |
TargetActor | AActor* | Who received the event (victim) |
ContextTags | FGameplayTagContainer | Additional filtering |
Values | TMap | Named values for material parameters |
Named Context Values
Use Values to pass multiple named parameters to material effects:
FAgenticFeedbackFXContext Context(1.0f);
Context.SetValue("HitAngle", 45.0f);
Context.SetValue("IsCritical", 1.0f);
Feedback->TriggerFeedbackEvent(Tag, Context);Events can map these values to material parameters using FAgenticFXScalarParam with ContextValue source. See Events Reference for details.
Tips
- Magnitude is generic - not damage-specific. Use it for any intensity scaling.
- Persistent effects (Duration=0) stay until removed with
RemovePostProcessEffectByTag() - Hysteresis prevents flickering near thresholds
- Events can trigger multiple effects - add Shake + HitStop + Audio to one tag
- Hit Stop defaults to
LocalVisualmode which is multiplayer-safe