APSDocs
Reference

Cheat sheet#

Everything you use daily, on one page.

Setup in five lines#

1. Content Browser › Miscellaneous › Data Asset › Perception Profile    DA_Profile_MyAI
2. The AI's Pawn › Add Component › APS Core                              assign the profile
3. APS Core › Details › Events › +                                      On AI Detect, On AI Lost
4. The player › Add Component › APS Target Component                     (optional: sample points, stance, light)
5. A footstep notify › Emit Sound (Self, DA_Sound_Footstep)              without it, hearing hears nothing

Ten words#

WordMeaning
Confidence0 to 1: how sure the AI is that a target is there. Every sense gives one per target each time it runs.
Fused, SmoothedFused is this update's combination of the senses. Smoothed drives everything: it rises while a sense reports, holds, and fades only once every sense is silent.
StatesUndetected, Suspected, Detected, Tracked, Lost, Remembered, Expired: per target, with an event for each
AwarenessThe AI's overall alert level, from its top target: Unaware, Peripheral, Suspicious, Alerted, Fully Aware
Attention targetThe one target it focuses on, among those it has noticed. Sticky, so it doesn't flick between two. It may only be suspected: check the state before acting on it
Loss ReasonWhy it lost you: OutOfRange, Occluded, SoundFaded, ScentLost, SensorDropout, TargetDestroyed. It decides how to search.
Belief RecordEverything it holds about one target; Get Belief Data returns it
ProfileThe data asset with every perception setting for one kind of AI
EvidenceA scripted floor, ceiling, reduction or reset on belief: a disguise, an alibi, a cutscene
Place beliefA belief about a location, not an actor: a noise nobody made

Ten nodes#

Node (APS Core)GivesFor
Get Attention TargetActorIts focus among the targets it has noticed. Chase it only at Suspicious or more (Get Awareness Level for Target)
Get Last Known PositionVectorWhere to search
Get Loss ReasonELossReasonHow to search: branch on it
Get Uncertainty RadiusFloatThe search radius; grows while you hide
Get Awareness LevelEAwarenessLevelMusic, weapon poses, the HUD
Get Belief DataBelief RecordEverything about one target (a meter: its Smoothed Confidence)
Get Sense ContributionsEach sense's shareDid it see me or only hear me?
Emit SoundA noise the AI can hear (any Blueprint)
Set Target ConfidenceRaise belief from script (it never lowers it)
Set ProfileSwap the whole perception setup

Eight events#

EventFires whenTypical response
On AI TelegraphIt's about to notice youA "Hm?", a head turn
On AI SuspectSomething is thereLook, walk over
On AI DetectIt's sureAlert, take cover, call it in
On AI TrackLocked onChase, shoot
On AI LostContact brokenRead Get Loss Reason, then search
On AI ForgetIt gave up (Expired), or a target fell back to UndetectedBack to patrol
On Attention ChangedA new focus (maybe one it only suspects)Re-plan between targets you know are Detected
On AI DamagedIt was hitReact to an unseen attacker

Also: On AI See, On AI Hear, On AI Smell, On AI Feel (touch) and On AI Sense Vibration each time a sense reports; On AI Remember; On AI All Clear when it believes in nobody any more; On AI Awareness Changed; On AI Think Threat when a target's threat level changes, and On Threat Identified when one rises to High or Critical; On Target State Changed for every state change. All events: Events.

More queries#

Node (APS Core)Gives
Get Top Target, Get Top Target BeliefThe best-scoring target it has noticed, this update (it can change often)
Get Targets Sorted by ScoreEvery actor it holds a belief about, best first
Get Threat Level (Target), Get Highest Threat Level, Has Threat at or Above (Level)Threat, per target or overall
Get Stimulus Source (Target)The sense that first made the belief (the current one is the events' Stimulus)
Has Any Detection, Get Active Target CountIs it aware of anyone; how many actors it is Suspected to Lost about
Get Predicted Position, Get Estimated Velocity, Get Estimated Acceleration (Target)Where it thinks you're going (Memory)
Get Recent Episodes (Target)Its last five encounters with you (Memory)
Get Perceived ObjectsBeliefs about things (bodies, forced locks), not someone
Get Location Beliefs, Get Strongest Location Belief, Report Location Belief, Clear Location BeliefBeliefs about places: read them, add one, drop one (How APS thinks)

On the APS Subsystem: Get Agent Count (how many APS Cores are running), Is Perceived as Object (Actor). On an APS Target Component: Get Effective Stance.

Loss reasonMeaningThe tree should
OccludedIt went behind somethingGo to the last known position, search that cover
OutOfRangeWalked out of range or the coneGo there, then on along Get Loss Direction
SoundFadedThe noise stoppedLook around there: don't chase
ScentLostThe trail went coldFollow Get Loss Direction like a trail
SensorDropoutToo dark, cloaked, blinded, or a sense just stoppedA short look, then patrol
TargetDestroyedThe actor is goneClear the target

What feeds each sense#

SenseNeeds from youThrough walls?
VisionNothingNo (glass and leaves partly, by surface)
HearingEmit Sound: requiredMuffled per wall
SmellNothingPartly (seeps under doors)
TouchNothing: wired automaticallyn/a
VibrationNothing for walking; Report Vibration Event for blastsYes
DamageNothing: wired automaticallyYes, any range
PainReport Pain from Definitionn/a
EcholocationNothingYes

Default thresholds#

ConfidenceStateAwareness
0.85 and upTrackedFully Aware
0.60 and upTrackedAlerted
0.35 and upDetectedSuspicious
0.25On AI Telegraph fires
0.15 and upSuspectedPeripheral
below 0.15UndetectedUnaware

Steps down need a 0.04 margin below the line. Tracked also needs Min Track Duration (0.5 s) in Detected first.

Difficulty dial#

SettingEasyNormalHard
Suspect Threshold, Detect Threshold, Track Threshold0.25, 0.50, 0.750.15, 0.35, 0.600.10, 0.25, 0.45
Confidence Rise Rate357
First Spot Reaction Time0.80.40.1
Min Time in Lost3815

Keep cone angles and occlusion the same on every difficulty. Ready-made AI

Performance dial#

LeverEffect
Base Update Interval 0.1 → 0.2Halves the perception cost
The Target Component's Visibility Samples 5 → 340% fewer vision traces
Max Tracked Targets 16 → 4Less memory, less sorting
One occlusion channel instead of threeA third of the traces
An APS Quality ProfileSlower updates, fewer samples, nothing reset
Enable Statistical TierDistant AI stop tracing (and see through walls: keep the threshold at 3)
Tier 4Suspended by itself, beyond about 225 m for an idle AI

Performance & crowds

See what it perceives#

APS Core › Details › APS › View › Show Visualizer      tick it
console: aps.Visualizer 0 | 1 | 2      nothing · everything · status only
         aps.VisualizerPage 0..6       Senses · Memory · Brain · Squad · Events · Player Model · Environment
         aps.Tune VisionMaxRange 5000  a setting on every AI, live

The Senses page answers most "why doesn't it see me": each sense shows what it reads, or why it reads nothing. A sense draws only if it is in Sense Classes: no smell ring means no Smell Sense. Visualizer & debugging

Quick fixes#

SymptomFix
Detects nothing at allNo profile assigned, Sense Classes empty, or the APS Core is on the controller (it must be on the Pawn)
Hears nothingNothing calls Emit Sound
Sees through doorsAdd their channel to Vision Occlusion Channels (the list replaces Visibility: keep it in)
Sees you the instant you step outFirst Spot Reaction Time 0.3 to 0.5
Sees you before it has turnedEye Turn Rate Deg Per Sec about 200
Forgets instantlyVision Loss Grace Time 0.8 to 1.5
Never forgetsRaise Default Decay Exponent
Searches in a dumb circleBranch on Get Loss Reason
The whole squad knows at onceAuto Share on Detect off
A client sees nothingGet Replicated Perception State (Multiplayer)
The cone points at the skyEye Socket Alignment Automatic
Crouching doesn't hide youMin Visible Points Crouched 2, and an APS Target Component on the player
"Why can't it see me?"Print Explain Perception (Target)
A thrown can is ignoredNoises nobody made arrive on On Location Belief Changed, not On AI Hear
A setting seems to do nothingSome do nothing in APS 3.0: the reference marks them (Troubleshooting)

Things that surprise people#

  • Confidence never falls while a sense reports you. It rises or holds; fading starts only when every sense is silent.
  • **Vision Sample Count is ignored for a target with an APS Target Component**: the component brings its own five points.
  • Never-search zones are advice. Your search asks Is Location in Never Search Zone; nothing is blocked for you.
  • Pain Sense reads your health by itself and dulls every sense with it: at half health, half strength.
  • Noises nobody made never fire On AI Hear. Emit Sound at Location makes a belief about a place.
  • An idle AI never reaches tier 0: it updates at half rate at best until it is Suspicious.
  • An explosion shakes the ground for vibration only if its sound type's Sound Name is exactly Explosion.
  • 100 damage from one attacker is full confidence. Scale to your damage numbers.
  • Set Target Confidence only raises. To lower or clear belief, use Add Target Evidence.
  • Allies count. Guards perceive each other: they take target slots and count toward fear ("more than 2 targets").
APS Advanced Perception System, by AuraGame. Unreal Engine 5.2 and later. These docs are for APS 3.0.
Questions and bug reports