APSDocs

Profile settings#

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.

Everything an AI perceives, and how sharply, is set on its Perception Profile (a Data Asset). These are all of its settings, in the order and groups of its Details panel. A new profile works as it is: every setting has a working default.

Composition#

Parent ProfilePerception Profile
Default NoneOverride name ParentProfile

Inherit every setting from this profile, keeping only the fields changed here.

A field counts as changed when it differs from the class default — exactly the fields the Details panel marks with a revert-to-default arrow. Leave a field alone and it tracks the parent; edit it and it is yours.

Start a child from a NEW profile rather than a duplicate of the parent. A duplicate carries every one of the parent's tuned values as changed fields, so it would inherit nothing and drift the moment the parent moves on.

To pin a value that happens to equal the class default, put it in Overrides below — that list is read after inheritance and always wins.

Composition is resolved once, when an agent starts or swaps profiles, into a private copy owned by that agent. Editing the parent therefore affects agents that spawn afterwards, not ones already running.

Use Show Composition to see exactly which fields are inherited.

OverridesArray of APSProfile Override
Override name Overrides

Extra changes stamped on after inheritance is resolved.

Rarely needed on an asset — editing the field directly is the normal way to override one. This exists for values a Blueprint wants to compute, and it is the same list the component uses for per-agent tweaks.

Archetype#

ArchetypeAPSArchetype
Default GuardOverride name Archetype

Preset to stamp onto this profile when Apply Archetype is pressed.

Applying overwrites the fields the archetype cares about and leaves the rest alone. It is a starting point, not a mode — nothing reads this at runtime.

Workbench#

Compare ToPerception Profile
Default NoneOverride name CompareTo

The profile Compare With reports differences against.

Senses#

Setup#

Sense ClassesArray of Sense Unit Class
Override name SenseClasses

Sense classes to instantiate on this AI. Order = slot index.

A new profile starts with Vision and Hearing already here, so an AI works the moment you assign the profile. Add Smell, Touch, Vibration, Damage, Pain or Echolocation as you need them — or remove Hearing for an AI that only sees. An empty list means the AI perceives nothing at all.

Sense WeightsMap of Sense Unit Class to Float
Override name SenseWeights

Per-sense confidence weight. Missing = 1.0.

Sense IntervalsMap of Sense Unit Class to Float
Override name SenseIntervals

How often each sense updates, in seconds, by sense. A sense not listed uses its own: Vision 0.15, Smell 0.25, Echolocation 0.3, the others 0.1.

Pain#

Pain Vision FloorFloat
Default 0Override name PainVisionFloor0 to 1

The least that pain or low health can dull vision to, 0 to 1. Other senses can go to 0.

Touch#

Auto Wire Touch EventsBoolean
Default OnOverride name bAutoWireTouchEvents

Automatically route the owner's collision hits and overlaps into the Touch sense. Without this every bump has to be hand-wired from Blueprint.

Auto Wire Overlap as GrabBoolean
Default OffOverride name bAutoWireOverlapAsGrabonly when Auto Wire Touch Events is on

Treat the AI's overlaps as a held Grab, not only its blocking hits as Bumps.

Policies#

Fusion PolicyAPS Fusion Policy Class
Override name FusionPolicy

How several senses combine into one confidence value.

Threat PolicyAPS Threat Policy Class
Override name ThreatPolicy

How dangerous a target is. The level is still derived from the Brain|Threat thresholds below, so a policy only supplies the score.

Attention PolicyAPS Attention Policy Class
Override name AttentionPolicy

Which target the AI commits its focus to.

Ranges#

Vision Max RangeFloat
Default 2000Override name VisionMaxRangeat least 1

Vision: max sight distance (cm).

Hearing Max RangeFloat
Default 1500Override name HearingMaxRangeat least 1

How far hearing reaches when a sound has no Sound Type of its own, and part of how far away AI look for targets at all (cm). Each Sound Type sets how far its sound carries.

Smell Max RangeFloat
Default 400Override name SmellMaxRangeat least 1

Smell: max scent detection range (cm).

Vibration Detect RangeFloat
Default 800Override name VibrationDetectRangeat least 1

Vibration: max ground vibration range (cm). Passes through walls.

Echo RangeFloat
Default 1500Override name EchoRange100 to 10000

Echolocation: sonar pulse range (cm).

Auto Confidence from DamageBoolean
Default OnOverride name bAutoConfidenceFromDamage

On: being hurt raises the AI's confidence in the attacker to the damage taken from them so far ÷ 100, at any range. Off: damage only fires On AI Damaged, and it adds nothing to threat or emotions either.

Detection#

Vision Half Angle DegFloat
Default 60Override name VisionHalfAngleDeg1 to 180

Half the width of the main (focal) vision cone, in degrees: 60 sees 60° to each side.

Vision Sample CountInteger
Default 5Override name VisionSampleCount1 to 5

How many of the built-in sample points (head, chest, pelvis, shoulders) vision traces, 1 to 5. Only for targets without an APS Target Component and when Default Visibility Samples is empty.

Darkness Min DetectionFloat
Default 0.1Override name DarknessMinDetection0 to 1

How much the AI still sees in total darkness, 0 to 1: 0 is blind in the dark, 1 ignores darkness (infrared).

Eye Height OffsetFloat
Default 64Override name EyeHeightOffset

How high the eyes are above the actor's origin, in cm: used without Use Eye Socket, or when the socket doesn't exist.

Vision Distance CurveCurveFloat
Default NoneOverride name VisionDistanceCurve

Optional: replaces the default distance falloff. X is the distance as a share of the range (0 to 1); Y is how much confidence is left.

Vision Angle CurveCurveFloat
Default NoneOverride name VisionAngleCurve

Optional: replaces the default falloff across the cone. X is the angle as a share of the cone's half-width (0 to 1); Y is how much confidence is left.

Motion Bonus CurveCurveFloat
Default NoneOverride name MotionBonusCurve

Optional: replaces the default movement bonus. X is the target's speed in cm/s; Y multiplies confidence (kept between 0.5 and 1.5).

Hearing Base ThresholdFloat
Default 0.3Override name HearingBaseThreshold0.01 to 2

Does nothing in APS 3.0. No code reads it: there is no noise floor. Use Suspect Threshold, and a Sound Filter Profile's Min Alert Level.

Wall Absorption CoeffFloat
Default 0.4Override name WallAbsorptionCoeff0 to 1

How much each wall between a sound and the AI muffles it: each wall multiplies the sound by e to the minus this (0.4 takes about a third off).

Sound Event Only ModeBoolean
Default OnOverride name bSoundEventOnlyMode

Does nothing in APS 3.0. No code reads it: hearing is always event-only (it hears only the sounds you emit).

Sound FilterSound Filter Profile
Default NoneOverride name SoundFilter

Optional sound filter — which categories/alert levels this AI hears.

Sound Accumulation RateFloat
Default 0.5Override name SoundAccumulationRate0.01 to 5

How fast repeated sounds build up confidence.

Sound Accumulation Hold TimeFloat
Default 1Override name SoundAccumulationHoldTime0 to 10

Seconds of silence before accumulated sound confidence starts decaying.

Sound Accumulation Decay RateFloat
Default 0.2Override name SoundAccumulationDecayRate0.01 to 5

Confidence decay rate per second after hold time expires.

Smell Accumulation RateFloat
Default 0.1Override name SmellAccumulationRate0.01 to 5

How fast smell confidence builds per second while in range.

Smell Decay RateFloat
Default 0.05Override name SmellDecayRate0.01 to 5

How fast smell confidence decays per second after target leaves range.

Vibration Min SpeedFloat
Default 10Override name VibrationMinSpeed0 to 1000

Minimum target movement speed (cm/s) to produce detectable vibration.

Touch ConfidenceFloat
Default 1Override name TouchConfidence0.1 to 1

Does nothing in APS 3.0. No code reads it: touch strength comes from the contact report and the contact type's multiplier.

Touch Max Impulse for Full StrengthFloat
Default 1000Override name TouchMaxImpulseForFullStrengthat least 1

Physics impulse magnitude that maps to Strength=1.0.

Touch Persistent Accumulation RateFloat
Default 0.3Override name TouchPersistentAccumulationRate0 to 5

Confidence gained per second while a persistent contact is held.

Touch Max Persistent BonusFloat
Default 0.5Override name TouchMaxPersistentBonus0 to 1

Maximum extra confidence from persistent contact duration.

Echo DirectionalBoolean
Default OffOverride name bEchoDirectional

Echolocation only pings forward: it ignores targets more than about 101° off its facing.

Eyes#

Use Eye SocketBoolean
Default OffOverride name bUseEyeSocket

Take the eye position from a mesh socket instead of Eye Height Offset: sight then starts where the head really is, as it animates.

Eye Socket NameName
Default headOverride name EyeSocketNameonly when Use Eye Socket is on

Socket / bone the eyes sit on. Typical: "head", "eyes", "S_Eyes".

Eye Direction ModeAPSEye Direction Mode
Default Actor RotationOverride name EyeDirectionMode

Where the cone's FACING comes from. Socket Rotation makes the cone follow the head bone.

Eye Socket AlignmentAPSEye Socket Alignment
Default Automatic (recommended)Override name EyeSocketAlignmentonly when Eye Direction Mode is EAPSEyeDirectionMode::SocketRotation || EyeDirectionMode == EAPSEyeDirectionMode::Blended

How the socket's rotation becomes a look direction. On Automatic you can name a plain bone (head, eyes) and APS works out how it is oriented from the skeleton's rest pose: the cone starts along the character's forward and follows the bone.

Eye Socket Rotation OffsetRotator
Default (0, 0, 0)Override name EyeSocketRotationOffsetonly when Eye Socket Alignment is Manual Offset

A correction you set by hand, used only when Eye Socket Alignment is Manual Offset: it turns the socket's forward onto the character's forward.

Eye Socket Rotation WeightFloat
Default 0.5Override name EyeSocketRotationWeight0 to 1only when Eye Direction Mode is Blended (actor + socket)

With Eye Direction Mode Blended: how much of the facing comes from the socket, 0 (all actor) to 1 (all socket).

Eye Turn Rate Deg Per SecFloat
Default 0Override name EyeTurnRateDegPerSec0 to 1440

How fast the AI's view may turn, in degrees per second. 0 turns instantly (Unreal's own perception snaps to a Move To target before the body has turned). Set it near your character's real turn rate so it can't see you before it has turned to look.

Visibility#

Default Visibility SamplesArray of APSVisibility Sample
Override name DefaultVisibilitySamples

Sample points traced when the target has no APS Target Component. Offsets are in the target's LOCAL space, so they rotate with it — a prone or turned target samples the right places. Leave empty to use the built-in head / chest / pelvis / shoulders set.

Min Exposure to RegisterFloat
Default 0Override name MinExposureToRegister0 to 1

How much of a target must be visible (0 to 1, weighted by its points) before it counts as seen at all. 0: one visible point is enough. Raise it so a sliver of shoulder behind cover isn't seen.

Min Visible Points StandingInteger
Default 1Override name MinVisiblePoints_Standing1 to 16

How many of a standing target's sample points must be visible before it registers at all. 1 by default for every stance, so stance changes nothing until you raise these.

Min Visible Points CrouchedInteger
Default 1Override name MinVisiblePoints_Crouched1 to 16

How many of a crouched target's sample points must be visible before it registers at all. 1 by default (stance changes nothing); raise it to 2 for stance-aware stealth.

Min Visible Points ProneInteger
Default 1Override name MinVisiblePoints_Prone1 to 16

How many of a prone target's sample points must be visible before it registers at all. 1 by default; raise it to 3 for stance-aware stealth.

Occlusion#

Vision Occlusion ChannelsArray of Collision Channel
Override name VisionOcclusionChannels

The collision channels that block sight. Empty means Visibility only. A list replaces Visibility, so include it if your walls block it. Each extra channel is one more trace per point.

Pawns Block SightBoolean
Default OffOverride name bPawnsBlockSight

Bodies block sight: the Pawn channel is traced too, so squadmates hide what is behind them.

Surface Vision TransmissionMap of Physical Surface to Float
Override name SurfaceVisionTransmission

How much sight passes through each physical surface, 0 to 1: 1 fully see-through (glass), 0.4 partly (foliage, smoke). Surfaces not listed block completely.

Cones#

Use Separate Vertical FOVBoolean
Default OffOverride name bUseSeparateVerticalFOV

Use a separate vertical half-angle, making the cone elliptical instead of perfectly round. Essential for games with verticality.

Vision Vertical Half Angle DegFloat
Default 40Override name VisionVerticalHalfAngleDeg1 to 180only when Use Separate Vertical FOV is on

Half the height of the vision cone, in degrees, with Use Separate Vertical FOV.

Enable Peripheral ConeBoolean
Default OffOverride name bEnablePeripheralCone

Enable a wider, weaker peripheral cone outside the focal cone.

Peripheral Half Angle DegFloat
Default 110Override name PeripheralHalfAngleDeg1 to 180only when Enable Peripheral Cone is on

Half the width of the side cone, in degrees. It must be wider than Vision Half Angle Deg to add anything.

Peripheral Confidence ScaleFloat
Default 0.45Override name PeripheralConfidenceScale0 to 1only when Enable Peripheral Cone is on

Confidence multiplier for detections made in the peripheral cone.

Peripheral Range ScaleFloat
Default 0.6Override name PeripheralRangeScale0.05 to 1only when Enable Peripheral Cone is on

How far the side cone reaches, as a share of Vision Max Range.

Enable Rear Motion ConeBoolean
Default OffOverride name bEnableRearMotionCone

Enable a rear cone that only registers MOVING targets — Thief's "false vision" cone. Stops players walking straight up behind an AI with impunity, without making the AI omniscient.

Rear Motion Half Angle DegFloat
Default 60Override name RearMotionHalfAngleDeg1 to 180only when Enable Rear Motion Cone is on

Rear cone half-angle measured from directly BEHIND the AI (degrees).

Rear Motion Min SpeedFloat
Default 300Override name RearMotionMinSpeedat least 0only when Enable Rear Motion Cone is on

Target must move at least this fast (cm/s) to register in the rear cone.

Rear Motion Confidence ScaleFloat
Default 0.25Override name RearMotionConfidenceScale0 to 1only when Enable Rear Motion Cone is on

Confidence multiplier for rear-cone detections. Keep low — this is a hint, not sight.

Rear Motion Range ScaleFloat
Default 0.35Override name RearMotionRangeScale0.05 to 1only when Enable Rear Motion Cone is on

How far the rear cone reaches, as a share of Vision Max Range.

Light#

Use Per Target LightBoolean
Default OffOverride name bUsePerTargetLight

Sample light AT THE TARGET rather than using one global ambient value. Without this, a dark corner is indistinguishable from broad daylight — the global level only models day/night.

Trace Sun ShadowBoolean
Default OnOverride name bTraceSunShadowonly when Use Per Target Light is on

With Use Per Target Light: trace from the target toward the sun to see whether it stands in shadow. Needs Set Sun Direction on the APS Subsystem.

Shadow Light LevelFloat
Default 0.25Override name ShadowLightLevel0 to 1only when Use Per Target Light is on

The light level a target in shadow gets, 0 to 1. Shadow only ever darkens.

Sun Trace DistanceFloat
Default 5000Override name SunTraceDistanceat least 100only when Use Per Target Light is on

How far the shadow trace reaches (cm).

Keyhole#

Keyhole VisionBoolean
Default OffOverride name bKeyholeVision

Make the focal cone wide up close and narrow far away.

Keyhole Near AngleFloat
Default 90Override name KeyholeNearAngle5 to 180only when Keyhole Vision is on

Half the cone's width up close (within Keyhole Near Distance), in degrees.

Keyhole Far AngleFloat
Default 15Override name KeyholeFarAngle1 to 90only when Keyhole Vision is on

Half the cone's width at full range, in degrees.

Keyhole Near DistanceFloat
Default 400Override name KeyholeNearDistanceat least 50only when Keyhole Vision is on

Up to this distance (cm) the cone is at its near width; beyond it narrows toward the far width.

Loss#

Vision LossSense Loss Config
Default Grace 0.3 s, direct cut, decay × 3Override name VisionLoss

How the AI loses a target when vision is the sense that last had it: Grace Time (0.3 s) before it may count as lost, Direct Cut (on: straight to Lost) and how fast belief then fades (× 3).

Hearing LossSense Loss Config
Default Grace 3 s, no direct cut, decay × 1Override name HearingLoss

Losing a target heard last: a 3 s grace, steps down through the states rather than cutting to Lost, normal fading (× 1).

Smell LossSense Loss Config
Default Grace 20 s, no direct cut, decay × 0.3Override name SmellLoss

Losing a target smelled last: a 20 s grace (scent lingers), steps down, slow fading (× 0.3).

Touch LossSense Loss Config
Default Grace 0.5 s, no direct cut, decay × 2Override name TouchLoss

Losing a target felt last: a 0.5 s grace, steps down, fading × 2.

Vibration LossSense Loss Config
Default Grace 0 s, no direct cut, decay × 5Override name VibrationLoss

Losing a target felt through the floor: no grace (stop moving and it's gone), steps down, fast fading (× 5).

Damage LossSense Loss Config
Default Grace 8 s, no direct cut, decay × 0.5Override name DamageLoss

Losing an attacker: an 8 s grace (it remembers being hit), steps down, slow fading (× 0.5).

Echolocation LossSense Loss Config
Default Grace 0.6 s, direct cut, decay × 2Override name EcholocationLoss

Losing a target pinged last: a 0.6 s grace, straight to Lost, fading × 2.

Fusion#

Corroboration BonusFloat
Default 0.1Override name CorroborationBonus0 to 0.5

What each extra sense that reports a target adds on top of the strongest one. Vision 0.8 alone is 0.8; with hearing too, 0.9. 0 uses the strongest sense alone.

Confidence Rise RateFloat
Default 5Override name ConfidenceRiseRate0.01 to 10

How fast confidence rises toward what the senses report. Higher is snappier detection.

Confidence Decay SmoothingFloat
Default 1.5Override name ConfidenceDecaySmoothing0.01 to 10

Does nothing in APS 3.0. No code reads it. Use Confidence Rise Rate, and each sense's Confidence Decay Multiplier in the Loss settings.

Standing Dwell RateFloat
Default 0.02Override name StandingDwellRate0.01 to 1

Extra confidence per second, while the AI keeps sensing a target standing still: the longer it looks, the surer it gets (never above what the senses report).

Moving Dwell RateFloat
Default 0.12Override name MovingDwellRate0.01 to 1

The same for a target moving fast (600 cm/s or more); speeds in between blend the two.

Confidence Reduce DelayFloat
Default 3Override name ConfidenceReduceDelay0 to 10

Does nothing in APS 3.0. No code reads it. Use Confidence Rise Rate, and each sense's Confidence Decay Multiplier in the Loss settings.

Memory#

Decay CurveCurveFloat
Default NoneOverride name DecayCurve

Optional: how much of its last confidence the AI keeps (Y) after so many seconds without sensing the target (X). Empty fades exponentially at Default Decay Exponent.

Long Term Decay CurveCurveFloat
Default NoneOverride name LongTermDecayCurve

Optional: how much long-term memory strength is left (Y) after so many seconds without sensing the target (X).

Default Decay ExponentFloat
Default 0.3Override name DefaultDecayExponent0.01 to 2

How fast belief fades once no sense has the target, when there is no Decay Curve. Higher forgets faster.

Memory Refresh BonusFloat
Default 0.1Override name MemoryRefreshBonus0 to 0.5

Extra confidence, given once per loss, when the AI senses again a target it had Lost or Remembered: finding you again locks on faster.

Memory Expire ThresholdFloat
Default 0.05Override name MemoryExpireThreshold0 to 0.2

Below this confidence a Remembered target Expires and its slot is freed.

Min Time in LostFloat
Default 0Override name MinTimeInLost0 to 60

Minimum seconds the AI must spend in Lost before it can transition to Remembered. 0 = no delay (default). Increase to make the AI search longer before giving up.

Memory Max SubjectsInteger
Default 32Override name MemoryMaxSubjects1 to 512

Distinct subjects one agent may hold memories about. The least recently written is dropped when this is exceeded.

Memory Max Tags Per SubjectInteger
Default 16Override name MemoryMaxTagsPerSubject1 to 64

Distinct tags per subject. The oldest is dropped when this is exceeded.

Memory Retention SecondsFloat
Default 300Override name MemoryRetentionSecondsat least 0

Seconds a memory (Remember) lasts without being written again. 0 keeps it for the whole session.

Awareness#

Suspect ThresholdFloat
Default 0.15Override name SuspectThreshold0 to 1

Confidence to enter Suspected state.

Detect ThresholdFloat
Default 0.35Override name DetectThreshold0 to 1

Confidence to enter Detected state.

Track ThresholdFloat
Default 0.6Override name TrackThreshold0 to 1

Confidence to enter Tracked state.

Full Aware ThresholdFloat
Default 0.85Override name FullAwareThreshold0 to 1

The confidence at which the AI's awareness becomes Fully Aware.

Min Track DurationFloat
Default 0.5Override name MinTrackDurationat least 0

Minimum seconds in Detected before transitioning to Tracked. Prevents instant lock.

Attention#

Attention Stickiness TimeFloat
Default 2Override name AttentionStickinessTime0 to 30

The least time, in seconds, the AI stays focused on its attention target before it will consider switching: for example 0.5 for a camera, 2 for a guard, 5 for a zombie.

Attention Switch ThresholdFloat
Default 0.2Override name AttentionSwitchThreshold0 to 1

How much better a rival must score to take the AI's attention.

Spatial#

Enable Spatial ModelBoolean
Default OnOverride name bEnableSpatialModel

Keep track of where targets are: Last Known Position, Uncertainty Radius and Predicted Position.

Enable PredictionBoolean
Default OffOverride name bEnablePrediction

Work out where a lost target is heading: Predicted Position moves ahead of the last known position, along its last movement.

Prediction HorizonFloat
Default 1Override name PredictionHorizon0.1 to 5

How far ahead, in seconds, Predicted Position looks along the target's last movement.

Max Prediction TimeFloat
Default 3Override name MaxPredictionTime

The longest Prediction Horizon allowed, in seconds.

Uncertainty Growth RateFloat
Default 50Override name UncertaintyGrowthRate

Rate at which uncertainty radius expands after losing target (cm/s).

Max Uncertainty RadiusFloat
Default 500Override name MaxUncertaintyRadius

Maximum uncertainty radius (cm).

Velocity Scaled UncertaintyBoolean
Default OnOverride name bVelocityScaledUncertainty

If true, fast-moving targets produce larger uncertainty when lost.

Velocity EMAWeightFloat
Default 0.3Override name VelocityEMAWeight0.05 to 1

How quickly the AI's measure of a target's speed follows changes, 0 to 1: lower is smoother, higher reacts faster.

Performance#

Async Vision TracesBoolean
Default OffOverride name bAsyncVisionTraces

Run vision's traces off the critical path. The exposure it reports is one vision update old (about 0.15 s). With more than one occlusion channel or any Surface Vision Transmission, APS traces normally anyway.

Base Update IntervalFloat
Default 0.1Override name BaseUpdateInterval0.016 to 2

How often perception runs, in seconds. Lower is more reactive and costs more; doubling it halves the cost.

Maintenance IntervalFloat
Default 0.5Override name MaintenanceInterval0.1 to 5

How often, in seconds, the AI tidies away beliefs that have expired.

Max Tracked TargetsInteger
Default 16Override name MaxTrackedTargets1 to 32

How many beliefs this AI can hold at once. The slots are set up when it starts, so it is memory as well as time.

Distance Tick ThrottlingBoolean
Default OnOverride name bDistanceTickThrottling

Let AI at tier 3 and 4 (far away and idle) update their component only every 0.1 and 0.25 s. Their perception timing doesn't change. For an idle AI those tiers start at about 150 m and 225 m from the nearest camera.

Sort Weight ConfidenceFloat
Default 0.5Override name SortWeightConfidence

How much confidence counts in a target's sort score (which picks the top target and who keeps a slot in a crowd).

Sort Weight RecencyFloat
Default 0.3Override name SortWeightRecency

How much having sensed the target recently counts in its sort score.

Sort Weight ProximityFloat
Default 0.2Override name SortWeightProximity

How much being close counts in its sort score.

Max Sort DistanceFloat
Default 5000Override name MaxSortDistance

Beyond this distance (cm) being close adds nothing to the sort score.

Crowd#

Enable Statistical TierBoolean
Default OffOverride name bEnableStatisticalTier

Let distant AI (from Statistical Tier Threshold) perceive by chance instead of tracing: cheap, but it doesn't see walls, so a statistical AI can notice through them.

Statistical Tier ThresholdInteger
Default 3Override name StatisticalTierThreshold1 to 4only when Enable Statistical Tier is on

The level of detail tier from which an AI goes statistical. At 3 only distant, unengaged AI do (for an idle AI, beyond about 150 m).

Statistical Detection RateFloat
Default 1Override name StatisticalDetectionRate0 to 10only when Enable Statistical Tier is on

Chance per second of noticing an ideally-placed target — close, lit, moving. Everything else scales this down.

Statistical Detection ConfidenceFloat
Default 0.5Override name StatisticalDetectionConfidence0 to 1only when Enable Statistical Tier is on

Confidence granted when a statistical detection lands. Deliberately modest: a distant agent that half-noticed something should be suspicious, not certain.

Brain#

Emotions#

Max FearFloat
Default 1Override name MaxFear0 to 1

The highest fear can climb to, 0 to 1. 0 turns fear off.

Max AggressionFloat
Default 1Override name MaxAggression0 to 1

The highest aggression can climb to, 0 to 1. 0 turns aggression off.

Max CuriosityFloat
Default 1Override name MaxCuriosity0 to 1

The highest curiosity can climb to, 0 to 1. 0 turns curiosity off.

Max AlertnessFloat
Default 1Override name MaxAlertness0 to 1

The highest alertness can climb to, 0 to 1. 0 turns alertness off.

Max PanicFloat
Default 1Override name MaxPanic0 to 1

The highest panic can climb to, 0 to 1. 0 turns panic off.

Fear Rise RateFloat
Default 0.5Override name FearRiseRate

How fast fear rises, per second, while the AI has been hurt by one of its targets, believes in more than two actors (allies count), faces a Critical threat, or has a Fear Input above 0. Fear Input also multiplies this rate.

Fear Decay RateFloat
Default 0.2Override name FearDecayRate

How fast fear falls, per second, once the AI believes in no one. While anyone remains, fear holds.

Aggression Rise RateFloat
Default 0.8Override name AggressionRiseRate

How fast aggression rises, per second, while the AI is hurt, tracks a target, or faces a high threat.

Aggression Decay RateFloat
Default 0.3Override name AggressionDecayRate

How fast aggression falls, per second, once no target is left and nothing has hurt it.

Curiosity Rise RateFloat
Default 0.4Override name CuriosityRiseRate

How fast curiosity rises, per second, while the AI only suspects something, or has heard something it can't see.

Curiosity Decay RateFloat
Default 0.6Override name CuriosityDecayRate

How fast curiosity falls, per second, once a target is Tracked or Lost, or nothing is left.

Alertness Rise RateFloat
Default 0.6Override name AlertnessRiseRate

How fast alertness rises, per second, while a target is Detected or Tracked.

Alertness Decay RateFloat
Default 0.1Override name AlertnessDecayRate

How fast alertness falls, per second, at all other times.

Panic Rise RateFloat
Default 0.3Override name PanicRiseRate

How fast panic rises, per second, while fear is above 0.8 with more than one target, or Fear Input is above 0.9.

Panic Decay RateFloat
Default 0.15Override name PanicDecayRate

How fast panic falls, per second, once fear is below 0.5 and Fear Input below 0.3.

Emotion Active ThresholdFloat
Default 0.2Override name EmotionActiveThreshold

An emotion must be above this to be the dominant emotion; when none is, the AI is Calm.

Panic Override ThresholdFloat
Default 0.75Override name PanicOverrideThreshold

Above this, panic is the dominant emotion whatever the others are.

Threat#

Threat Weight ConfidenceFloat
Default 0.35Override name ThreatWeight_Confidence

How much the AI's confidence in a target counts toward its threat score. The five weights are added up and the score is kept between 0 and 1.

Threat Weight Damage ReceivedFloat
Default 0.3Override name ThreatWeight_DamageReceived

How much the damage the target has done to this AI counts toward its threat score (100 damage counts in full).

Threat Weight SensesFloat
Default 0.15Override name ThreatWeight_Senses

How much it counts toward the threat score that several senses perceive the target at once: the number of active senses is divided by 8 (the most sense slots an AI can have), so a two-sense AI can add at most a quarter of this weight.

Threat Weight RelationshipFloat
Default 0.1Override name ThreatWeight_Relationship

How much who the target is counts toward its threat score: Feared 1.5, High Value 1.2, Enemy 1, Unknown 0.5, Neutral 0.3, Friendly and Teammate 0.

Threat Weight ApproachFloat
Default 0.1Override name ThreatWeight_Approach

A flat bonus to the threat score while the target is Detected or Tracked (sensed right now), nothing otherwise. The approach factor is 1 whenever the AI senses the target in APS 3.0, so this does not measure closing speed.

Threat Threshold LowFloat
Default 0.15Override name ThreatThreshold_Low

The threat score (0 to 1) at which a target becomes a Low threat.

Threat Threshold MediumFloat
Default 0.35Override name ThreatThreshold_Medium

The threat score at which a target becomes a Medium threat.

Threat Threshold HighFloat
Default 0.6Override name ThreatThreshold_High

The threat score at which a target becomes a High threat.

Threat Threshold CriticalFloat
Default 0.85Override name ThreatThreshold_Critical

The threat score at which a target becomes a Critical threat.

Threat Damage Decay RateFloat
Default 0.05Override name ThreatDamageDecayRate0 to 1

How fast the damage a target did fades from its threat score once the target is Lost, Remembered or Expired, per second. 0 never forgets.

Squad#

Squad Share RangeFloat
Default 3000Override name SquadShareRange

How far, in cm, a share reaches: the squad's radio range.

Min Threat to ShareThreat Level
Default LowOverride name MinThreatToShare

The least threat level a target needs before this AI shares it with its squad.

Auto Share on DetectBoolean
Default OnOverride name bAutoShareOnDetect

Share a target with the squad by itself as soon as it is Detected: one sees you, the pack comes. Off: share it yourself (Share Target with Squad).

Auto Share on TrackBoolean
Default OffOverride name bAutoShareOnTrack

Share by itself when a target is Tracked instead. Works only with Auto Share on Detect off.

Eligible RolesArray of Combat Role
Override name EligibleRoles

The combat roles this kind of AI may claim. Empty means any.

PlayerModel#

Enable Player Behavior ModelBoolean
Default OnOverride name bEnablePlayerBehaviorModel

Record how each target plays, for the session: crouch, walk and sprint shares, how encounters ended, where it hid. Your logic reads it (Get Player Behavior Model); APS doesn't change behaviour by itself.

Min Engagements RequiredInteger
Default 3Override name MinEngagementsRequired1 to 20only when Enable Player Behavior Model is on

How many encounters before the player model's Has Enough Data turns true.

Player Crouch Speed ThresholdFloat
Default 120Override name PlayerCrouchSpeedThresholdat least 10only when Enable Player Behavior Model is on

When no posture is reported, a target slower than this (cm/s) counts as crouching for the player model.

Player Sprint Speed ThresholdFloat
Default 500Override name PlayerSprintSpeedThresholdat least 100only when Enable Player Behavior Model is on

A target faster than this (cm/s) counts as sprinting for the player model.

Fairness#

First Spot Reaction TimeFloat
Default 0Override name FirstSpotReactionTime0 to 5

Seconds the AI must keep sensing a target it doesn't know yet before confidence starts to count: a beat for the player to step back. Only until it first suspects that target. 0 is instant.

Telegraph ThresholdFloat
Default 0.25Override name TelegraphThreshold0 to 1

The confidence at which On AI Telegraph fires: a warning before the AI commits. Keep it between Suspect Threshold and Detect Threshold.

Offscreen Hearing PenaltyBoolean
Default OffOverride name bOffscreenHearingPenalty

Hear worse while this AI is off the first player's screen (more than about 75° from where the camera points).

Offscreen Hearing MultiplierFloat
Default 0.75Override name OffscreenHearingMultiplier0 to 1only when Offscreen Hearing Penalty is on

How much of its hearing an off-screen AI keeps, 0 to 1.

Respect Never Search ZonesBoolean
Default OnOverride name bRespectNeverSearchZones

Whether this AI's Is Location in Never Search Zone answers. Off: it always answers false. APS enforces nothing by itself.

Replication#

Replicate Perception StateBoolean
Default OffOverride name bReplicatePerceptionState

Replicate a compact per-target perception summary to clients so client-side detection meters, HUD and spectator tools work without custom plumbing. Perception itself stays server-authoritative.

Max Replicated TargetsInteger
Default 3Override name MaxReplicatedTargets1 to 8only when Replicate Perception State is on

Maximum targets included in the replicated summary. Keep small — this is bandwidth on every AI.

Replication IntervalFloat
Default 0.25Override name ReplicationInterval0.05 to 2only when Replicate Perception State is on

Seconds between replicated state refreshes.

Use Replication RelevanceBoolean
Default OnOverride name bUseReplicationRelevanceonly when Replicate Perception State is on

Leave out of the replicated summary targets nobody is near (Replication Relevance Range) or that it barely suspects (Replication Min Confidence).

Replication Relevance RangeFloat
Default 15000Override name ReplicationRelevanceRangeat least 0only when Use Replication Relevance is on

A target whose believed position is further than this (cm) from every player camera is left out. 0 turns the distance test off.

Replication Min ConfidenceFloat
Default 0.1Override name ReplicationMinConfidence0 to 1only when Use Replication Relevance is on

Targets below this confidence are left out of the replicated summary.

Skip Unchanged ReplicationBoolean
Default OnOverride name bSkipUnchangedReplicationonly when Replicate Perception State is on

Send nothing when nothing changed by more than Replication Confidence Delta.

Replication Confidence DeltaFloat
Default 0.02Override name ReplicationConfidenceDelta0 to 0.5only when Skip Unchanged Replication is on

How much confidence must move before it is worth sending.

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