Special float constant to symbolize "use default value". This does not contain value to be used, it's used to detect the fact that it's requested, and appropriate value from querier/doer will be pulled

static const float DefaultAcceptanceRadius = -1.f;


virtual void DescribeSelfToVisLog ( struct [FVisualLogEntry](API\Runtime\Engine\VisualLogger\FVisualLogEntry) * Snapshot ) const


index of path point, that should be target of current move segment

virtual int32 DetermineCurrentTargetPathPoint ( int32 StartIndex )


this function does not set MoveSegmentEndIndex
what PathFollowingComponent thinks should be next path point. INDEX_NONE if given path is invalid

virtual int32 DetermineStartingPathPoint ( const [FNavigationPath](API\Runtime\NavigationSystem\FNavigationPath) * ConsideredPath ) const


For given path finds a path node at which PathfollowingComponent should start doing precise is-goal-in-acceptance-radius tests

int32 FindPreciseAcceptanceRadiusTestsStartNodeIndex ( const [FNavigationPath](API\Runtime\NavigationSystem\FNavigationPath) & PathInstance, const FVector & GoalLocation ) const


virtual void DisplayDebug ( [UCanvas](API\Runtime\Engine\Engine\UCanvas) * Canvas, const [FDebugDisplayInfo](API\Runtime\Engine\FDebugDisplayInfo) & DebugDisplay, float & YL, float & YPos ) const


Call when moving agent finishes using custom nav link, returns control back to path following

virtual void FinishUsingCustomLink ( [INavLinkCustomInterface](API\Runtime\NavigationSystem\INavLinkCustomInterface) * CustomNavLink )


typedef TMulticastDelegate_TwoParams< void, [FAIRequestID](API\Runtime\AIModule\FAIRequestID), const [FPathFollowingResult](API\Runtime\AIModule\Navigation\FPathFollowingResult) & > FMoveComplete


Follow current path segment

virtual void FollowPathSegment ( float DeltaTime )


typedef TMulticastDelegate_TwoParams< void, [FAIRequestID](API\Runtime\AIModule\FAIRequestID), [EPathFollowingResult::Type](API\Runtime\AIModule\Navigation\EPathFollowingResult__Type) > FMoveCompletedSignature


typedef TBaseDelegate_TwoParams< void, [UPathFollowingComponent](API\Runtime\AIModule\Navigation\UPathFollowingComponent) *, FVector & > FPostProcessMoveSignature


typedef TBaseDelegate_OneParam< void, [EPathFollowingResult::Type](API\Runtime\AIModule\Navigation\EPathFollowingResult__Type) > FRequestCompletedSignature


Force-clears all locks on resource


[UObject](API\Runtime\CoreUObject\UObject\UObject) * GetCurrentCustomLinkOb() const


Force creating new location sample for block detection


Note that CurrentMoveInput is only valid if MovementComp->UseAccelerationForPathFollowing() == true


Returns current location on navigation data


Returns index of the currently followed element of path. Depending on the actual path it may represent different things, like a path point or navigation corridor index

virtual int32 GetCurrentPathElement() const


virtual [FString](API\Runtime\Core\Containers\FString) GetDebugString() const


virtual void GetDebugStringTokens ( [TArray](API\Runtime\Core\Containers\TArray)< [FString](API\Runtime\Core\Containers\FString) > & Tokens, [TArray](API\Runtime\Core\Containers\TArray)< [EPathFollowingDebugTokens::Type](API\Runtime\AIModule\Navigation\EPathFollowingDebugTokens__Type) > & Flags ) const


Based on Path's properties, original move goal location and requested AcceptanceRadius this function calculates actual acceptance radius to apply when testing if the agent has successfully reached requested goal's vicinity

float GetFinalAcceptanceRadius ( const [FNavigationPath](API\Runtime\NavigationSystem\FNavigationPath) & PathInstance, const FVector OriginalGoalLocation, const FVector * PathEndOverride ) const


Get current focal point of movement

virtual FVector GetMoveFocus ( bool bAllowStrafe ) const


[AActor](API\Runtime\Engine\GameFramework\AActor) * GetMoveGoal() const


estimated cost of unprocessed path segments  0 means, that component is following final path segment or doesn't move


Readable name of result enum

[FString](API\Runtime\Core\Containers\FString) GetResultDesc ( [EPathFollowingResult::Type](API\Runtime\AIModule\Navigation\EPathFollowingResult__Type) Result ) const


Readable name of current status


Called after receiving update event from current path
false if path was not accepted and move request needs to be aborted


Check if path following has authority over movement (e.g. not falling) and can update own state


Simple test for stationary agent (used as early finish condition), check if reached target specified in move request

bool HasReached ( const [FAIMoveRequest](API\Runtime\AIModule\FAIMoveRequest) & MoveRequest ) const


Simple test for stationary agent (used as early finish condition), check if reached given goal

bool HasReached ( const [AActor](API\Runtime\Engine\GameFramework\AActor) & TestGoal, EPathFollowingReachMode ReachMode, float AcceptanceRadius, bool bUseNavAgentGoalLocation ) const


Simple test for stationary agent (used as early finish condition), check if reached given point

bool HasReached ( const FVector & TestPoint, EPathFollowingReachMode ReachMode, float AcceptanceRadius ) const


Check if segment is completed

virtual bool HasReachedCurrentTarget ( const FVector & CurrentLocation ) const


Check if move is completed

virtual bool HasReachedDestination ( const FVector & CurrentLocation ) const


Check if movement is blocked


Check if moving agent has reached goal defined by cylinder

bool HasReachedInternal ( const FVector & GoalLocation, float GoalRadius, float GoalHalfHeight, const FVector & AgentLocation, float RadiusThreshold, float AgentRadiusMultiplier ) const


Initialize component to use


state of block detection


Returns true if pathfollowing is doing deceleration at the end of the path.


Check if agent is on path


Check if path following can be activated

virtual bool IsPathFollowingAllowed() const


Check whether resource is currently locked


state of movement stopping on finish


If resource is lockable lock it with indicated priority

virtual void LockResource ( [EAIRequestPriority::Type](API\Runtime\AIModule\EAIRequestPriority__Type) LockSource )


Helper function for sending a path for visual log

static void LogPathHelper ( const [AActor](API\Runtime\Engine\GameFramework\AActor) * LogOwner, FNavPathSharedPtr InLogPath, const [AActor](API\Runtime\Engine\GameFramework\AActor) * LogGoalActor )


static void LogPathHelper ( const [AActor](API\Runtime\Engine\GameFramework\AActor) * LogOwner, [FNavigationPath](API\Runtime\NavigationSystem\FNavigationPath) * InLogPath, const [AActor](API\Runtime\Engine\GameFramework\AActor) * LogGoalActor )


Used for debugging purposes to be able to identify which logged information results from which request, if there was multiple ones during one frame


Called when moving agent collides with another actor

virtual void OnActorBump ( [AActor](API\Runtime\Engine\GameFramework\AActor) * SelfActor, [AActor](API\Runtime\Engine\GameFramework\AActor) * OtherActor, FVector NormalImpulse, const [FHitResult](API\Runtime\Engine\Engine\FHitResult) & Hit )


Called when falling movement ends.


Called when NavigationSystem registers new navigation data type while this component instance has empty MyNavData. This is usually the case for AI agents hand-placed on levels.

void OnNavDataRegistered ( [ANavigationData](API\Runtime\NavigationSystem\ANavigationData) * NavData )


Called when NavigationSystem finishes initial navigation data registration. This is usually required by AI agents hand-placed on levels to find MyNavData


Called if owning Controller possesses new pawn or ends up pawn-less. Doesn't get called if owner is not an AContoller

virtual void OnNewPawn ( [APawn](API\Runtime\Engine\GameFramework\APawn) * NewPawn )


Called when owner is preparing new pathfinding request

virtual void OnPathfindingQuery ( [FPathFindingQuery](API\Runtime\NavigationSystem\FPathFindingQuery) & Query )


Path observer

void OnPathEvent ( [FNavigationPath](API\Runtime\NavigationSystem\FNavigationPath) * InPath, [ENavPathEvent::Type](API\Runtime\Engine\AI\Navigation\ENavPathEvent__Type) Event )


Notify about finished movement

virtual void OnPathFinished ( const [FPathFollowingResult](API\Runtime\AIModule\Navigation\FPathFollowingResult) & Result )


void OnPathFinished ( [EPathFollowingResult::Type](API\Runtime\AIModule\Navigation\EPathFollowingResult__Type) ResultCode, uint16 ExtraResultFlags )


Notify about changing current path: new pointer or update from path event


Called when a component is registered, after Scene is set, but before CreateRenderState_Concurrent or OnCreatePhysicsState are called.


Notify about finishing move along current path segment


Called when pathfollowing agent is not able to move anymore

virtual void OnUnableToMove ( const [UObject](API\Runtime\CoreUObject\UObject\UObject) & Instigator )


Called from timer if component spends too much time in Waiting state


Virtual void OnMoveBlockedBy(const FHitResult& BlockingImpact) {}


Start movement along path
MoveId of requested move

virtual [FAIRequestID](API\Runtime\AIModule\FAIRequestID) RequestMove ( const [FAIMoveRequest](API\Runtime\AIModule\FAIMoveRequest) & RequestData, FNavPathSharedPtr InPath )


Pause path following

virtual void PauseMove ( [FAIRequestID](API\Runtime\AIModule\FAIRequestID) RequestID, EPathFollowingVelocityMode VelocityMode )


Create new request and finish it immediately (e.g. already at goal)
MoveId of requested (and already finished) move

[FAIRequestID](API\Runtime\AIModule\FAIRequestID) RequestMoveWithImmediateFinish ( [EPathFollowingResult::Type](API\Runtime\AIModule\Navigation\EPathFollowingResult__Type) Result, EPathFollowingVelocityMode VelocityMode )


Reset path following data


Clears Block Detection stored data effectively resetting the mechanism


Resume path following

virtual void ResumeMove ( [FAIRequestID](API\Runtime\AIModule\FAIRequestID) RequestID )


void SetAcceptanceRadius ( const float InAcceptanceRadius )


Update state of block detection

void SetBlockDetectionState ( bool bEnable )


void SetDestinationActor ( const [AActor](API\Runtime\Engine\GameFramework\AActor) * InDestinationActor )


Set status of last requested move, works only in Idle state

void SetLastMoveAtGoal ( bool bFinishedAtGoal )


Set associated movement component

virtual void SetMovementComponent ( [UNavMovementComponent](API\Runtime\Engine\GameFramework\UNavMovementComponent) * MoveComp )


Switch to next segment on path


Sets variables related to current move segment

virtual void SetMoveSegment ( int32 SegmentStartIndex )


Set threshold for precise reach tests in intermediate goals (minimal test radius)

void SetPreciseReachThreshold ( float AgentRadiusMultiplier, float AgentHalfHeightMultiplier )


Set block detection params

void SetBlockDetection ( float DistanceThreshold, float Interval, int32 NumSamples )


Set whether movement is stopped on finish of move.

void SetStopMovementOnFinish ( bool bEnable )


Should verify if agent if still on path ater movement has been resumed?

virtual bool ShouldCheckPathOnResume() const


Defines if the agent should reset his velocity when the path is finished

virtual bool ShouldStopMovementOnPathFinished() const


Next path segment if custom nav link, try passing control to it

virtual void StartUsingCustomLink ( [INavLinkCustomInterface](API\Runtime\NavigationSystem\INavLinkCustomInterface) * CustomNavLink, const FVector & DestPoint )


Assign new request Id


Function called every frame on this ActorComponent. Override this function to implement custom logic to be executed every frame. Only executes if the component is registered, and also PrimaryComponentTick.bCanEverTick must be set to true.

virtual void TickComponent ( float DeltaTime, enum ELevelTick TickType, [FActorComponentTickFunction](API\Runtime\Engine\Engine\FActorComponentTickFunction) * ThisTickFunction )


Update blocked movement detection,
true if new sample was added


Updates cached pointers to relevant owner's components


Updates braking distance and deceleration segment


Set move focus in AI owner


Check if movement component is valid or tries to grab one from owner

virtual bool UpdateMovementComponent ( bool bForce )


Check state of path following, update move segment if needed


UPathFollowingComponent ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UPathFollowingComponent : public [UActorComponent](API\Runtime\Engine\Components\UActorComponent), public [IAIResourceInterface](API\Runtime\AIModule\IAIResourceInterface), public [IPathFollowingAgentInterface](API\Runtime\Engine\AI\Navigation\IPathFollowingAgentInterface)

AcceptanceRadius

Min distance to destination to consider request successful.

bCollidedWithGoal

Set when agent collides with goal actor

bIsDecelerating

True if pathfollowing is doing deceleration at the end of the path.

bIsUsingMetaPath

If set, path following is usingFMetaNavMeshPath

bLastMoveReachedGoal

Set when last move request was finished at goal

BlockDetectionDistance

Detect blocked movement when distance between center of location samples and furthest one (centroid radius) is below threshold

BlockDetectionInterval

Interval for collecting location samples

BlockDetectionSampleCount

Number of samples required for block detection

bMoveToGoalOnLastSegment

If set, target location will be constantly updated to match goal actor while following last segment of full path

bReachTestIncludesAgentRadius

Increase acceptance radius with agent's radius

bReachTestIncludesGoalRadius

Increase acceptance radius with goal's radius

bStopMovementOnFinish

If set, movement will be stopped on finishing path

bUseBlockDetection

If set, movement block detection will be used

bWalkingNavLinkStart

Gets set when agent starts following a navigation link.

CachedBrakingDistance

Braking distance for acceleration driven path following

CachedBrakingMaxSpeed

Max speed used for CachedBrakingDistance

CurrentAcceptanceRadius

Min distance to end of current path segment to consider segment finished

CurrentCustomLinkOb

Currently traversed custom nav link

CurrentDestination

Destination for current path segment

CurrentMoveInput

Last MoveInput calculated and passed over to MovementComponent.

DecelerationSegmentIndex

Index of path point for starting deceleration

DestinationActor

Destination actor. Use SetDestinationActor to set this

DestinationAgent

Cached DestinationActor cast toINavAgentInterface.

GameData

Game specific data

LastSampleTime

Timestamp of last location sample

LocationSamples

Location samples for stuck detection

LocationWhenPaused

Agent location when movement was paused

MinAgentHalfHeightPct

Part of agent height used as min acceptable height difference

MinAgentRadiusPct

Part of agent radius used as min acceptance radius

MovementComp

Associated movement component

MoveOffset

Relative offset from goal actor's location to end of path

MoveSegmentDirection

Direction of current move segment

MoveSegmentEndIndex

Index of path point being current move target

MoveSegmentEndRef

Reference of node at segment end

MoveSegmentStartIndex

Index of path point being current move beginning

MoveSegmentStartRef

Reference of node at segment start

MyDefaultAcceptanceRadius

Value based on navigation agent's properties that's used for AcceptanceRadius when DefaultAcceptanceRadius is requested

MyNavData

Navigation data for agent described in movement component

NextSampleIdx

Index of next location sample in array

OnRequestFinished

Delegate for move completion notify

OriginalMoveRequestGoalLocation

This is needed for partial paths when trying to figure out if following a path should finish before reaching path end, due to reaching requested acceptance radius away from original move goal Is being set for non-partial paths as well

Path

Requested path

PathTimeWhenPaused

Timestamp of path update when movement was paused

PostProcessMove

Delegate for modifying path following velocity

Indicates a path node index at which precise "is at goal" tests are going to be performed every frame, in regards to acceptance radius

ResourceLock

Used to keep track of which subsystem requested this AI resource be locked

Status

Current status

WaitingForPathTimer

Timer handle for OnWaitingPathTimeout function

WaitingTimeout

Timeout for Waiting state, negative value = infinite


static bool IsFollowingAPath ( const [AController](API\Runtime\Engine\GameFramework\AController) & Controller )


static void StopMovement ( const [AController](API\Runtime\Engine\GameFramework\AController) & Controller )


UPathFollowingManager ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UPathFollowingManager : public [UObject](API\Runtime\CoreUObject\UObject\UObject), public [IPathFollowingManagerInterface](API\Runtime\Engine\AI\IPathFollowingManagerInterface)


namespace ESightPerceptionEventName { enum Type { Undefined, GainedSight, LostSight, } }


FActorPerceptionBlueprintInfo ( const [FActorPerceptionInfo](API\Runtime\AIModule\Perception\FActorPerceptionInfo) & Info )


Retrieves last known location. Active (last reported as "successful") stimuli are preferred.

FVector GetLastStimulusLocation ( float * OptionalAge ) const


Retrieves receiver location of the last sense stimuli for a given sense
Location of the receiver for the last sensed stimuli or FAISystem::InvalidLocation if given sense has never registered related Target actor or last stimuli has expired.

FVector GetReceiverLocation ( FAISenseID Sense ) const


Retrieves location of the last sensed stimuli for a given sense
Location of the last sensed stimuli or FAISystem::InvalidLocation if given sense has never registered related Target actor or if last stimuli has expired.

FVector GetStimulusLocation ( FAISenseID Sense ) const


Indicates currently live (visible) stimulus from any sense


It includes both currently live (visible) stimulus, as well as "remembered" ones


Indicates a currently active or "remembered" stimuli for a given sense
True if a target has been registered (even if not currently sensed) for the given sense and the stimuli is not expired.

bool HasKnownStimulusOfSense ( FAISenseID Sense ) const


Indicates a currently active stimuli for a given sense
True if a target is still sensed for the given sense and the stimuli is not expired.

bool IsSenseActive ( FAISenseID Sense ) const


Takes all "newer" info from Other and absorbs it

void Merge ( const [FActorPerceptionInfo](API\Runtime\AIModule\Perception\FActorPerceptionInfo) & Other )


FActorPerceptionInfo ( [AActor](API\Runtime\Engine\GameFramework\AActor) * InTarget )


bIsHostile

Indicates whether this Actor is hostile to perception holder

DominantSense

If != MAX indicates the sense that takes precedense over other senses when it comes to determining last stimulus location


FActorPerceptionUpdateInfo ( const int32 TargetId, const [TWeakObjectPtr](API\Runtime\Core\UObject\TWeakObjectPtr)< [AActor](API\Runtime\Engine\GameFramework\AActor) > & Target, const [FAIStimulus](API\Runtime\AIModule\Perception\FAIStimulus) & Stimulus )


Stimulus

Updated stimulus

Target

Actor associated to the stimulus (can be null)

TargetId

Id of to the stimulus source


typedef class [UAISense_Damage](API\Runtime\AIModule\Perception\UAISense_Damage) FSenseClass


FAIDamageEvent ( [AActor](API\Runtime\Engine\GameFramework\AActor) * InDamagedActor, [AActor](API\Runtime\Engine\GameFramework\AActor) * InInstigator, float DamageAmount, const FVector & EventLocation, const FVector & InHitLocation, [FName](API\Runtime\Core\UObject\FName) InTag )


Verifies and calculates derived data


typedef class [UAISense_Hearing](API\Runtime\AIModule\Perception\UAISense_Hearing) FSenseClass


FAINoiseEvent ( [AActor](API\Runtime\Engine\GameFramework\AActor) * InInstigator, const FVector & InNoiseLocation, float InLoudness, float InMaxRange, [FName](API\Runtime\Core\UObject\FName) Tag )


Instigator

Actor triggering the sound.

Loudness

Loudness modifier of the sound.

MaxRange

Max range at which the sound can be heard.

NoiseLocation

If not set Instigator's location will be used

Tag

Named identifier for the noise.


FAIPredictionEvent ( [AActor](API\Runtime\Engine\GameFramework\AActor) * InRequestor, [AActor](API\Runtime\Engine\GameFramework\AActor) * InPredictedActor, float PredictionTime )


Amount

Damage taken by DamagedActor.  0-damage events do not get ignored

DamagedActor

Damaged actor

HitLocation

Event's additional spatial information  document

Instigator

Actor that instigated damage. Can be None

Location

Event's "Location", or what will be later treated as the perceived location for this sense.

Tag

Optional named identifier for the damage.


static bool ShouldSenseTeam ( [FGenericTeamId](API\Runtime\AIModule\FGenericTeamId) TeamA, [FGenericTeamId](API\Runtime\AIModule\FGenericTeamId) TeamB, uint8 AffiliationFlags )


static bool ShouldSenseTeam ( const [IGenericTeamAgentInterface](API\Runtime\AIModule\IGenericTeamAgentInterface) * TeamAgent, const [AActor](API\Runtime\Engine\GameFramework\AActor) & TargetActor, uint8 AffiliationFlags )


struct FAISenseCounter : public [FAIBasicCounter< uint8 >](API\Runtime\AIModule\FAIBasicCounter)


FAISightEvent ( [AActor](API\Runtime\Engine\GameFramework\AActor) * InSeenActor, [AActor](API\Runtime\Engine\GameFramework\AActor) * InObserver, [ESightPerceptionEventName::Type](API\Runtime\AIModule\Perception\ESightPerceptionEventName__Type) InEventType )


bool operator&40;&41; &40; const FAISightQuery & A, const FAISightQuery & B &41; const


Note: This should only be called on queries that are queued up for later processing (in SightQueriesOutOfRange or SightQueriesOutOfRange)


void SetLastResult ( const bool bValue )


Note: This only be called for pending queries because it will erase the LastProcessedFrameNumber value

void SetTraceInfo ( const [FTraceHandle](API\Runtime\Engine\FTraceHandle) & TraceHandle )


FAISightQuery ( FPerceptionListenerID ListenerId, [FAISightTarget::FTargetId](API\Runtime\AIModule\Perception\FAISightTarget\FTargetId) Target )


FrameInfo

We can share the memory for these values because they aren't used at the same time :

TraceInfo

The 'FrameNumber' value can increase indefinitely while the 'Index' represents the number of queries that were already requested during this frame.

UserData

User data that can be used inside the IAISightTargetInterface::CanBeSeenFrom method to store a persistence state


FAISightQueryID ( const [FAISightQuery](API\Runtime\AIModule\Perception\FAISightQuery) & Query )


FAISightQueryID ( FPerceptionListenerID ListenerId, [FAISightTarget::FTargetId](API\Runtime\AIModule\Perception\FAISightTarget\FTargetId) Target )


const [AActor](API\Runtime\Engine\GameFramework\AActor) * GetTargetActor() const


static const [FTargetId](API\Runtime\AIModule\Perception\FAISightTarget\FTargetId) InvalidTargetId = FAISystem::InvalidUnsignedID;


FAISightTarget ( [AActor](API\Runtime\Engine\GameFramework\AActor) * InTarget, [FGenericTeamId](API\Runtime\AIModule\FGenericTeamId) InTeamId )


false when this stimulus is no longer valid, when it is Expired

bool AgeStimulus ( float ConstPerceptionAgingRate )


enum FResult { SensingSucceeded, SensingFailed, }


static const float NeverHappenedAge = FLT_MAX;


[FAIStimulus](API\Runtime\AIModule\Perception\FAIStimulus) & SetExpirationAge ( float InExpirationAge )


[FAIStimulus](API\Runtime\AIModule\Perception\FAIStimulus) & SetStimulusAge ( float StimulusAge )


[FAIStimulus](API\Runtime\AIModule\Perception\FAIStimulus) & SetWantsNotifyOnlyOnValueChange ( bool InEnable )


Default constructor


This is the recommended constructor. Use others if you know what you're doing.

FAIStimulus ( const [UAISense](API\Runtime\AIModule\Perception\UAISense) & Sense, float StimulusStrength, const FVector & InStimulusLocation, const FVector & InReceiverLocation, [FResult](API\Runtime\AIModule\Perception\FAIStimulus\FResult) Result, [FName](API\Runtime\Core\UObject\FName) InStimulusTag )


bExpired

This means the stimulus was originally created with a "time limit" and this time has passed.


const FVector & GetBroadcastLocation() const


FAITeamStimulusEvent ( [AActor](API\Runtime\Engine\GameFramework\AActor) * InBroadcaster, [AActor](API\Runtime\Engine\GameFramework\AActor) * InEnemy, const FVector & InLastKnowLocation, float EventRange, float PassedInfoAge, float InStrength )


FAITouchEvent ( [AActor](API\Runtime\Engine\GameFramework\AActor) * InTouchReceiver, [AActor](API\Runtime\Engine\GameFramework\AActor) * InOtherActor, const FVector & EventLocation )


bWasVisible

If available, it is the previous visibility state

IgnoreActor

The actor to ignore when doing test

ObserverLocation

The location of the observer

SightQueryID

The query identifier used by the delegate call to find the appropriate query


typedef [TMap](API\Runtime\Core\Containers\TMap)< FPerceptionListenerID, [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) > FListenerMap


[FPerceptionChannelAllowList](API\Runtime\AIModule\Perception\FPerceptionChannelAllowList) & AcceptChannel ( FAISenseID Channel )


FConstIterator &40; const FPerceptionChannelAllowList & InAllowList &41;


[FPerceptionChannelAllowList](API\Runtime\AIModule\Perception\FPerceptionChannelAllowList) & FilterOutChannel ( FAISenseID Channel )


[FPerceptionChannelAllowList](API\Runtime\AIModule\Perception\FPerceptionChannelAllowList) & MergeFilterIn ( const [FPerceptionChannelAllowList](API\Runtime\AIModule\Perception\FPerceptionChannelAllowList) & OtherFilter )


By default accept all


bool ShouldRespondToChannel ( FAISenseID Channel ) const


Returns pointer to the actor representing this listener's physical body

const [AActor](API\Runtime\Engine\GameFramework\AActor) * GetBodyActor() const


const [IGenericTeamAgentInterface](API\Runtime\AIModule\IGenericTeamAgentInterface) * GetTeamAgent() const


bool HasSense ( FAISenseID SenseID ) const


Used to remove "dead" listeners

static const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) NullListener;


bool operator== ( const [UAIPerceptionComponent](API\Runtime\AIModule\Perception\UAIPerceptionComponent) * Other ) const


bool operator== ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & Other ) const


void RegisterStimulus ( [AActor](API\Runtime\Engine\GameFramework\AActor) * Source, const [FAIStimulus](API\Runtime\AIModule\Perception\FAIStimulus) & Stimulus )


void UpdateListenerProperties ( [UAIPerceptionComponent](API\Runtime\AIModule\Perception\UAIPerceptionComponent) & Listener )


FPerceptionListener ( [UAIPerceptionComponent](API\Runtime\AIModule\Perception\UAIPerceptionComponent) & InListener )


Should contain only cached information common to all senses. Sense-specific data needs to be stored by senses themselves


struct FPerceptionListenerCounter : public [FAIBasicCounter< uint32 >](API\Runtime\AIModule\FAIBasicCounter)


virtual UAIPerceptionComponent &42; GetPerceptionComponent&40;&41;


Returns true if, as result of stimuli aging, this listener needs an update (like if some stimuli expired)

bool AgeStimuli ( const float ConstPerceptionAgingRate )


Called before destroying the object. This is called immediately upon deciding to destroy the object, to allow the object to begin an asynchronous cleanup process.


Called to clean up on owner's end play or destruction


void ConfigureSense ( [UAISenseConfig](API\Runtime\AIModule\Perception\UAISenseConfig) & SenseConfig )


virtual void DescribeSelfToVisLog ( [FVisualLogEntry](API\Runtime\Engine\VisualLogger\FVisualLogEntry) * Snapshot ) const


void ForgetActor ( [AActor](API\Runtime\Engine\GameFramework\AActor) * ActorToForget )


FStimulusToProcess &40; AActor &42; InSource, const FAIStimulus & InStimulus &41;


Basically cleans up PerceptualData, resulting in loss of all previous perception


const [FActorPerceptionInfo](API\Runtime\AIModule\Perception\FActorPerceptionInfo) * GetActorInfo ( const [AActor](API\Runtime\Engine\GameFramework\AActor) & Actor ) const


FVector GetActorLocation ( const [AActor](API\Runtime\Engine\GameFramework\AActor) & Actor ) const


Retrieves whatever has been sensed about given actor

bool GetActorsPerception ( [AActor](API\Runtime\Engine\GameFramework\AActor) * Actor, [FActorPerceptionBlueprintInfo](API\Runtime\AIModule\Perception\FActorPerceptionBlueprintInfo) & Info )


If SenseToUse is none all actors currently perceived in any way will get fetched

void GetCurrentlyPerceivedActors ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAISense](API\Runtime\AIModule\Perception\UAISense) > SenseToUse, [TArray](API\Runtime\Core\Containers\TArray)< [AActor](API\Runtime\Engine\GameFramework\AActor) * > & OutActors ) const


const [AActor](API\Runtime\Engine\GameFramework\AActor) * GetBodyActor() const


[TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAISense](API\Runtime\AIModule\Perception\UAISense) > GetDominantSense() const


Will stop on first age 0 stimulus

const [FActorPerceptionInfo](API\Runtime\AIModule\Perception\FActorPerceptionInfo) * GetFreshestTrace ( const FAISenseID Sense ) const


virtual void GetHostileActors ( [TArray](API\Runtime\Core\Containers\TArray)< [AActor](API\Runtime\Engine\GameFramework\AActor) * > & OutActors ) const


void GetHostileActorsBySense ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAISense](API\Runtime\AIModule\Perception\UAISense) > SenseToFilterBy, [TArray](API\Runtime\Core\Containers\TArray)< [AActor](API\Runtime\Engine\GameFramework\AActor) * > & OutActors ) const


If SenseToUse is none all actors ever perceived in any way (and not forgotten yet) will get fetched

void GetKnownPerceivedActors ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAISense](API\Runtime\AIModule\Perception\UAISense) > SenseToUse, [TArray](API\Runtime\Core\Containers\TArray)< [AActor](API\Runtime\Engine\GameFramework\AActor) * > & OutActors ) const


Retrieves all actors in PerceptualData matching the predicate.
whether dead data (invalid actors) have been found while iterating over PerceptualData

bool GetFilteredActors ( [TFunctionRef](API\Runtime\Core\GenericPlatform\TFunctionRef)< bool(const [FActorPerceptionInfo](API\Runtime\AIModule\Perception\FActorPerceptionInfo) &)> Predicate, [TArray](API\Runtime\Core\Containers\TArray)< [AActor](API\Runtime\Engine\GameFramework\AActor) * > & OutActors ) const


void GetLocationAndDirection ( FVector & Location, FVector & Direction ) const


void GetPerceivedHostileActorsBySense ( const [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAISense](API\Runtime\AIModule\Perception\UAISense) > SenseToUse, [TArray](API\Runtime\Core\Containers\TArray)< [AActor](API\Runtime\Engine\GameFramework\AActor) * > & OutActors ) const


void GetPerceivedHostileActors ( [TArray](API\Runtime\Core\Containers\TArray)< [AActor](API\Runtime\Engine\GameFramework\AActor) * > & OutActors ) const


const [FActorPerceptionContainer](API\Runtime\AIModule\Perception\UAIPerceptionComponent\FActorPerceptionContainer) & GetPerceptualData() const


[UAISenseConfig](API\Runtime\AIModule\Perception\UAISenseConfig) * GetSenseConfig ( const FAISenseID & SenseID )


const [UAISenseConfig](API\Runtime\AIModule\Perception\UAISenseConfig) * GetSenseConfig ( const FAISenseID & SenseID ) const


float GetYoungestStimulusAge ( const [AActor](API\Runtime\Engine\GameFramework\AActor) & Source ) const


bool HasActiveStimulus ( const [AActor](API\Runtime\Engine\GameFramework\AActor) & Source, FAISenseID Sense ) const


No need to call super implementation, it's there just for some validity checking

virtual void HandleExpiredStimulus ( [FAIStimulus](API\Runtime\AIModule\Perception\FAIStimulus) & StimulusStore )


bool HasAnyActiveStimulus ( const [AActor](API\Runtime\Engine\GameFramework\AActor) & Source ) const


bool HasAnyCurrentStimulus ( const [AActor](API\Runtime\Engine\GameFramework\AActor) & Source ) const


static const int32 InitialStimuliToProcessArraySize = 10;


Called when a component is registered, after Scene is set, but before CreateRenderState_Concurrent or OnCreatePhysicsState are called.


Called when a component is unregistered. Called after DestroyRenderState_Concurrent and OnDestroyPhysicsState are called.


void OnOwnerEndPlay ( [AActor](API\Runtime\Engine\GameFramework\AActor) * Actor, [EEndPlayReason::Type](API\Runtime\Engine\Engine\EEndPlayReason__Type) EndPlayReason )


Called after the C++ constructor and after the properties have been initialized, including those loaded from config. This is called before any serialization or other setup has happened.


Updates the stimulus entry in StimulusStore, if NewStimulus is more recent or stronger

virtual void RefreshStimulus ( [FAIStimulus](API\Runtime\AIModule\Perception\FAIStimulus) & StimulusStore, const [FAIStimulus](API\Runtime\AIModule\Perception\FAIStimulus) & NewStimulus )


void RegisterStimulus ( [AActor](API\Runtime\Engine\GameFramework\AActor) * Source, const [FAIStimulus](API\Runtime\AIModule\Perception\FAIStimulus) & Stimulus )


void SetDominantSense ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAISense](API\Runtime\AIModule\Perception\UAISense) > InDominantSense )


Note that this works only if given sense has been already configured for this component instance

void SetSenseEnabled ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAISense](API\Runtime\AIModule\Perception\UAISense) > SenseClass, const bool bEnable )


Notifies AIPerceptionSystem to update properties for this "stimuli listener"


typedef [TMap](API\Runtime\Core\Containers\TMap)< [TObjectKey](API\Runtime\CoreUObject\UObject\TObjectKey)< [AActor](API\Runtime\Engine\GameFramework\AActor) >, [FActorPerceptionInfo](API\Runtime\AIModule\Perception\FActorPerceptionInfo) > TActorPerceptionContainer


typedef [TArray](API\Runtime\Core\Containers\TArray)< [UAISenseConfig](API\Runtime\AIModule\Perception\UAISenseConfig) * >::TConstIterator TAISenseConfigConstIterator


Allows toggling senses on and off

void UpdatePerceptionAllowList ( const FAISenseID Channel, const bool bNewValue )


Deprecated* Use UpdatePerceptionAllowList instead

void UpdatePerceptionWhitelist ( const FAISenseID Channel, const bool bNewValue )


UAIPerceptionComponent ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


AIPerceptionComponent is used to register as stimuli listener in AIPerceptionSystem and gathers registered stimuli. UpdatePerception is called when component gets new stimuli (batched)

class UAIPerceptionComponent : public [UActorComponent](API\Runtime\Engine\Components\UActorComponent)

DominantSense

Indicated sense that takes precedence over other senses when determining sensed actor's location.

MaxActiveAge

Max age of stimulus to consider it "active" (e.g. target is visible)

OnPerceptionUpdated

Might want to move these to special "BP_AIPerceptionComponent".

OnTargetPerceptionForgotten

Notifies all bound delegates that the perception info has been forgotten for a given target.

OnTargetPerceptionInfoUpdated

Notifies all bound objects that perception info has been updated for a given target.


class UAIPerceptionListenerInterface : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


UAIPerceptionListenerInterface ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


Called when a property on this object has been modified externally

virtual void PostEditChangeProperty ( [FPropertyChangedEvent](API\Runtime\CoreUObject\UObject\FPropertyChangedEvent) & PropertyChangedEvent )


Registers owning actor as source for specified sense class

void RegisterForSense ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAISense](API\Runtime\AIModule\Perception\UAISense) > SenseClass )


Registers owning actor as source of stimuli for senses specified in RegisterAsSourceForSenses. Note that you don't have to do it if bAutoRegisterAsSource == true


Unregister owning actor from being a source of sense stimuli


Unregisters owning actor from sources list of a specified sense class

void UnregisterFromSense ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAISense](API\Runtime\AIModule\Perception\UAISense) > SenseClass )


UAIPerceptionStimuliSourceComponent ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


Gives owning actor a way to auto-register as perception system's sense stimuli source

class UAIPerceptionStimuliSourceComponent : public [UActorComponent](API\Runtime\Engine\Components\UActorComponent)


MarkForStimulusProcessing)


Sorts DelayedStimuli and delivers all the ones that are no longer "in the future"
true if any stimuli has become "current" stimuli (meaning being no longer in future)

bool DeliverDelayedStimuli ( [EDelayedStimulusSorting](API\Runtime\AIModule\Perception\UAIPerceptionSystem\EDelayedStimulusSorting) Sorting )


enum EDelayedStimulusSorting { RequiresSorting, NoNeedToSort, }


FPerceptionSourceRegistration &40; FAISenseID InSenseID, AActor &42; SourceActor &41;


bool operator&61;&61; &40; const FPerceptionSourceRegistration & Other &41; const


static [UAIPerceptionSystem](API\Runtime\AIModule\Perception\UAIPerceptionSystem) * GetCurrent ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * WorldContextObject )


static [UAIPerceptionSystem](API\Runtime\AIModule\Perception\UAIPerceptionSystem) * GetCurrent ( [UWorld](API\Runtime\Engine\Engine\UWorld) & World )


static [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAISense](API\Runtime\AIModule\Perception\UAISense) > GetSenseClassForStimulus ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * WorldContextObject, const [FAIStimulus](API\Runtime\AIModule\Perception\FAIStimulus) & Stimulus )


Return the stat id to use for this tickable

virtual [TStatId](API\Runtime\Core\Stats\TStatId) GetStatId() const


bool IsSenseInstantiated ( const FAISenseID & SenseID ) const


static void MakeNoiseImpl ( [AActor](API\Runtime\Engine\GameFramework\AActor) * NoiseMaker, float Loudness, [APawn](API\Runtime\Engine\GameFramework\APawn) * NoiseInstigator, const FVector & NoiseLocation, float MaxRange, [FName](API\Runtime\Core\UObject\FName) Tag )


template<typename FEventClass, typename FSenseClass> void OnEvent ( const FEventClass & Event )


template<typename FEventClass, typename FSenseClass> void OnEventsBatch ( const [TArray](API\Runtime\Core\Containers\TArray)< FEventClass > & Events )


void OnListenerConfigUpdated ( FAISenseID SenseID, const [UAIPerceptionComponent](API\Runtime\AIModule\Perception\UAIPerceptionComponent) & Listener )


void OnListenerForgetsActor ( const [UAIPerceptionComponent](API\Runtime\AIModule\Perception\UAIPerceptionComponent) & Listener, [AActor](API\Runtime\Engine\GameFramework\AActor) & ActorToForget )


void OnListenerForgetsAll ( const [UAIPerceptionComponent](API\Runtime\AIModule\Perception\UAIPerceptionComponent) & Listener )


void OnListenerRemoved ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & UpdatedListener )


void OnNewListener ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & NewListener )


void OnListenerUpdate ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & UpdatedListener )


virtual void OnNewPawn ( [APawn](API\Runtime\Engine\GameFramework\APawn) & Pawn )


void OnPerceptionStimuliSourceEndPlay ( [AActor](API\Runtime\Engine\GameFramework\AActor) * Actor, [EEndPlayReason::Type](API\Runtime\Engine\Engine\EEndPlayReason__Type) EndPlayReason )


void RegisterDelayedStimulus ( FPerceptionListenerID ListenerId, float Delay, [AActor](API\Runtime\Engine\GameFramework\AActor) * Instigator, const [FAIStimulus](API\Runtime\AIModule\Perception\FAIStimulus) & Stimulus )


template<typename FEventClass, typename FSenseClass> static void OnEvent ( [UWorld](API\Runtime\Engine\Engine\UWorld) * World, const FEventClass & Event )


Iterates over all pawns and registeres them as a source for sense indicated by SenseID. Note that this will be performed only for senses that request that (seeUAISense.bAutoRegisterAllPawnsAsSources).

virtual void RegisterAllPawnsAsSourcesForSense ( FAISenseID SenseID )


static bool RegisterPerceptionStimuliSource ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * WorldContextObject, [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAISense](API\Runtime\AIModule\Perception\UAISense) > Sense, [AActor](API\Runtime\Engine\GameFramework\AActor) * Target )


FAISenseID RegisterSenseClass ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAISense](API\Runtime\AIModule\Perception\UAISense) > SenseClass )


Registers a source of given sense's stimuli

template<typename FSenseClass> void RegisterSource ( [AActor](API\Runtime\Engine\GameFramework\AActor) & SourceActor )


Registers given actor as a source for all registered senses

void RegisterSource ( [AActor](API\Runtime\Engine\GameFramework\AActor) & SourceActor )


Requests registration of a given actor as a perception data source for specified sense

void RegisterSource ( FAISenseID SenseID, [AActor](API\Runtime\Engine\GameFramework\AActor) & SourceActor )


void RegisterSourceForSenseClass ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAISense](API\Runtime\AIModule\Perception\UAISense) > Sense, [AActor](API\Runtime\Engine\GameFramework\AActor) & Target )


static void ReportPerceptionEvent ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * WorldContextObject, [UAISenseEvent](API\Runtime\AIModule\Perception\UAISenseEvent) * PerceptionEvent )


void ReportEvent ( [UAISenseEvent](API\Runtime\AIModule\Perception\UAISenseEvent) * PerceptionEvent )


FTickableGameObjectbegin.


void UnregisterListener ( [UAIPerceptionComponent](API\Runtime\AIModule\Perception\UAIPerceptionComponent) & Listener )


Unregisters given actor from the list of active stimuli sources

void UnregisterSource ( [AActor](API\Runtime\Engine\GameFramework\AActor) & SourceActor, const [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAISense](API\Runtime\AIModule\Perception\UAISense) > Sense )


Registers listener if not registered

void UpdateListener ( [UAIPerceptionComponent](API\Runtime\AIModule\Perception\UAIPerceptionComponent) & Listener )


UAIPerceptionSystem ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


Bydesign checks perception between hostile teams

class UAIPerceptionSystem : public [UAISubsystem](API\Runtime\AIModule\UAISubsystem)

NextStimuliAgingTick

Timestamp of the next stimuli aging

RegisteredStimuliSources

Not a UPROPERTY on purpose so that we have a control over when stuff gets removed from the map


To be called only for BP-generated classes

void ForceSenseID ( FAISenseID SenseID )


Returning pointer rather then a reference to prevent users from accidentally creating copies by creating non-reference local vars


template<typename TSense> static FAISenseID GetSenseID()


static FAISenseID GetSenseID ( const [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAISense](API\Runtime\AIModule\Perception\UAISense) > SenseClass )


virtual [UWorld](API\Runtime\Engine\Engine\UWorld) * GetWorld() const


Use with caution! Needs to be called before any senses get instantiated or listeners registered. DOES NOT update any perceptions system instances

static void HardcodeSenseID ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAISense](API\Runtime\AIModule\Perception\UAISense) > SenseClass, FAISenseID HardcodedID )


virtual void OnListenerForgetsActor ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & Listener, [AActor](API\Runtime\Engine\GameFramework\AActor) & ActorToForget )


virtual void OnListenerConfigUpdated ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & UpdatedListener )


virtual void OnListenerForgetsAll ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & Listener )


void OnListenerRemoved ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & RemovedListener )


void OnListenerUpdate ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & UpdatedListener )


void OnNewListener ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & NewListener )


Gets called when perception system gets notified about new spawned pawn. : do not call super implementation. It's used to detect when subclasses don't override it

virtual void OnNewPawn ( [APawn](API\Runtime\Engine\GameFramework\APawn) & NewPawn )


Called after the C++ constructor and after the properties have been initialized, including those loaded from config. This is called before any serialization or other setup has happened.


should this sense be ticked now

bool ProgressTime ( float DeltaSeconds )


Virtual void RegisterSources(TArraySourceActors) {}

virtual void RegisterSource ( [AActor](API\Runtime\Engine\GameFramework\AActor) & SourceActors )


virtual void RegisterWrappedEvent ( [UAISenseEvent](API\Runtime\AIModule\Perception\UAISenseEvent) & PerceptionEvent )


Will result in updating as soon as possible


Will result in updating in specified number of seconds

void RequestUpdateInSeconds ( float UpdateInSeconds )


static const float SuspendNextUpdate = FLT_MAX;


virtual void UnregisterSource ( [AActor](API\Runtime\Engine\GameFramework\AActor) & SourceActors )


time until next update


UAISense ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UAISense : public [UObject](API\Runtime\CoreUObject\UObject\UObject)

bAutoRegisterAllPawnsAsSources

If true all newly spawned pawns will get auto registered as source for this sense.

bNeedsForgettingNotification

This sense has some internal logic that requires it to be notified when a listener wants to forget an actor

bWantsNewPawnNotification

Whether this sense is interested in getting notified about new Pawns being spawned this can be used for example for automated sense sources registration

OnListenerRemovedDelegate

Called when aFPerceptionListeneris removed from AIPerceptionSystem

OnListenerUpdateDelegate

Called when a registeredFPerceptionListenerchanges

OnNewListenerDelegate

Called when a newFPerceptionListenerregisters with AIPerceptionSystem


class UAISenseBlueprintListener : public [UUserDefinedStruct](API\Runtime\Engine\Engine\UUserDefinedStruct)


virtual [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAISense](API\Runtime\AIModule\Perception\UAISense) > GetSenseImplementation() const


void SetMaxAge ( const float NewMaxAge )


UAISenseConfig ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UAISenseConfig : public [UObject](API\Runtime\CoreUObject\UObject\UObject)

bStartsEnabled

Determines whether given sense starts in an enabled state

CachedSenseName

Name of sense

MaxAge

Specifies age limit after stimuli generated by this sense become forgotten. 0 means "never"


UAISenseConfig_Blueprint ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UAISenseConfig_Blueprint : public [UAISenseConfig](API\Runtime\AIModule\Perception\UAISenseConfig)


UAISenseConfig_Damage ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UAISenseConfig_Damage : public [UAISenseConfig](API\Runtime\AIModule\Perception\UAISenseConfig)


UAISenseConfig_Hearing ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UAISenseConfig_Hearing : public [UAISenseConfig](API\Runtime\AIModule\Perception\UAISenseConfig)


UAISenseConfig_Prediction ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UAISenseConfig_Prediction : public [UAISenseConfig](API\Runtime\AIModule\Perception\UAISenseConfig)


This alternate version of PostEditChange is called when properties inside structs are modified. The property that was actually modified is located at the tail of the list. The head of the list of theFStructPropertymember variable that contains the property that was modified.

virtual void PostEditChangeChainProperty ( [FPropertyChangedChainEvent](API\Runtime\CoreUObject\UObject\FPropertyChangedChainEvent) & PropertyChangedEvent )


UAISenseConfig_Sight ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UAISenseConfig_Sight : public [UAISenseConfig](API\Runtime\AIModule\Perception\UAISenseConfig)

AutoSuccessRangeFromLastSeenLocation

If not an InvalidRange (which is the default), we will always be able to see the target that has already been seen if they are within this range of their last seen location.

LoseSightRadius

Maximum sight distance to see target that has been already seen.

NearClippingRadius

Near clipping distance, to be used with point of view backward offset.

PeripheralVisionAngleDegrees

How far to the side AI can see, in degrees.

PointOfViewBackwardOffset

Point of view move back distance for cone calculation.

SightRadius

Maximum sight distance to notice a target.


UAISenseConfig_Team ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UAISenseConfig_Team : public [UAISenseConfig](API\Runtime\AIModule\Perception\UAISenseConfig)


virtual [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UAISense](API\Runtime\AIModule\Perception\UAISense) > GetSenseImplementation() const


UAISenseConfig_Touch ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UAISenseConfig_Touch : public [UAISenseConfig](API\Runtime\AIModule\Perception\UAISenseConfig)


virtual void DrawToVLog ( [UObject](API\Runtime\CoreUObject\UObject\UObject) & LogOwner ) const


class UAISenseEvent : public [UObject](API\Runtime\CoreUObject\UObject\UObject)


class UAISenseEvent_Damage : public [UAISenseEvent](API\Runtime\AIModule\Perception\UAISenseEvent)


UAISenseEvent_Hearing ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UAISenseEvent_Hearing : public [UAISenseEvent](API\Runtime\AIModule\Perception\UAISenseEvent)


static [TMap](API\Runtime\Core\Containers\TMap)< [FNameEntryId](API\Runtime\Core\UObject\FNameEntryId), FAISenseID > BPSenseToSenseID;


void GetAllListenerActors ( [TArray](API\Runtime\Core\Containers\TArray)< [AActor](API\Runtime\Engine\GameFramework\AActor) * > & ListenerActors ) const


void GetAllListenerComponents ( [TArray](API\Runtime\Core\Containers\TArray)< [UAIPerceptionComponent](API\Runtime\AIModule\Perception\UAIPerceptionComponent) * > & ListenerComponents ) const


Called when sense's instance gets notified about new pawn that has just been spawned

void K2_OnNewPawn ( [APawn](API\Runtime\Engine\GameFramework\APawn) * NewPawn )


void OnListenerRegistered ( [AActor](API\Runtime\Engine\GameFramework\AActor) * ActorListener, [UAIPerceptionComponent](API\Runtime\AIModule\Perception\UAIPerceptionComponent) * PerceptionComponent )


void OnListenerRemovedImpl ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & UpdatedListener )


Called when a listener unregistered from this sense. Most often this is called due to actor's death

void OnListenerUnregistered ( [AActor](API\Runtime\Engine\GameFramework\AActor) * ActorListener, [UAIPerceptionComponent](API\Runtime\AIModule\Perception\UAIPerceptionComponent) * PerceptionComponent )


void OnListenerUpdated ( [AActor](API\Runtime\Engine\GameFramework\AActor) * ActorListener, [UAIPerceptionComponent](API\Runtime\AIModule\Perception\UAIPerceptionComponent) * PerceptionComponent )


void OnListenerUpdateImpl ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & UpdatedListener )


void OnNewListenerImpl ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & NewListener )


Gets called when perception system gets notified about new spawned pawn. : do not call super implementation. It's used to detect when subclasses don't override it

virtual void OnNewPawn ( [APawn](API\Runtime\Engine\GameFramework\APawn) & NewPawn )


Returns requested amount of time to pass until next frame. Return 0 to get update every frame (WARNING: hits performance)

float OnUpdate ( const [TArray](API\Runtime\Core\Containers\TArray)< [UAISenseEvent](API\Runtime\AIModule\Perception\UAISenseEvent) * > & EventsToProcess )


virtual void RegisterWrappedEvent ( [UAISenseEvent](API\Runtime\AIModule\Perception\UAISenseEvent) & PerceptionEvent )


time until next update


UAISense_Blueprint ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


void RegisterEvent ( const [FAIDamageEvent](API\Runtime\AIModule\Perception\FAIDamageEvent) & Event )


class UAISense_Blueprint : public [UAISense](API\Runtime\AIModule\Perception\UAISense)


EventLocation will be reported as Instigator's location at the moment of event happening

static void ReportDamageEvent ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * WorldContextObject, [AActor](API\Runtime\Engine\GameFramework\AActor) * DamagedActor, [AActor](API\Runtime\Engine\GameFramework\AActor) * Instigator, float DamageAmount, FVector EventLocation, FVector HitLocation, [FName](API\Runtime\Core\UObject\FName) Tag )


UAISense_Damage ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UAISense_Damage : public [UAISense](API\Runtime\AIModule\Perception\UAISense)


FDigestedHearingProperties &40; const UAISenseConfig_Hearing & SenseConfig &41;


void RegisterEvent ( const [FAINoiseEvent](API\Runtime\AIModule\Perception\FAINoiseEvent) & Event )


Called after the C++ constructor and after the properties have been initialized, including those loaded from config. This is called before any serialization or other setup has happened.


void RegisterEventsBatch ( const [TArray](API\Runtime\Core\Containers\TArray)< [FAINoiseEvent](API\Runtime\AIModule\Perception\FAINoiseEvent) > & Events )


Part of BP interface. Translates PerceptionEvent toFAINoiseEventand callRegisterEvent(const FAINoiseEvent& Event)


Report a noise event.

static void ReportNoiseEvent ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * WorldContextObject, FVector NoiseLocation, float Loudness, [AActor](API\Runtime\Engine\GameFramework\AActor) * Instigator, float MaxRange, [FName](API\Runtime\Core\UObject\FName) Tag )


UAISense_Hearing ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UAISense_Hearing : public [UAISense](API\Runtime\AIModule\Perception\UAISense)

SpeedOfSoundSq

Defaults to 0 to have instant notification.


void RegisterEvent ( const [FAIPredictionEvent](API\Runtime\AIModule\Perception\FAIPredictionEvent) & Event )


Asks perception system to supply Requestor with PredictedActor's predicted location in PredictionTime seconds Location is being predicted based on PredicterActor's current location and velocity

static void RequestControllerPredictionEvent ( [AAIController](API\Runtime\AIModule\AAIController) * Requestor, [AActor](API\Runtime\Engine\GameFramework\AActor) * PredictedActor, float PredictionTime )


static void RequestPawnPredictionEvent ( [APawn](API\Runtime\Engine\GameFramework\APawn) * Requestor, [AActor](API\Runtime\Engine\GameFramework\AActor) * PredictedActor, float PredictionTime )


UAISense_Prediction ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UAISense_Prediction : public [UAISense](API\Runtime\AIModule\Perception\UAISense)


float CalcQueryImportance ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & Listener, const FVector & TargetLocation, const float SightRadiusSq ) const


[EVisibilityResult](API\Runtime\AIModule\Perception\UAISense_Sight\EVisibilityResult) ComputeVisibility ( [UWorld](API\Runtime\Engine\Engine\UWorld) * World, [FAISightQuery](API\Runtime\AIModule\Perception\FAISightQuery) & SightQuery, [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & Listener, const [AActor](API\Runtime\Engine\GameFramework\AActor) * ListenerActor, [FAISightTarget](API\Runtime\AIModule\Perception\FAISightTarget) & Target, [AActor](API\Runtime\Engine\GameFramework\AActor) * TargetActor, const [FDigestedSightProperties](API\Runtime\AIModule\Perception\UAISense_Sight\FDigestedSightProperties) & PropDigest, float & OutStimulusStrength, FVector & OutSeenLocation, int32 & OutNumberOfLoSChecksPerformed, int32 & OutNumberOfAsyncLosCheckRequested ) const


enum EVisibilityResult { Visible, NotVisible, Pending, }


time until next update


FDigestedSightProperties &40; const UAISenseConfig_Sight & SenseConfig &41;


void GenerateQueriesForListener ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & Listener, const [FDigestedSightProperties](API\Runtime\AIModule\Perception\UAISense_Sight\FDigestedSightProperties) & PropertyDigest, const [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void([FAISightQuery](API\Runtime\AIModule\Perception\FAISightQuery) &)> & OnAddedFunc )


virtual void OnListenerConfigUpdated ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & UpdatedListener )


virtual void OnListenerForgetsActor ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & Listener, [AActor](API\Runtime\Engine\GameFramework\AActor) & ActorToForget )


enum FQueriesOperationPostProcess { DontSort, Sort, }


void OnListenerRemovedImpl ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & RemovedListener )


virtual void OnListenerForgetsAll ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & Listener )


void OnListenerUpdateImpl ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & UpdatedListener )


void OnNewListenerImpl ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & NewListener )


void OnPendingCanBeSeenQueryProcessed ( const [FAISightQueryID](API\Runtime\AIModule\Perception\FAISightQueryID) & QueryID, const bool bIsVisible, const float StimulusStrength, const FVector & SeenLocation, const [TOptional](API\Runtime\Core\IO\TOptional)< int32 > & UserData )


void OnPendingTraceQueryProcessed ( const [FTraceHandle](API\Runtime\Engine\FTraceHandle) & TraceHandle, [FTraceDatum](API\Runtime\Engine\FTraceDatum) & TraceDatum )


void OnPendingQueryProcessed ( const int32 SightQueryIndex, const bool bIsVisible, const float StimulusStrength, const FVector & SeenLocation, const [TOptional](API\Runtime\Core\IO\TOptional)< int32 > & UserData, const [TOptional](API\Runtime\Core\IO\TOptional)< [AActor](API\Runtime\Engine\GameFramework\AActor) * > InTargetActor )


bool RegisterNewQuery ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & Listener, const [IGenericTeamAgentInterface](API\Runtime\AIModule\IGenericTeamAgentInterface) * ListenersTeamAgent, const [AActor](API\Runtime\Engine\GameFramework\AActor) & TargetActor, const [FAISightTarget::FTargetId](API\Runtime\AIModule\Perception\FAISightTarget\FTargetId) & TargetId, const FVector & TargetLocation, const [FDigestedSightProperties](API\Runtime\AIModule\Perception\UAISense_Sight\FDigestedSightProperties) & PropDigest, const [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void([FAISightQuery](API\Runtime\AIModule\Perception\FAISightQuery) &)> & OnAddedFunc )


Virtual void RegisterSources(TArraySourceActors) {}

virtual void RegisterSource ( [AActor](API\Runtime\Engine\GameFramework\AActor) & SourceActors )


void RegisterEvent ( const [FAISightEvent](API\Runtime\AIModule\Perception\FAISightEvent) & Event )


Returns information whether new LoS queries have been added

bool RegisterTarget ( [AActor](API\Runtime\Engine\GameFramework\AActor) & TargetActor, const [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void([FAISightQuery](API\Runtime\AIModule\Perception\FAISightQuery) &)> & OnAddedFunc )


void RemoveAllQueriesByListener ( const [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & Listener, const [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void(const [FAISightQuery](API\Runtime\AIModule\Perception\FAISightQuery) &)> & OnRemoveFunc )


virtual bool ShouldAutomaticallySeeTarget ( const [FDigestedSightProperties](API\Runtime\AIModule\Perception\UAISense_Sight\FDigestedSightProperties) & PropDigest, [FAISightQuery](API\Runtime\AIModule\Perception\FAISightQuery) * SightQuery, [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & Listener, [AActor](API\Runtime\Engine\GameFramework\AActor) * TargetActor, float & OutStimulusStrength ) const


void RemoveAllQueriesToTarget ( const [FAISightTarget::FTargetId](API\Runtime\AIModule\Perception\FAISightTarget\FTargetId) & TargetId, const [TFunction](API\Runtime\Core\GenericPlatform\TFunction)< void(const [FAISightQuery](API\Runtime\AIModule\Perception\FAISightQuery) &)> & OnRemoveFunc )


virtual void UnregisterSource ( [AActor](API\Runtime\Engine\GameFramework\AActor) & SourceActor )


time until next update


Deprecated* Please use the UpdateQueryVisibilityStatus version which takes an Actor& instead.

void UpdateQueryVisibilityStatus ( [FAISightQuery](API\Runtime\AIModule\Perception\FAISightQuery) & SightQuery, [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & Listener, const bool bIsVisible, const FVector & SeenLocation, const float StimulusStrength, [AActor](API\Runtime\Engine\GameFramework\AActor) * TargetActor, const FVector & TargetLocation ) const


void UpdateQueryVisibilityStatus ( [FAISightQuery](API\Runtime\AIModule\Perception\FAISightQuery) & SightQuery, [FPerceptionListener](API\Runtime\AIModule\Perception\FPerceptionListener) & Listener, const bool bIsVisible, const FVector & SeenLocation, const float StimulusStrength, [AActor](API\Runtime\Engine\GameFramework\AActor) & TargetActor, const FVector & TargetLocation ) const


UAISense_Sight ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UAISense_Sight : public [UAISense](API\Runtime\AIModule\Perception\UAISense)

Defines if we are allowed to use asynchronous trace queries when there is noIAISightTargetInterfacefor a Target

MaxAsyncTracesPerTick

Maximum number of asynchronous traces that can be requested in a single update call

NextOutOfRangeIndex

The SightQueries are a n^2 problem and to reduce the sort time, they are now split between in range and out of range Since the out of range queries only age as the distance component of the score is always 0, there is few need to sort them In the majority of the cases most of the queries are out of range, so the sort time is greatly reduced as we only sort the in range queries

PendingQueriesBudgetReductionRatio

Defines the amount of async trace queries to prevent based on the number of pending queries at the start of an update.


void RegisterEvent ( const [FAITeamStimulusEvent](API\Runtime\AIModule\Perception\FAITeamStimulusEvent) & Event )


UAISense_Team ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UAISense_Team : public [UAISense](API\Runtime\AIModule\Perception\UAISense)


static void ReportTouchEvent ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * WorldContextObject, [AActor](API\Runtime\Engine\GameFramework\AActor) * TouchReceiver, [AActor](API\Runtime\Engine\GameFramework\AActor) * OtherActor, FVector Location )


void RegisterEvent ( const [FAITouchEvent](API\Runtime\AIModule\Perception\FAITouchEvent) & Event )


class UAISense_Touch : public [UAISense](API\Runtime\AIModule\Perception\UAISense)


UAISense_Touch ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


UAISightTargetInterface ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UAISightTargetInterface : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


Broadcasts notification that our sensor hears a noise made local to a Pawn's position, using the OnHearNoise delegates.

virtual void BroadcastOnHearLocalNoise ( [APawn](API\Runtime\Engine\GameFramework\APawn) & Instigator, const FVector & Location, float Volume )


Broadcasts notification that our sensor hears a noise made remotely from a Pawn's position, using the OnHearNoise delegates.

virtual void BroadcastOnHearRemoteNoise ( [APawn](API\Runtime\Engine\GameFramework\APawn) & Instigator, const FVector & Location, float Volume )


Broadcasts notification that our sensor sees a Pawn, using the OnSeePawn delegates.

virtual void BroadcastOnSeePawn ( [APawn](API\Runtime\Engine\GameFramework\APawn) & Pawn )


True if sensor can hear this noise. Only executed if the noise has been determined to be relevant (via IsNoiseRelevant)

virtual bool CanHear ( const FVector & NoiseLoc, float Loudness, bool bFailedLOS ) const


Chance of seeing other pawn decreases with increasing distance or angle in peripheral vision
true if the specified pawn Other is potentially visible (within peripheral vision, etc.) - still need to do LineOfSightTo() check to see if actually visible.

virtual bool CouldSeePawn ( const [APawn](API\Runtime\Engine\GameFramework\APawn) * Other, bool bMaySkipChecks ) const


Are we capable of sensing anything (and do we have any callbacks that care about sensing)? If soUpdateAISensing()will be called every sensing interval.


[AActor](API\Runtime\Engine\GameFramework\AActor) * GetSensorActor() const


[AController](API\Runtime\Engine\GameFramework\AController) * GetSensorController() const


Get position where hearing/seeing occurs (i.e. ear/eye position). If we ever need different positions for hearing/seeing, we'll deal with that then!

virtual FVector GetSensorLocation() const


Check line to other actor.
true if controller's pawn can see Other actor.

virtual bool HasLineOfSightTo ( const [AActor](API\Runtime\Engine\GameFramework\AActor) * Other ) const


Initializes the component. Occurs at level startup or actor spawn. This is before BeginPlay (Actor or Component). All Components in the level will be Initialized on load before any Actor/Component gets BeginPlay Requires component to be registered, and bWantsInitializeComponent to be true.


Get the rotation of this sensor. We need this for the sight component

virtual FRotator GetSensorRotation() const


Test whether the noise is loud enough and recent enough to care about. bSourceWithinNoiseEmitter is true iff the noise was made by the pawn itself or within close proximity (its collision volume). Otherwise the noise was made at significant distance from the pawn.

bool IsNoiseRelevant ( const [APawn](API\Runtime\Engine\GameFramework\APawn) & Pawn, const [UPawnNoiseEmitterComponent](API\Runtime\Engine\Components\UPawnNoiseEmitterComponent) & NoiseEmitterComponent, bool bSourceWithinNoiseEmitter ) const


Is the given actor our owner? Used to ensure that we are not trying to sense our self / our owner.

virtual bool IsSensorActor ( const [AActor](API\Runtime\Engine\GameFramework\AActor) * Actor ) const


Update function called on timer intervals.


See if there are interesting sounds and sights that we want to detect, and respond to them if so.

virtual void SensePawn ( [APawn](API\Runtime\Engine\GameFramework\APawn) & Pawn )


Sets PeripheralVisionAngle. Calculates PeripheralVisionCosine from PeripheralVisionAngle

virtual void SetPeripheralVisionAngle ( const float NewPeripheralVisionAngle )


Changes the SensingInterval. If we are currently waiting for an interval, this can either extend or shorten that interval. A value <= 0 prevents any updates.

virtual void SetSensingInterval ( const float NewSensingInterval )


Modify the timer to fire in TimeDelay seconds. A value <= 0 disables the timer.

virtual void SetTimer ( const float TimeDelay )


Enables or disables sensing updates. The timer is reset in either case.

virtual void SetSensingUpdatesEnabled ( const bool bEnabled )


Returns true if we should check whether we can hear the given Pawn (because we are able to hear, and the Pawn has the correct team relationship to us)

virtual bool ShouldCheckAudibilityOf ( [APawn](API\Runtime\Engine\GameFramework\APawn) * Pawn ) const


Returns true if we should check whether the given Pawn is visible (because we can see things, the Pawn is not hidden, and if the Pawn is a player and we only see players)

virtual bool ShouldCheckVisibilityOf ( [APawn](API\Runtime\Engine\GameFramework\APawn) * Pawn ) const


UPawnSensingComponent ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


Calls SensePawn on any Pawns that we are allowed to sense.


SensingComponent encapsulates sensory (ie sight and hearing) settings and functionality for an Actor, allowing the actor to see/hear Pawns in the world. It does nothing on network clients.

class UPawnSensingComponent : public [UActorComponent](API\Runtime\Engine\Components\UActorComponent)

bEnableSensingUpdates

If true, component will perform sensing updates.

bHearNoises

If true, we will perform audibility tests and will be notified when a Pawn makes a noise that can be heard.

bOnlySensePlayers

If true, will only sense player-controlled pawns in the world. Default: true

bSeePawns

If true, we will perform visibility tests and will trigger notifications when a Pawn is visible.

HearingMaxSoundAge

Max age of sounds we can hear. Should be greater than SensingInterval, or you might miss hearing some sounds!

HearingThreshold

Max distance at which a makenoise(1.0) loudness sound can be heard, regardless of occlusion

OnHearNoise

Delegate to execute when we hear a noise from a Pawn's PawnNoiseEmitterComponent.

OnSeePawn

Delegate to execute when we see a Pawn.

PeripheralVisionAngle

How far to the side AI can see, in degrees.

PeripheralVisionCosine

Cosine of limits of peripheral vision. Computed from PeripheralVisionAngle.

SensingInterval

Amount of time between pawn sensing updates.

SightRadius

Maximum sight distance.

Handle for efficient management of OnTimer timer


Called to trigger the actual task once the delegates have been set up Note that the default implementation does nothing and you don't have to call it


[AAIController](API\Runtime\AIModule\AAIController) * GetAIController() const


static [AAIController](API\Runtime\AIModule\AAIController) * GetAIControllerForActor ( [AActor](API\Runtime\Engine\GameFramework\AActor) * Actor )


void InitAITask ( [AAIController](API\Runtime\AIModule\AAIController) & AIOwner, [IGameplayTaskOwnerInterface](API\Runtime\GameplayTasks\IGameplayTaskOwnerInterface) & InTaskOwner )


template<class T> static T * NewAITask ( [AAIController](API\Runtime\AIModule\AAIController) & AIOwner, [FName](API\Runtime\Core\UObject\FName) InstanceName )


void InitAITask ( [AAIController](API\Runtime\AIModule\AAIController) & AIOwner, [IGameplayTaskOwnerInterface](API\Runtime\GameplayTasks\IGameplayTaskOwnerInterface) & InTaskOwner, uint8 InPriority )


template<class T> static T * NewAITask ( [AAIController](API\Runtime\AIModule\AAIController) & AIOwner, [IGameplayTaskOwnerInterface](API\Runtime\GameplayTasks\IGameplayTaskOwnerInterface) & InTaskOwner, [FName](API\Runtime\Core\UObject\FName) InstanceName )


template<class T> static T * NewAITask ( [AAIController](API\Runtime\AIModule\AAIController) & AIOwner, EAITaskPriority InPriority, [FName](API\Runtime\Core\UObject\FName) InstanceName )


template<class T> static T * NewAITask ( [AAIController](API\Runtime\AIModule\AAIController) & AIOwner, [IGameplayTaskOwnerInterface](API\Runtime\GameplayTasks\IGameplayTaskOwnerInterface) & InTaskOwner, EAITaskPriority InPriority, [FName](API\Runtime\Core\UObject\FName) InstanceName )


template<class T> static T * NewAITask ( const [UClass](API\Runtime\CoreUObject\UObject\UClass) & Class, [AAIController](API\Runtime\AIModule\AAIController) & AIOwner, [IGameplayTaskOwnerInterface](API\Runtime\GameplayTasks\IGameplayTaskOwnerInterface) & InTaskOwner, [FName](API\Runtime\Core\UObject\FName) InstanceName )


template<class T> static T * NewAITask ( const [UClass](API\Runtime\CoreUObject\UObject\UClass) & Class, [AAIController](API\Runtime\AIModule\AAIController) & AIOwner, [IGameplayTaskOwnerInterface](API\Runtime\GameplayTasks\IGameplayTaskOwnerInterface) & InTaskOwner, EAITaskPriority InPriority, [FName](API\Runtime\Core\UObject\FName) InstanceName )


Effectively addsUAIResource_Logicto the set of Claimed resources


UAITask ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UAITask : public [UGameplayTask](API\Runtime\GameplayTasks\UGameplayTask)


UAITask_LockLogic ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


Locks AI logic until removed by external trigger

class UAITask_LockLogic : public [UAITask](API\Runtime\AIModule\Tasks\UAITask)


static [UAITask_MoveTo](API\Runtime\AIModule\Tasks\UAITask_MoveTo) * AIMoveTo ( [AAIController](API\Runtime\AIModule\AAIController) * Controller, FVector GoalLocation, [AActor](API\Runtime\Engine\GameFramework\AActor) * GoalActor, float AcceptanceRadius, [EAIOptionFlag::Type](API\Runtime\AIModule\EAIOptionFlag__Type) StopOnOverlap, [EAIOptionFlag::Type](API\Runtime\AIModule\EAIOptionFlag__Type) AcceptPartialPath, bool bUsePathfinding, bool bLockAILogic, bool bUseContinuousGoalTracking, [EAIOptionFlag::Type](API\Runtime\AIModule\EAIOptionFlag__Type) ProjectGoalOnNavigation )


Tries to start move request and handles retry timer


Tries to update invalidated path and handles retry timer


Finish task

void FinishMoveTask ( [EPathFollowingResult::Type](API\Runtime\AIModule\Navigation\EPathFollowingResult__Type) InResult )


Allows custom move request tweaking. Note that all MoveRequest need to be performed before PerformMove is called.


End and CleanUp the task - may be called by the task itself or by the task owner if the owner is ending. IMPORTANT! Do NOT call directly! CallEndTask()orTaskOwnerEnded()IMPORTANT! When overriding this function make sure to call Super::OnDestroy(bOwnerFinished) as the last thing, since the function internally marks the task as "Pending Kill", and this may interfere with internal BP mechanics

virtual void OnDestroy ( bool bInOwnerFinished )


Event from followed path

virtual void OnPathEvent ( [FNavigationPath](API\Runtime\NavigationSystem\FNavigationPath) * InPath, [ENavPathEvent::Type](API\Runtime\Engine\AI\Navigation\ENavPathEvent__Type) Event )


Event from path following

virtual void OnRequestFinished ( [FAIRequestID](API\Runtime\AIModule\FAIRequestID) RequestID, const [FPathFollowingResult](API\Runtime\AIModule\Navigation\FPathFollowingResult) & Result )


Protected by design. Not meant to be called outside from GameplayTaskComponent mechanics


Start move request


Remove all delegates


Remove all timers


Switch task into continuous tracking mode: keep restarting move toward goal actor. Only pathfinding failure or external cancel will be able to stop this task.

void SetContinuousGoalTracking ( bool bEnable )


Stores path and starts observing its events

void SetObservedPath ( FNavPathSharedPtr InPath )


Prepare move task for activation

void SetUp ( [AAIController](API\Runtime\AIModule\AAIController) * Controller, const [FAIMoveRequest](API\Runtime\AIModule\FAIMoveRequest) & InMoveRequest )


UAITask_MoveTo ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UAITask_MoveTo : public [UAITask](API\Runtime\AIModule\Tasks\UAITask)

MoveRequest

Parameters of move request

MoveRequestID

Request ID of path following's request

MoveRetryTimerHandle

Handle of active ConditionalPerformMove timer

Path

Currently followed path

PathFinishDelegateHandle

Handle of path following's OnMoveFinished delegate

PathRetryTimerHandle

Handle of active ConditionalUpdatePath timer

PathUpdateDelegateHandle

Handle of path's update event delegate


void OnEQSRequestFinished ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FEnvQueryResult](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryResult) > Result )


static [UAITask_RunEQS](API\Runtime\AIModule\Tasks\UAITask_RunEQS) * RunEQS ( [AAIController](API\Runtime\AIModule\AAIController) * Controller, [UEnvQuery](API\Runtime\AIModule\EnvironmentQuery\UEnvQuery) * QueryTemplate )


void SetNotificationDelegate ( const FQueryFinishedSignature & InNotificationDelegate )


void SetQueryTemplate ( [UEnvQuery](API\Runtime\AIModule\EnvironmentQuery\UEnvQuery) & InQueryTemplate )


UAITask_RunEQS ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UAITask_RunEQS : public [UAITask](API\Runtime\AIModule\Tasks\UAITask)


You have to supply this yourself

static FBox CalcElementBounds ( const [FElement](API\Runtime\AIModule\TBVTree\FElement) & )


static FBox CalcNodeBounds ( const [TArray](API\Runtime\Core\Containers\TArray)< [FElementBox](API\Runtime\AIModule\TBVTree\FElementBox) > & ElementBBoxes, const int StartIndex, const int LimitIndex )


void Create ( const [TArray](API\Runtime\Core\Containers\TArray)< [FElement](API\Runtime\AIModule\TBVTree\FElement) > & InElements )


void Create ( [TArray](API\Runtime\Core\Containers\TArray)< [FElement](API\Runtime\AIModule\TBVTree\FElement) > && InElements )


Assumes Elements has been set up


struct FElementBox : public [UE::Math::TBox< double >](API\Runtime\Core\Math\TBox)

ElementIndex

Index to TBVTree.Elements


const [TArray](API\Runtime\Core\Containers\TArray)< FBox, InAllocator > & GetBoundingBoxes() const


const [TArray](API\Runtime\Core\Containers\TArray)< [FElement](API\Runtime\AIModule\TBVTree\FElement) > & GetElements() const


[TArray](API\Runtime\Core\Containers\TArray)< [FElement](API\Runtime\AIModule\TBVTree\FElement) > & GetElements()


static int GetLongestAxis ( const FBox & NodeBounds )


const [TArray](API\Runtime\Core\Containers\TArray)< int16, InAllocator > & GetNodes() const


void GetOverlapping ( const FBox & Box, [TArray](API\Runtime\Core\Containers\TArray)< [FElement](API\Runtime\AIModule\TBVTree\FElement) > & OutOverlappingElements ) const


Recreate the tree based on the current content of Elements. Callers are expected to have filled theGetElements()array before calling this function.


void RecreateTree ( const [TArray](API\Runtime\Core\Containers\TArray)< [FElement](API\Runtime\AIModule\TBVTree\FElement) > & InElements )


void RecreateTree ( [TArray](API\Runtime\Core\Containers\TArray)< [FElement](API\Runtime\AIModule\TBVTree\FElement) > && InElements )


void Subdivide ( [TArray](API\Runtime\Core\Containers\TArray)< [FElementBox](API\Runtime\AIModule\TBVTree\FElementBox) > & ElementBBoxes, const int StartIndex, const int LimitIndex, int & CurrentNode )


TBVTree ( const [TArray](API\Runtime\Core\Containers\TArray)< [FElement](API\Runtime\AIModule\TBVTree\FElement) > & InElements )


TBVTree ( [TArray](API\Runtime\Core\Containers\TArray)< [FElement](API\Runtime\AIModule\TBVTree\FElement) > && InElements )


Users are expected to provide an implementation of CalcElementBounds for ElementType: static FBox CalcElementBounds(const FElement& Element) const

template<typename InElementType, typename InAllocator> struct TBVTree


Deprecated*TDefaultManagerInstanceTrackeris deprecated and will be removed. Consider inheriting from a subsystem instead.

FManager * GetManagerInstance ( [UWorld](API\Runtime\Engine\Engine\UWorld) & World )


void OnPostWorldCleanup ( [UWorld](API\Runtime\Engine\Engine\UWorld) * World, bool, bool )


template<typename FManager> struct TDefaultManagerInstanceTracker


Adds item to the grid.
Cell location of the item, can be used later to remove the item.

[FCellLocation](API\Runtime\AIModule\THierarchicalHashGrid2D\FCellLocation) Add ( const [ItemIDType](API\Runtime\AIModule\THierarchicalHashGrid2D\ItemIDType) ID, const FBox & Bounds )


void Add ( const [ItemIDType](API\Runtime\AIModule\THierarchicalHashGrid2D\ItemIDType) ID, const [FCellLocation](API\Runtime\AIModule\THierarchicalHashGrid2D\FCellLocation) & Location )


Finds the world box from a cell.  CellLocation - Cell location.
Returns the bounds of the cell.

FBox CalcCellBounds ( const [FCellLocation](API\Runtime\AIModule\THierarchicalHashGrid2D\FCellLocation) & CellLocation ) const


Finds grid level where the bounds fit inside a cell.
Returns cell location of the item, or location at Level == INDEX_NONE if the item cannot fit in the grid.

[FCellLocation](API\Runtime\AIModule\THierarchicalHashGrid2D\FCellLocation) CalcCellLocation ( const FBox & Bounds ) const


Calculates cell based query rectangle. The bounds are expanded by half grid cell size because the items are stored for only one cell based on their center and side. For that reason the items can overlap the neighbor cells by half the cell size.
Quantized rectangle representing the cell bounds at specific level of the tree, coordinates inclusive.

[FCellRect](API\Runtime\AIModule\THierarchicalHashGrid2D\FCellRect) CalcQueryBounds ( const FBox & Bounds, const int32 Level ) const


Need for TSet<>

bool operator&61;&61; &40; const FCell & RHS &41; const


FCell &40; const int32 InX, const int32 InY, const int32 InLevel &41;


Ratio in cells between consecutive levels. Cells are located based on their hash. Each cell stores linked list of items at that location and how many children are under the same location in the finer grid levels.

ChildItemCount

First item in the item linked list. (index to Items array, or INDEX_NONE)

First

Location of the cell


bool operator&61;&61; &40; const FCellLocation & RHS &41; const


bool operator&33;&61; &40; const FCellLocation & RHS &41; const


FCellLocation &40; const int32 InX, const int32 InY, const int32 InLevel &41;


Specifies cell location within the grid at specific level.


FCellRect &40; const int32 InMinX, const int32 InMinY, const int32 InMaxX, const int32 InMaxY &41;


Rectangle bounds, coordinates inclusive.


Iterator state over a rectangle

Level

Current Y

Rect

Current level

Y

Current X


Returns a cell for specific location and level.
Pointer to cell at specified location, or return nullptr if the cell does not exist.

const [FCell](API\Runtime\AIModule\THierarchicalHashGrid2D\FCell) * FindCell ( const int X, const int Y, const int Level ) const


[FCell](API\Runtime\AIModule\THierarchicalHashGrid2D\FCell) * FindCellMutable ( const int X, const int Y, const int Level )


Returns a cell for specific location and level, creates new cell if it does not exist.
Reference to cell at specified location.

[FCell](API\Runtime\AIModule\THierarchicalHashGrid2D\FCell) & FindOrAddCell ( const int X, const int Y, const int Level )


Item stored in a grid cell.

Next

External item ID


Set containing all the cells.

const [TSet](API\Runtime\Core\Containers\TSet)< [FCell](API\Runtime\AIModule\THierarchicalHashGrid2D\FCell) > & GetCells() const


Indexin items of the first item on the spill list.


Cell size at specific grid level.

float GetCellSize ( const int32 Level ) const


1/cellSize at specific grid level.

float GetInvCellSize ( const int32 Level ) const


Sparse array containing all the items.

const [TSparseArray](API\Runtime\Core\Containers\TSparseArray)< [FItem](API\Runtime\AIModule\THierarchicalHashGrid2D\FItem) > & GetItems() const


Resets and initializes the grid for specific cell size.

void Initialize ( const float InCellSize )


Array containing all the items.

int32 GetLevelItemCount ( const int32 Level ) const


Returns intersection of the two cell bounding rectangles.
Intersecting are between left and right.

[FCellRect](API\Runtime\AIModule\THierarchicalHashGrid2D\FCellRect) IntersectRect ( const [FCellRect](API\Runtime\AIModule\THierarchicalHashGrid2D\FCellRect) & Left, const [FCellRect](API\Runtime\AIModule\THierarchicalHashGrid2D\FCellRect) & Right ) const


Levels down a coordinate using floor rounding.
Coordinate at coarser level.


Number of grid levels in the grid.

static const int32 LevelRatio = InLevelRatio;


Moves item based on previous bounding box and new bounding box.
The cell location where the item was added to.

[FCellLocation](API\Runtime\AIModule\THierarchicalHashGrid2D\FCellLocation) Move ( const [ItemIDType](API\Runtime\AIModule\THierarchicalHashGrid2D\ItemIDType) ID, const FBox & OldBounds, const FBox & NewBounds )


[FCellLocation](API\Runtime\AIModule\THierarchicalHashGrid2D\FCellLocation) Move ( const [ItemIDType](API\Runtime\AIModule\THierarchicalHashGrid2D\ItemIDType) ID, const [FCellLocation](API\Runtime\AIModule\THierarchicalHashGrid2D\FCellLocation) & OldLocation, const FBox & NewBounds )


static const int32 NumLevels = InNumLevels;


Returns items that potentially touch the bounds. Operates on grid level, can have false positives.

void Query ( const FBox & Bounds, [TArray](API\Runtime\Core\Containers\TArray)< [ItemIDType](API\Runtime\AIModule\THierarchicalHashGrid2D\ItemIDType) > & OutResults ) const


Returns items that potentially touch the bounds. Operates on grid level, can have false positives. This can be faster thanQuery()for small query box sizes (i.e. max dimension CellSize*4) due to simpler logic.

void QuerySmall ( const FBox & Bounds, [TArray](API\Runtime\Core\Containers\TArray)< [ItemIDType](API\Runtime\AIModule\THierarchicalHashGrid2D\ItemIDType) > & OutResults ) const


Removes item based on the bounding box it was added with.

void Remove ( const [ItemIDType](API\Runtime\AIModule\THierarchicalHashGrid2D\ItemIDType) ID, const FBox & OldBounds )


Reset the grid to empty.


Constructor, initializes the grid for specific cell size.

THierarchicalHashGrid2D ( const float InCellSize )


Potential optimizations:

template<int32 InNumLevels, int32 InLevelRatio, typename InItemIDType> class THierarchicalHashGrid2D

Cells

Number items per level, can be used to skip certain levels.

InvCellSize

Lowest level cell size

Items

TSetuses hash buckets to locate items.

LevelItemCount

1 / CellSize

SpillList

TSparseArrayuses freelist to recycled used items.


Removes item based on the cell location it was added with.

void Remove ( const [ItemIDType](API\Runtime\AIModule\THierarchicalHashGrid2D\ItemIDType) ID, const [FCellLocation](API\Runtime\AIModule\THierarchicalHashGrid2D\FCellLocation) & OldLocation )


[FCellType](API\Runtime\AIModule\TSimpleCellGrid\FCellType) & GetCellAtIndexUnsafe ( int32 CellIndex )


const [FCellType](API\Runtime\AIModule\TSimpleCellGrid\FCellType) & GetCellAtIndexUnsafe ( int32 CellIndex ) const


const [FCellType](API\Runtime\AIModule\TSimpleCellGrid\FCellType) & GetCellAtWorldLocation ( const FVector & WorldLocation ) const


const [FCellType](API\Runtime\AIModule\TSimpleCellGrid\FCellType) & GetCellAtWorldLocationUnsafe ( const FVector & WorldLocation ) const


Convert world location to (X,Y) coords on grid, result is clamped to grid

FIntVector GetCellCoords ( const FVector & WorldLocation ) const


Convert cell index to (X,Y) coords on grid

FIntVector GetCellCoords ( int32 CellIndex ) const


Convert world location to (X,Y) coords on grid, result can be outside grid

FIntVector GetCellCoordsUnsafe ( const FVector & WorldLocation ) const


Convert cell index to coord X on grid, result can be invalid

int32 GetCellCoordX ( int32 CellIndex ) const


Convert cell index to coord Y on grid, result can be invalid

int32 GetCellCoordY ( int32 CellIndex ) const


Convert world location to cell index, returns -1 for position outside grid

int32 GetCellIndex ( const FVector & WorldLocation ) const


Convert (X,Y) coords on grid to cell index, returns -1 for position outside grid

int32 GetCellIndex ( int32 LocationX, int32 LocationY ) const


Convert world location to cell index, result can be invalid

int32 GetCellIndexUnsafe ( const FVector & WorldLocation ) const


Convert (X,Y) coords on grid to cell index, result can be invalid

int32 GetCellIndexUnsafe ( const FIntVector & CellCoords ) const


int32 GetCellIndexUnsafe ( int32 LocationX, int32 LocationY ) const


FBox GetWorldCellBox ( int32 CellIndex ) const


FBox GetWorldCellBox ( int32 LocationX, int32 LocationY ) const


FVector GetWorldCellCenter ( int32 CellIndex ) const


FVector GetWorldCellCenter ( int32 LocationX, int32 LocationY ) const


bool Init ( float InCellSize, const FBox & Bounds )


bool IsValidCoord ( const FIntVector & CellCoords ) const


bool IsValidCoord ( int32 LocationX, int32 LocationY ) const


bool IsValidIndex ( const int32 CellIndex ) const


[FCellType](API\Runtime\AIModule\TSimpleCellGrid\FCellType) & operator[] ( int32 CellIndex )


const [FCellType](API\Runtime\AIModule\TSimpleCellGrid\FCellType) & operator[] ( int32 CellIndex ) const


void Serialize ( [FArchive](API\Runtime\Core\Serialization\FArchive) & Ar )


No virtuals on purpose

template<typename CellType, int InvalidCellValue> struct TSimpleCellGrid


UAIResourceInterface ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


class UAIResourceInterface : public [UInterface](API\Runtime\CoreUObject\UObject\UInterface)


class UAIResource_Logic : public [UGameplayTaskResource](API\Runtime\GameplayTasks\UGameplayTaskResource)


class UAIResource_Movement : public [UGameplayTaskResource](API\Runtime\GameplayTasks\UGameplayTaskResource)


Return the stat id to use for this tickable

virtual [TStatId](API\Runtime\Core\Stats\TStatId) GetStatId() const


FTickableGameObjectbegin.

virtual [UWorld](API\Runtime\Engine\Engine\UWorld) * GetTickableGameObjectWorld() const


virtual [UWorld](API\Runtime\Engine\Engine\UWorld) * GetWorld() const


[UWorld](API\Runtime\Engine\Engine\UWorld) * GetWorldFast() const


UAISubsystem ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


Pure virtual that must be overloaded by the inheriting class. It will be called from within LevelTick.cpp after ticking all actors or from the rendering thread (depending on bIsRenderingThreadObject)


A class representing a common interface and behavior for AI subsystems

class UAISubsystem : public [UObject](API\Runtime\CoreUObject\UObject\UObject), public [FTickableGameObject](API\Runtime\Engine\FTickableGameObject)


void AddReferenceFromProxyObject ( [UAIAsyncTaskBlueprintProxy](API\Runtime\AIModule\Blueprint\UAIAsyncTaskBlueprintProxy) * BlueprintProxy )


Cheats


Virtual that can be overloaded by the inheriting class. It is used to determine whether an object will ever be able to tick, and if not, it will not get added to the tickable objects array. If the tickable tick type is Conditional then the virtual IsTickable will be called to determine whether to tick the object on each given frame
true if object will ever want to be ticked, false otherwise.

virtual ETickableTickType GetTickableTickType() const


Called before destroying the object. This is called immediately upon deciding to destroy the object, to allow the object to begin an asynchronous cleanup process.


Called byUWorld::CleanupWorld. Should be called by overriding functions.

virtual void CleanupWorld ( bool bSessionEnded, bool bCleanupResources )


Deprecated* NewWorld was unused and not always calculated correctly and we expect it is not needed; let us know on UDN if it is necessary.

virtual void CleanupWorld ( bool bSessionEnded, bool bCleanupResources, [UWorld](API\Runtime\Engine\Engine\UWorld) * NewWorld )


Creates a forward only iterator for that will iterate allUBlackboardComponentinstances that reference the specified BlackboardAsset and it's parents.

[FBlackboardDataToComponentsIterator](API\Runtime\AIModule\UAISystem\FBlackboardDataToComponentsItera-) CreateBlackboardDataToComponentsIterator ( class [UBlackboardData](API\Runtime\AIModule\BehaviorTree\UBlackboardData) & BlackboardAsset )


FBlackboardDataToComponentsIterator operator&43;&43; &40; int &41;


UBlackboardComponent &42; Value&40;&41; const


FBlackboardDataToComponentsIterator &40; FBlackboardDataToComponentsMap & BlackboardDataToComponentsMap, class UBlackboardData &42; BlackboardAsset &41;


Iterator for traversing allUBlackboardComponentinstances associated with this blackboard data asset. This is a forward only iterator.


Behavior tree manager getter


Behavior tree manager const getter

const [UBehaviorTreeManager](API\Runtime\AIModule\BehaviorTree\UBehaviorTreeManager) * GetBehaviorTreeManager() const


static [UAISystem](API\Runtime\AIModule\UAISystem) * GetCurrent ( [UWorld](API\Runtime\Engine\Engine\UWorld) & World )


static [UAISystem](API\Runtime\AIModule\UAISystem) * GetCurrentSafe ( [UWorld](API\Runtime\Engine\Engine\UWorld) * World )


Environment Query manager getter


Environment Query manager const getter

const [UEnvQueryManager](API\Runtime\AIModule\EnvironmentQuery\UEnvQueryManager) * GetEnvironmentQueryManager() const


const [UAIHotSpotManager](API\Runtime\AIModule\HotSpots\UAIHotSpotManager) * GetHotSpotManager() const


const [UNavLocalGridManager](API\Runtime\AIModule\Navigation\UNavLocalGridManager) * GetNavLocalGridManager() const


[UWorld](API\Runtime\Engine\Engine\UWorld) * GetOuterWorld() const


const [UAIPerceptionSystem](API\Runtime\AIModule\Perception\UAIPerceptionSystem) * GetPerceptionSystem() const


static const [FRandomStream](API\Runtime\Core\Math\FRandomStream) & GetRandomStream()


virtual [UWorld](API\Runtime\Engine\Engine\UWorld) * GetWorld() const


UAISystemBasebegin.

virtual void InitializeActorsForPlay ( bool bTimeGotReset )


virtual void OnActorSpawned ( [AActor](API\Runtime\Engine\GameFramework\AActor) * SpawnedActor )


virtual void OnPawnBeginPlay ( [APawn](API\Runtime\Engine\GameFramework\APawn) * Pawn )


Called after the C++ constructor and after the properties have been initialized, including those loaded from config. This is called before any serialization or other setup has happened.


Registers aUBlackboardComponentinstance with this blackboard data asset. This will also register the component for each parentUBlackboardDataasset. This should be called after the component has been initialized (i.e. InitializeComponent). The user is responsible for calling UnregisterBlackboardComponent (i.e. UninitializeComponent).

void RegisterBlackboardComponent ( class [UBlackboardData](API\Runtime\AIModule\BehaviorTree\UBlackboardData) & BlackboardAsset, class [UBlackboardComponent](API\Runtime\AIModule\BehaviorTree\UBlackboardComponent) & BlackboardComp )


Random number stream to be used by all things AI. WIP


void RemoveReferenceToProxyObject ( [UAIAsyncTaskBlueprintProxy](API\Runtime\AIModule\Blueprint\UAIAsyncTaskBlueprintProxy) * BlueprintProxy )


Insta-runs EQS query for given Target

void RunEQS ( const [FString](API\Runtime\Core\Containers\FString) & QueryName, [UObject](API\Runtime\CoreUObject\UObject\UObject) * Target )


static void SeedRandomStream ( const int32 Seed )


Called byUWorld::BeginPlayto indicate the gameplay has started. Should be called by overriding functions.


Unregisters aUBlackboardComponentinstance with this blackboard data asset. This should be called before the component has been uninitialized (i.e. UninitializeComponent).

void UnregisterBlackboardComponent ( class [UBlackboardData](API\Runtime\AIModule\BehaviorTree\UBlackboardData) & BlackboardAsset, class [UBlackboardComponent](API\Runtime\AIModule\BehaviorTree\UBlackboardComponent) & BlackboardComp )


Event called on world origin location changes

virtual void WorldOriginLocationChanged ( FIntVector OldOriginLocation, FIntVector NewOriginLocation )


class UAISystem : public [UAISystemBase](API\Runtime\Engine\AI\UAISystemBase)

AcceptanceRadius

Default AI movement's acceptance radius used to determine whether AI reached path's end

bAcceptPartialPaths

Sets default value for rather move tasks accept partial paths or not

bAddBlackboardSelfKey

If set to true will result in automatically adding the SelfActor key to new Blackboard assets.

bAllowControllersAsEQSQuerier

If enable will make EQS not complaint about using Controllers as queriers.

bAllowStrafing

Sets default value for rather move tasks allow strafing or not

If enabled, blackboard based decorators will set key to 'Invalid' on creation or when selected key no longer exists (instead of using the first key of the blackboard).

BehaviorTreeManager

Behavior tree manager used by game

bEnableDebuggerPlugin

If set, GameplayDebuggerPlugin will be loaded on module's startup

bFinishMoveOnGoalOverlap

If true, overlapping the goal will be counted by default as finishing a move

bForgetStaleActors

If set, actors will be forgotten by the perception system when their stimulus has expired.

BlackboardDataToComponentsMap

UBlackboardComponentinstances that reference the blackboard data definition

DefaultBlackboard

If set, new BTs will use this BB as default.

DefaultSightCollisionChannel

Which collision channel to use for sight checks by default

EnvironmentQueryManager

Environment query manager used by game

EnvQueryManagerClassName

Class that will be used to spawn the env query manager, can be game-specific

HotSpotManagerClassName

Class that will be used to spawn the hot spot manager, can be game-specific

PathfollowingNavLinkAcceptanceRadius

Similarly to PathfollowingRegularPathPointAcceptanceRadius used by pathfollowing's internals but gets applied only when next point on a path represents a begining of navigation link

Value used for pathfollowing's internal code to determine whether AI reached path's point.

PerceptionSystemClassName

Class that will be used to spawn the perception system, can be game-specific


UAISystem ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


Static names to be used with SendMessage. Fell free to define game-specific messages anywhere you want

static const [FName](API\Runtime\Core\UObject\FName) AIMessage_MoveFinished = TEXT("MoveFinished");


static const [FName](API\Runtime\Core\UObject\FName) AIMessage_QueryFinished = TEXT("QueryFinished");


ENDUActorComponentoverrides caches BlackboardComponent's pointer to be used with this brain component

void CacheBlackboardComponent ( [UBlackboardComponent](API\Runtime\AIModule\BehaviorTree\UBlackboardComponent) * BBComp )


static const [FName](API\Runtime\Core\UObject\FName) AIMessage_RepathFailed = TEXT("RepathFailed");


AI logic won't be needed anymore, stop all activity and run cleanup


Clear resource lock of the given origin

virtual void ClearResourceLock ( [EAIRequestPriority::Type](API\Runtime\AIModule\EAIRequestPriority__Type) LockSource )