Presets Guide
Complete reference for targeting presets, tasks, and the JSON configuration workflow
Presets Guide
Complete reference for targeting presets, tasks, and the JSON configuration workflow.
The 9 presets and 12 tasks below are starter templates included with the plugin. Creating custom presets and tasks is simple - just create a Data Asset and configure properties. No C++ required. See Creating Custom Presets.
What Are Presets?
Presets define WHO to target:
- Range - How far to search
- Selection - How to find targets (AOE, trace)
- Filters - What to exclude (dead, blocked, too far)
- Sorting - How to rank targets (distance, threat, screen position)
Styles define HOW lock-on behaves. Presets define WHO gets targeted.
Built-in Presets
Targeting Presets
| Preset | Tag | Acquire | Break | Selection | Best For |
|---|---|---|---|---|---|
| Melee | Agentic.Targeting.Preset.Melee | 15m | 20m | AOE | Swords, axes |
| Ranged | Agentic.Targeting.Preset.Ranged | 30m | 40m | Trace | Bows, crossbows |
| Ranged.Short | Agentic.Targeting.Preset.Ranged.Short | 15m | 20m | Trace | Throwing weapons |
| Astra | Agentic.Targeting.Preset.Astra | 100m | 120m | Trace | Divine weapons |
| Freeflow | Agentic.Targeting.Preset.Freeflow | 8m | 12m | AOE | Crowd combat |
| Freeflow.Ranged | Agentic.Targeting.Preset.Freeflow.Ranged | 15m | 20m | AOE | Batarangs, gadgets |
Awareness Presets
| Preset | Tag | Range | Update Rate | Best For |
|---|---|---|---|---|
| Awareness | Agentic.Targeting.Preset.Awareness | 15m | 0.5s | General melee awareness |
| Awareness.Ranged | Agentic.Targeting.Preset.Awareness.Ranged | 30m | 0.5s | Archer awareness |
| Awareness.Astra | Agentic.Targeting.Preset.Awareness.Astra | 50m | 0.3s | Divine weapon charging |
Hysteresis: Acquire vs Break Distance
Each preset has two distance thresholds:
| Threshold | Purpose |
|---|---|
| Acquire Distance | How close target must be to lock on |
| Break Distance | How far target can go before lock breaks |
Why different? Prevents frustrating lock breaks during combat movement.
Example: Melee Preset
- Acquire: 15m (target must be within 15m to lock)
- Break: 20m (target can go up to 20m before lock breaks)
Player locks at 14m → target backs up to 18m → STAYS LOCKED
Target at 21m → lock breaksHow It Works
The FilterValidationDistance task enables hysteresis:
- During selection: Skipped (acquire distance from AOE/Trace radius)
- During validation: Active (break distance check)
// In preset tasks:
{
"TaskTag": { "TagName": "Agentic.Targeting.Task.AOE" },
"Params": { "Radius": "1500" } // 15m acquire
},
{
"TaskTag": { "TagName": "Agentic.Targeting.Task.Filter.ValidationDistance" },
"Params": { "MaxDistance": "2000" } // 20m break
}Preset Details
Melee
Tag: Agentic.Targeting.Preset.Melee
Souls-style melee lock-on for swords, axes, and close combat.
| Property | Value |
|---|---|
| Selection | AOE Sphere 15m |
| Acquire Distance | 15m |
| Break Distance | 20m |
| LOS Required | Yes |
| Sort Priority | Distance 70%, ScreenCenter 30% |
Task Pipeline:
- AOE (15m sphere)
- Filter.Targetable
- Filter.ValidationDistance (20m)
- Filter.LOS
- Sort.Distance (weight 0.7)
- Sort.ScreenCenter (weight 0.3)
Ranged
Tag: Agentic.Targeting.Preset.Ranged
Souls-style ranged lock-on for bows and crossbows.
| Property | Value |
|---|---|
| Selection | Sphere Trace 30m |
| Acquire Distance | 30m |
| Break Distance | 40m |
| LOS Required | Yes |
| Sort Priority | ScreenCenter 60%, Distance 40% |
Task Pipeline:
- Trace (30m sphere sweep)
- Filter.Targetable
- Filter.ValidationDistance (40m)
- Filter.LOS
- Sort.ScreenCenter (weight 0.6)
- Sort.Distance (weight 0.4)
Ranged.Short
Tag: Agentic.Targeting.Preset.Ranged.Short
For throwing weapons - knives, firebombs, chakrams.
| Property | Value |
|---|---|
| Selection | Sphere Trace 15m |
| Acquire Distance | 15m |
| Break Distance | 20m |
| LOS Required | Yes |
| Sort Priority | ScreenCenter 50%, Distance 50% |
Astra (Divine Weapons)
Tag: Agentic.Targeting.Preset.Astra
Extreme-range for divine weapons (Brahmastra, Agneyastra).
| Property | Value |
|---|---|
| Selection | Sphere Trace 100m |
| Acquire Distance | 100m |
| Break Distance | 120m |
| LOS Required | Yes |
| Sort Priority | ScreenCenter 70%, Distance 30% |
Freeflow
Tag: Agentic.Targeting.Preset.Freeflow
Arkham-style auto-targeting for crowd combat.
| Property | Value |
|---|---|
| Selection | AOE Sphere 8m |
| Acquire Distance | 8m |
| Break Distance | 12m |
| LOS Required | No (instant snappy targeting) |
| Sort Priority | StickDirection 60%, Distance 40% |
Key Difference: No LOS check for instant, snappy combat feel.
Freeflow.Ranged
Tag: Agentic.Targeting.Preset.Freeflow.Ranged
Freeflow for thrown weapons (Batarangs, gadgets).
| Property | Value |
|---|---|
| Selection | AOE Sphere 15m |
| Acquire Distance | 15m |
| Break Distance | 20m |
| LOS Required | Yes |
| Sort Priority | StickDirection 50%, ScreenCenter 50% |
Awareness Presets
| Preset | Range | Update Rate | Notes |
|---|---|---|---|
| Awareness | 15m | 0.5s | Matches melee lock-on range |
| Awareness.Ranged | 30m | 0.5s | Matches ranged lock-on range |
| Awareness.Astra | 50m | 0.3s | Fast updates for charging |
All awareness presets use pure distance sorting (closest first).
Task Reference
Presets are built from modular Tasks. Each task performs one operation in the targeting pipeline.
Selection Tasks
Find initial pool of potential targets.
| Task | Tag | Description |
|---|---|---|
| AOE | Agentic.Targeting.Task.AOE | Sphere/box overlap detection |
| Trace | Agentic.Targeting.Task.Trace | Line/sphere/capsule sweep |
| DynamicAOE | Agentic.Targeting.Task.DynamicAOE | Blueprint AOE with dynamic radius |
AOE Parameters
{
"TaskTag": { "TagName": "Agentic.Targeting.Task.AOE" },
"Params": {
"Radius": "1500", // Detection radius (cm)
"ShapeType": "Sphere", // Sphere or Box
"CollisionChannel": "ECC_Pawn",
"bIgnoreSourceActor": "true"
}
}Trace Parameters
{
"TaskTag": { "TagName": "Agentic.Targeting.Task.Trace" },
"Params": {
"TraceType": "Sphere", // Line, Sphere, Capsule, Box
"DefaultTraceLength": "3000", // Trace distance (cm)
"DefaultSweptTraceRadius": "100", // Sweep radius
"bIgnoreSourceActor": "true",
"bMultiTrace": "true" // Find all hits, not just first
}
}Filter Tasks
Remove invalid targets from pool.
| Task | Tag | Description |
|---|---|---|
| FilterTargetable | Agentic.Targeting.Task.Filter.Targetable | Check IAgenticTargetable::CanBeTargeted |
| FilterActorClass | Agentic.Targeting.Task.Filter.ActorClass | Filter by actor class (default: Pawn) |
| FilterLOS | Agentic.Targeting.Task.Filter.LOS | Require line of sight |
| FilterDistance | Agentic.Targeting.Task.Filter.Distance | Max distance (runs during selection AND validation) |
| FilterValidationDistance | Agentic.Targeting.Task.Filter.ValidationDistance | Max distance (ONLY during validation - enables hysteresis) |
FilterTargetable Parameters
{
"TaskTag": { "TagName": "Agentic.Targeting.Task.Filter.Targetable" },
"Params": {
"bFilterNonImplementors": "true" // Require IAgenticTargetable interface
}
}FilterLOS Parameters
{
"TaskTag": { "TagName": "Agentic.Targeting.Task.Filter.LOS" },
"Params": {
"TraceChannel": "ECC_Visibility", // Collision channel
"bUseTargetableLocation": "false" // Use GetTargetLocation() from interface
}
}FilterDistance vs FilterValidationDistance
| Task | When It Runs | Purpose |
|---|---|---|
| FilterDistance | Selection + Validation | Hard distance limit |
| FilterValidationDistance | Validation only | Hysteresis (break distance) |
Use FilterValidationDistance for hysteresis:
// Acquire at 15m, break at 20m
{ "TaskTag": { "TagName": "Agentic.Targeting.Task.AOE" }, "Params": { "Radius": "1500" } },
{ "TaskTag": { "TagName": "Agentic.Targeting.Task.Filter.ValidationDistance" }, "Params": { "MaxDistance": "2000" } }Sort Tasks
Rank remaining targets by priority.
| Task | Tag | Description |
|---|---|---|
| SortDistance | Agentic.Targeting.Task.Sort.Distance | Closest first |
| SortScreenCenter | Agentic.Targeting.Task.Sort.ScreenCenter | Nearest to crosshair |
| SortThreat | Agentic.Targeting.Task.Sort.Threat | Highest threat level |
| SortStickDirection | Agentic.Targeting.Task.Sort.StickDirection | Match stick input direction |
Sort Parameters
All sort tasks support:
{
"TaskTag": { "TagName": "Agentic.Targeting.Task.Sort.Distance" },
"Params": {
"Weight": "0.7", // Contribution to final score (0-1)
"MaxDistance": "2000" // Normalize distance against this
}
}SortScreenCenter Parameters
{
"TaskTag": { "TagName": "Agentic.Targeting.Task.Sort.ScreenCenter" },
"Params": {
"Weight": "0.6",
"FalloffExponent": "2.0", // How fast score drops off-center
"bUseTargetableLocation": "false" // Use interface location
}
}SortStickDirection Parameters
{
"TaskTag": { "TagName": "Agentic.Targeting.Task.Sort.StickDirection" },
"Params": {
"Weight": "0.6",
"FalloffExponent": "1.5"
}
}Creating Custom Presets
- Content Browser -> Right-click -> Miscellaneous -> Data Asset
- Pick Agentic Targeting Preset

- Fill in the properties:
- Preset Tag - Unique tag for this preset
- Display Name - Human-readable name
- Tasks - Add selection, filter, and sort tasks
That's it. Your preset is ready to use.
TargetingComponent->SetPresetByTag(
FGameplayTag::RequestGameplayTag("Agentic.Targeting.Preset.MyCustom")
);For AI/External Tools: See AI JSON Workflow for bulk editing and AI-driven config generation.
Best Practices
- Use FilterValidationDistance for hysteresis - Acquire at one range, break at a larger range
- Weight your sorts - Multiple sorts combine (e.g., Distance 70% + ScreenCenter 30%)
- Skip LOS for snappy combat - Freeflow presets don't use LOS filter
- Use Trace for ranged weapons - AOE is circular, Trace follows aim direction
Troubleshooting
No Targets Found
- Check preset range matches your level scale
- Ensure enemies have
IAgenticTargetableinterface - Enable debug:
TargetingComponent->bDebugDraw = true - Check collision channels match enemies
Lock Breaks Too Easily
- Increase break distance in
FilterValidationDistance - Increase style's GracePeriod
- Use GoW style (longer grace period)
Wrong Target Selected
- Adjust sort weights
- Check sort order (first sort has priority)
- Try different sort combination
Related Documentation
- Styles Reference - How lock-on behaves
- Targeting Recipes - Style + Preset combinations
- Awareness Guide - Multi-target tracking
- Extending Tasks - Create custom Blueprint tasks