APSDocs

Events#

Generated from the APS 3.0 source code: every name, pin, default and description below is read from the plugin itself, so it matches what you see in the editor.

Two kinds of events. Bind the first kind: select the component, and at the bottom of its Details click + next to the event. Override the second kind in a Blueprint made from the class (a Listener, a policy, a sense), from the Functions list's Override menu.

Events you bind#

APS Core#

On AI See
Event on APS Core APS › Sense Events
TargetActorConfidenceFloatDistanceFloat

Fires each time vision (or echolocation) reports the target: about every 0.15 s while it is seen.

On AI Hear
Event on APS Core APS › Sense Events
LocationVectorLoudnessFloatSound Type NameName

Fires on each hearing update that hears the target: when a sound of theirs arrives, and again on each update after it while the built-up noise lasts. On those build-up updates Sound Type Name is None and Location is where the target is now, not where the sound was. For one event per sound, use On Sound Heard.

On AI Smell
Event on APS Core APS › Sense Events
LocationVectorIntensityFloatScent TagName

Fires each time smell reports the target: about every 0.25 s while it smells them.

On AI Feel
Event on APS Core APS › Sense Events
InstigatorActorContact TypeContact TypeStrengthFloat

Fires when touch reports a contact from the target.

On AI Sense Vibration
Event on APS Core APS › Sense Events
LocationVectorStrengthFloatSurfaceSurface Type

Fires when vibration reports something: a target's footsteps, or a vibration at a place. No line of sight needed.

On AI Suspect
Event on APS Core APS › Lifecycle Events
TargetActorLocationVectorStimulusStimulus Source

A target entered Suspected: from Undetected, or stepping down from Detected.

On AI Detect
Event on APS Core APS › Lifecycle Events
TargetActorThreat LevelThreat LevelStimulusStimulus Source

A target entered Detected: from Suspected, stepping down from Tracked, or found again after Lost or Remembered.

On AI Track
Event on APS Core APS › Lifecycle Events
TargetActorPredicted PositionVectorConfidenceFloat

A target entered Tracked: high, sustained confidence.

On AI Lost
Event on APS Core APS › Lifecycle Events
TargetActorLast KnownVectorPredictedVectorLast Cover ActorActor

A target entered Lost. Gives where it was last placed, where it is predicted to be, and the cover it went behind.

On AI Remember
Event on APS Core APS › Lifecycle Events
TargetActorLocationVectorAge SecondsFloat

A lost target faded to Remembered. Age Seconds is the time since the AI first noticed it.

On AI Forget
Event on APS Core APS › Lifecycle Events
TargetActor

The AI let go of a target: it Expired, or dropped back to Undetected.

On AI Think Threat
Event on APS Core APS › Brain Events
TargetActorLevelThreat LevelScoreFloat

A target's threat level changed.

On Threat Identified
Event on APS Core APS › Brain Events
TargetActorThreat LevelThreat LevelStimulus SourceStimulus SourceBelief RecordBelief Record

A target's threat rose to High or Critical.

On AI All Clear
Event on APS Core APS › Brain Events

No actor is left at Suspected, Detected, Tracked or Lost (Get Active Target Count fell to 0): time to stand down.

On AI Awareness Changed
Event on APS Core APS › Brain Events
PreviousAwareness LevelNewAwareness Level

The AI's overall alert level changed (Unaware, Peripheral, Suspicious, Alerted, Fully Aware).

On AI Pain Reported
Event on APS Core APS › Brain Events
Pain DefPain Type DefinitionPain LevelFloat

Fires for each Report Pain from Definition, on the next update: the pain asset, and its level after that report.

On AI Damaged
Event on APS Core APS › Brain Events
InstigatorActorAmountFloatDamage Type TagNameHit LocationVector

Fires on every Unreal damage call that hits the AI (Apply Damage, Apply Point Damage, Apply Radial Damage), with or without Damage Sense: who did it, how much, the damage type's short tag and where.

On Target State Changed
Event on APS Core APS › Brain Events
TargetActorOld StateBelief Lifecycle StateNew StateBelief Lifecycle State

Fires on every lifecycle state change — provides old and new state.

On Emotional State Changed
Event on APS Core APS › Brain Events
Old DominantEmotion TypeNew DominantEmotion Type

The dominant emotion changed: gives the old one and the new one.

On Attention Changed
Event on APS Core APS › Brain Events
Old TargetActorNew TargetActor

The AI's focus moved to a different target. Old Target is none the first time. The new target can be one the AI only suspects, so check its state before reacting; to start a chase, use On AI Detect.

On AI Squad Alert
Event on APS Core APS › Squad Events
TargetActorLocationVectorThreatThreat Level

A squadmate told this AI something new: a shared target, or a place and threat (Broadcast Alert to Squad). It doesn't fire again for the same news.

On Combat Role Assigned
Event on APS Core APS › Squad Events
RoleCombat Role

Fires when this AI is assigned a combat role.

On Sound Heard
Event on APS Core APS › View
SoundAPSHeard Sound

Fires for every sound this AI hears, after its sound filter: where it came from, how loud it was made and how loud it arrived, the distance, the walls between and whether the path was clear. A noise with no maker is included (No Maker). Once per sound per perception pass.

On Replicated State Changed
Event on APS Core APS › Replication

Fires on clients when a new replicated summary arrives. Not on a listen-server host or in single player.

On AI Telegraph
Event on APS Core APS › Fairness
TargetActorConfidenceFloat

Fires once when confidence in a target reaches Telegraph Threshold, before the AI commits; again only after it has let that target go. Put a huh? bark or a head turn here.

On Location Belief Changed
Event on APS Core APS › Belief
LocationVectorTagNameStateBelief Lifecycle StateConfidenceFloat

A belief about a place (a noise nobody made, a blast) changed state.

APSKnowledge Subsystem#

On Knowledge Updated
Event on APSKnowledge Subsystem APS › Knowledge
FactionNameEntry IdInteger

Fires when a report reaches a faction: a new entry, or one merged into an existing entry. Gives the faction and the entry's id.

On Faction Alert Changed
Event on APSKnowledge Subsystem APS › Knowledge
FactionNameAlertFloat

Fires when a faction's alert level changes: raised, set, or noticeably decayed over time. Gives the faction and its new alert, 0 to 1.

Events you override#

APS Perception Listener#

Put your reactions in a Blueprint made from APS Perception Listener and add it to every AI that should share them. These are the events you implement there.

On AI Seeoverride in Blueprint
Event to override Target is APS Perception Listener APS › Sense Events
TargetActorConfidenceFloatDistanceFloat

Fires each time vision (or echolocation) reports the target: about every 0.15 s while it is seen.

On AI Hearoverride in Blueprint
Event to override Target is APS Perception Listener APS › Sense Events
LocationVectorLoudnessFloatSound Type NameName

Fires on each hearing update that hears the target: when a sound of theirs arrives, and again on each update after it while the built-up noise lasts. On those build-up updates Sound Type Name is None and Location is where the target is now, not where the sound was. For one event per sound, use On Sound Heard.

On AI Smelloverride in Blueprint
Event to override Target is APS Perception Listener APS › Sense Events
LocationVectorIntensityFloatScent TagName

Fires each time smell reports the target: about every 0.25 s while it smells them.

On AI Feeloverride in Blueprint
Event to override Target is APS Perception Listener APS › Sense Events
InstigatorActorContact TypeContact TypeStrengthFloat

Fires when touch reports a contact from the target.

On AI Sense Vibrationoverride in Blueprint
Event to override Target is APS Perception Listener APS › Sense Events
LocationVectorStrengthFloatSurfaceSurface Type

Fires when vibration reports something: a target's footsteps, or a vibration at a place. No line of sight needed.

On AI Suspectoverride in Blueprint
Event to override Target is APS Perception Listener APS › Memory Events
TargetActorLocationVectorStimulusStimulus Source

A target entered Suspected: from Undetected, or stepping down from Detected.

On AI Detectoverride in Blueprint
Event to override Target is APS Perception Listener APS › Memory Events
TargetActorThreat LevelThreat LevelStimulusStimulus Source

A target entered Detected: from Suspected, stepping down from Tracked, or found again after Lost or Remembered.

On AI Trackoverride in Blueprint
Event to override Target is APS Perception Listener APS › Memory Events
TargetActorPredicted PositionVectorConfidenceFloat

A target entered Tracked: high, sustained confidence.

On AI Lostoverride in Blueprint
Event to override Target is APS Perception Listener APS › Memory Events
TargetActorLast KnownVectorPredictedVectorLast Cover ActorActor

A target entered Lost. Gives where it was last placed, where it is predicted to be, and the cover it went behind.

On AI Rememberoverride in Blueprint
Event to override Target is APS Perception Listener APS › Memory Events
TargetActorLocationVectorAge SecondsFloat

A lost target faded to Remembered. Age Seconds is the time since the AI first noticed it.

On AI Forgetoverride in Blueprint
Event to override Target is APS Perception Listener APS › Memory Events
TargetActor

The AI let go of a target: it Expired, or dropped back to Undetected.

On AI Think Threatoverride in Blueprint
Event to override Target is APS Perception Listener APS › Brain Events
TargetActorLevelThreat LevelScoreFloat

A target's threat level changed.

On AI All Clearoverride in Blueprint
Event to override Target is APS Perception Listener APS › Brain Events

No actor is left at Suspected, Detected, Tracked or Lost (Get Active Target Count fell to 0): time to stand down.

On AI Awareness Changedoverride in Blueprint
Event to override Target is APS Perception Listener APS › Brain Events
PreviousAwareness LevelNewAwareness Level

Overall awareness level changed (Unaware / Peripheral / Suspicious / Alerted / Fully Aware).

On AI Pain Reportedoverride in Blueprint
Event to override Target is APS Perception Listener APS › Brain Events
Pain TypeNamePain LevelFloatThreshold CrossedFloatPain DefPain Type Definition

Fires for each Report Pain from Definition, on the next update: Pain Type (the asset's name), Pain Level (after that report), Threshold Crossed (always -1, kept for older Blueprints) and Pain Def (the asset).

On AI Damagedoverride in Blueprint
Event to override Target is APS Perception Listener APS › Brain Events
InstigatorActorAmountFloatDamage Type TagNameHit LocationVector

Fires on every Unreal damage call that hits the AI (Apply Damage, Apply Point Damage, Apply Radial Damage), with or without Damage Sense: who did it, how much, the damage type's short tag and where.

On AI Squad Alertoverride in Blueprint
Event to override Target is APS Perception Listener APS › Squad Events
TargetActorLocationVectorThreatThreat Level

A squadmate told this AI something new: a shared target, or a place and threat (Broadcast Alert to Squad). It doesn't fire again for the same news.

On AI Telegraphoverride in Blueprint
Event to override Target is APS Perception Listener APS › Fairness Events
TargetActorConfidenceFloat

Confidence about a target crossed Telegraph Threshold — the moment for a "huh?" bark or head-turn before the AI commits to full alert. Once per target.

On Attention Changedoverride in Blueprint
Event to override Target is APS Perception Listener APS › Brain Events
Old TargetActorNew TargetActor

The AI's focus moved to a different target. Old Target is none the first time. The new target can be one the AI only suspects, so check its state before reacting; to start a chase, use On AI Detect.

On Location Belief Changedoverride in Blueprint
Event to override Target is APS Perception Listener APS › Belief Events
LocationVectorTagNameStateBelief Lifecycle StateConfidenceFloat

A belief about a place (a noise nobody made, a blast) changed state.

Sense Unit#

Evaluateoverride in Blueprint
Event to override Target is Sense Unit Perception › Sense
ContextPerception ContextProfilePerception ProfileTargetActor
Out ResultPerception Sense Result

Override it in your own sense: judge one target and fill in Out Result (Is Active, Confidence, Estimated Location, Location Accuracy, Sense ID).

Get Sense IDoverride in Blueprint
Event to override Target is Sense Unit Perception › Sense
Return ValueName

Override it in your own sense: return its name, for example Thermal. It is what Get Sense Contributions and the Visualizer show.

APS Observer#

On Evidence Discoveredoverride in Blueprint
Event to override Target is APS Observer APS › Observer › Evidence
Evidence ActorActorEvidence TagNameLocationVector

Fires the first time this AI notices a given piece of evidence.

By the time it fires, a belief about the place and a memory have already been recorded — so a handler can read them. What it MEANS is yours: raise the alarm, investigate quietly, or step over it.

APS Fusion Policy#

Make a Blueprint child of this class and set it on the profile's Fusion Policy to decide how senses combine.

Fuse Confidenceoverride in Blueprint
Event to override Target is APS Fusion Policy APS › Policy
SamplesArray of APSSense SampleCorroboration BonusFloat
Return ValueFloat

Override it: combine this update's sense readings into one confidence, 0 to 1. Samples has one entry per sense, in the profile's order (Sense ID, Confidence, Weight, Is Active). Corroboration Bonus is the profile's, for reference.

APS Threat Policy#

Make a Blueprint child and set it on the profile's Threat Policy to score threats your way.

Score Threatoverride in Blueprint
Event to override Target is APS Threat Policy APS › Policy
RecordBelief RecordRelationshipTarget Relationship
Return ValueFloat

Override it: return how dangerous the target is, 0 to 1. Record is everything the AI believes about the target; Relationship comes from its APS Relationship. APS still turns the score into a level with the profile's thresholds, and keeps Friendly, Teammate and Expired targets at None.

APS Attention Policy#

Make a Blueprint child and set it on the profile's Attention Policy to choose what the AI attends to.

Select Attention Targetoverride in Blueprint
Event to override Target is APS Attention Policy APS › Policy
CandidatesArray of Belief RecordCurrentActorTime on CurrentFloatStickiness TimeFloatSwitch ThresholdFloat
Return ValueActor

Override it: return the target the AI should commit to, Current to keep it, or none. Candidates are the actors it holds beliefs about, best first. Time on Current is how long it has held Current; Stickiness Time and Switch Threshold are the profile's, so you can honour them. It replaces the built-in rule entirely.

APS Significance Policy#

Make a Blueprint child and set it on the APS subsystem to rank which AI get full-quality updates.

Score Significanceoverride in Blueprint
Event to override Target is APS Significance Policy APS › Significance
AgentAPS CoreNearest Viewer DistFloatIs EngagedBooleanAwarenessInteger
Return ValueFloat

Override it: return how important this AI is, 0 to 1. More important AI update more often and win the frame budget. Nearest Viewer Dist is the distance to the closest player camera in cm (0 on a dedicated server); Is Engaged is true while its awareness is Suspicious or higher; Awareness is 0 (Unaware) to 4 (Fully Aware).

APSHealth Provider#

An interface: implement it on your character so APS can read its health without knowing your health system.

Get APSHealth Fractionoverride in Blueprint
Event to override Target is APSHealth Provider APS › Adapters
Return ValueFloat

Remaining health as a fraction, 1 for untouched and 0 for dead. Values outside that range are clamped.

APSStance Provider#

An interface: implement it on your character so APS can read its stance (standing, crouching, prone) from your own movement code.

Get APSStanceoverride in Blueprint
Event to override Target is APSStance Provider APS › Adapters
Return ValueAPSStance

Implement it to tell APS the posture: Standing, Crouched or Prone.

APS Advanced Perception System, by AuraGame. Unreal Engine 5.2 and later. These docs are for APS 3.0.
Questions and bug reports