Troubleshooting
Common issues and solutions for the Agentic FeedbackFX System
Troubleshooting
Common issues and solutions for the Agentic FeedbackFX System.
Setup Issues
Component not found at runtime
Symptoms: FindComponentByClass returns null.
Solution: Ensure component is on PlayerController, not Character:
// Correct - get from controller
APlayerController* PC = Cast<APlayerController>(GetController());
UAgenticFeedbackFXComponent* Feedback = PC->FindComponentByClass<UAgenticFeedbackFXComponent>();"No FeedbackConfig assigned" warning
Solution: Set the FeedbackConfig property on the component:
- Select your FeedbackFX Component
- In Details panel, set Feedback Config to your data asset
Hit Stop Not Working
Hit stop does nothing
Check:
- HitStop event exists in config - Ensure the event tag maps to a HitStop event
- Duration is non-zero - Check HitStop event's Duration property
- Enable debug:
FeedbackComponent->bEnableDebugLogging = true;
Hit stop affects wrong actors
Check Target setting:
| Target | Behavior |
|---|---|
LocalVisual | Only locally-controlled actors (multiplayer-safe) |
Source | Only attacker |
Target | Only victim |
Both | Source and Target |
Global | World time dilation (NOT multiplayer-safe) |
Recommended: Use LocalVisual for multiplayer games.
Hit stop too short/long
Adjust Duration:
- Base Duration - Default duration in seconds
- Min/Max Duration - Clamping range after magnitude scaling
- Duration Curve - Optional curve for custom falloff
Post-Process Not Showing
Material effect not visible
Check:
- Material is Post-Process material - Must be set to
Post Processdomain - Blendable Location - Set to
Before TonemappingorAfter Tonemapping - Weight is non-zero - Check MaxWeight in the event
Persistent effect won't fade out
Solution: Call RemovePostProcessEffectByTag:
// Trigger persistent effect
Feedback->TriggerFeedbackEvent(LowHealthTag, Context);
// Later, when health recovers
Feedback->RemovePostProcessEffectByTag(LowHealthTag);Multiple effects stacking incorrectly
Each post-process effect has its own weight. Check:
- MaxWeight - Maximum blend weight (0-1)
- MagnitudeAffectsWeight - If true, magnitude scales the weight
Attribute Triggers Not Firing
Low health trigger doesn't work
Check trigger configuration:
| Property | Required Value |
|---|---|
| Attribute | Health (or your attribute) |
| Max Attribute | MaxHealth (for percentage) |
| Comparison | LessThan |
| Threshold | 25 (percent) |
| Event Tag | Your event tag (e.g., Event.Status.LowHealth) |
Trigger fires repeatedly
Add hysteresis:
- Hysteresis - Prevents re-triggering until value crosses threshold + hysteresis
- Example: Threshold=25, Hysteresis=5 means trigger at 25%, reset at 30%
"No ASC found" warning
Solution: Ensure your pawn has an AbilitySystemComponent:
// In your character
UPROPERTY(VisibleAnywhere)
TObjectPtr<UAbilitySystemComponent> AbilitySystemComponent;Audio/Haptics Issues
Sound not playing
Check:
- Sound asset assigned - Sound property must reference a valid USoundBase
- Volume is non-zero - Check Volume and MagnitudeScalesVolume
- Audio device - Ensure audio is not muted in editor
Haptics not working
Check:
- Controller connected - Haptics require a gamepad
- Mode setting:
Manual- Uses LeftMotor/RightMotor valuesForceFeedback- Uses ForceFeedbackEffect asset
- Duration - Ensure duration is non-zero
Camera Shake Issues
Shake not visible
Check:
- Shake asset assigned - CameraShakeClass must be set
- Scale is non-zero - Check InnerScale and OuterScale
- Camera manager exists - Component must be on PlayerController
Shake too intense
Adjust scaling:
- InnerScale - Base shake intensity
- MagnitudeScalesShake - If true, magnitude multiplies intensity
- Falloff - Reduces intensity over distance (for radial shakes)
Debug Visualization
Enable debug logging to diagnose issues:
// In your component setup
FeedbackComponent->bEnableDebugLogging = true;Log output:
TriggerFeedbackEvent: Tag=Event.Damage.Heavy, Magnitude=0.80StartHitStop: Duration=0.150StartPostProcess: Material=M_BloodSplatter, Duration=0.50
Cancel/Stop Effects
Cancel specific effect by tag
Feedback->CancelEffectsByTag(EventTag); // Cancels hit stop + post-process from this tagCancel all active effects
Feedback->CancelAllEffects(); // Stops everythingCancel individual effect types
Feedback->CancelHitStop(); // Just hit stop
Feedback->CancelAllPostProcessEffects(); // Just post-processGetting Help
- Discord: Join community
- Website: insodimension.com