Update test properties after changing mode

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


virtual [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UNavigationQueryFilter](API\Runtime\NavigationSystem\NavFilters\UNavigationQueryFilter) > GetNavFilterClass ( [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) & QueryInstance ) const


Do any object-specific cleanup required immediately after loading an object. This is not called for newly-created objects, and by default will always execute on the game thread.


Function that does the actual work

virtual void RunTest ( [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) & QueryInstance ) const


bool TestPathFrom ( const FVector & ItemPos, const FVector & ContextPos, [EPathFindingMode::Type](API\Runtime\NavigationSystem\EPathFindingMode__Type) Mode, const [ANavigationData](API\Runtime\NavigationSystem\ANavigationData) & NavData, [UNavigationSystemV1](API\Runtime\NavigationSystem\UNavigationSystemV1) & NavSys, FSharedConstNavQueryFilter NavFilter, const [UObject](API\Runtime\CoreUObject\UObject\UObject) * PathOwner ) const


bool TestPathTo ( const FVector & ItemPos, const FVector & ContextPos, [EPathFindingMode::Type](API\Runtime\NavigationSystem\EPathFindingMode__Type) Mode, const [ANavigationData](API\Runtime\NavigationSystem\ANavigationData) & NavData, [UNavigationSystemV1](API\Runtime\NavigationSystem\UNavigationSystemV1) & NavSys, FSharedConstNavQueryFilter NavFilter, const [UObject](API\Runtime\CoreUObject\UObject\UObject) * PathOwner ) const


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


class UEnvQueryTest_Pathfinding : public [UEnvQueryTest](API\Runtime\AIModule\EnvironmentQuery\UEnvQueryTest)

Context

Context: other end of pathfinding test

FilterClass

Navigation filter to use in pathfinding

PathFromContext

Pathfinding direction

SkipUnreachable

If set, items with failed path will be invalidated (PathCost, PathLength)

TestMode

Testing mode


virtual [FText](API\Runtime\Core\Internationalization\FText) GetDescriptionTitle() const


Function that does the actual work


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


class UEnvQueryTest_PathfindingBatch : public [UEnvQueryTest_Pathfinding](API\Runtime\AIModule\EnvironmentQuery\Tests\UEnvQueryTest_Pathfinding)

ScanRangeMultiplier

Multiplier for max distance between point and context


virtual [FText](API\Runtime\Core\Internationalization\FText) GetDescriptionDetails() const


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


Projects points on navigation or geometry, will modify value of projected items. Works only on item type: point

class UEnvQueryTest_Project : public [UEnvQueryTest](API\Runtime\AIModule\EnvironmentQuery\UEnvQueryTest)

ProjectionData

Trace params


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


class UEnvQueryTest_Random : public [UEnvQueryTest](API\Runtime\AIModule\EnvironmentQuery\UEnvQueryTest)


typedef TBaseDelegate_SevenParams< bool, const FVector &, const FVector &, [AActor](API\Runtime\Engine\GameFramework\AActor) *, [UWorld](API\Runtime\Engine\Engine\UWorld) *, enum ECollisionChannel, const [FCollisionQueryParams](API\Runtime\Engine\FCollisionQueryParams) &, const FVector & > FRunTraceSignature


bool RunBoxTraceFrom ( const FVector & ItemPos, const FVector & ContextPos, [AActor](API\Runtime\Engine\GameFramework\AActor) * ItemActor, [UWorld](API\Runtime\Engine\Engine\UWorld) * World, enum ECollisionChannel Channel, const [FCollisionQueryParams](API\Runtime\Engine\FCollisionQueryParams) & Params, const FVector & Extent )


bool RunBoxTraceTo ( const FVector & ItemPos, const FVector & ContextPos, [AActor](API\Runtime\Engine\GameFramework\AActor) * ItemActor, [UWorld](API\Runtime\Engine\Engine\UWorld) * World, enum ECollisionChannel Channel, const [FCollisionQueryParams](API\Runtime\Engine\FCollisionQueryParams) & Params, const FVector & Extent )


bool RunCapsuleTraceFrom ( const FVector & ItemPos, const FVector & ContextPos, [AActor](API\Runtime\Engine\GameFramework\AActor) * ItemActor, [UWorld](API\Runtime\Engine\Engine\UWorld) * World, enum ECollisionChannel Channel, const [FCollisionQueryParams](API\Runtime\Engine\FCollisionQueryParams) & Params, const FVector & Extent )


bool RunCapsuleTraceTo ( const FVector & ItemPos, const FVector & ContextPos, [AActor](API\Runtime\Engine\GameFramework\AActor) * ItemActor, [UWorld](API\Runtime\Engine\Engine\UWorld) * World, enum ECollisionChannel Channel, const [FCollisionQueryParams](API\Runtime\Engine\FCollisionQueryParams) & Params, const FVector & Extent )


bool RunLineTraceFrom ( const FVector & ItemPos, const FVector & ContextPos, [AActor](API\Runtime\Engine\GameFramework\AActor) * ItemActor, [UWorld](API\Runtime\Engine\Engine\UWorld) * World, enum ECollisionChannel Channel, const [FCollisionQueryParams](API\Runtime\Engine\FCollisionQueryParams) & Params, const FVector & Extent )


bool RunLineTraceTo ( const FVector & ItemPos, const FVector & ContextPos, [AActor](API\Runtime\Engine\GameFramework\AActor) * ItemActor, [UWorld](API\Runtime\Engine\Engine\UWorld) * World, enum ECollisionChannel Channel, const [FCollisionQueryParams](API\Runtime\Engine\FCollisionQueryParams) & Params, const FVector & Extent )


bool RunSphereTraceFrom ( const FVector & ItemPos, const FVector & ContextPos, [AActor](API\Runtime\Engine\GameFramework\AActor) * ItemActor, [UWorld](API\Runtime\Engine\Engine\UWorld) * World, enum ECollisionChannel Channel, const [FCollisionQueryParams](API\Runtime\Engine\FCollisionQueryParams) & Params, const FVector & Extent )


bool RunSphereTraceTo ( const FVector & ItemPos, const FVector & ContextPos, [AActor](API\Runtime\Engine\GameFramework\AActor) * ItemActor, [UWorld](API\Runtime\Engine\Engine\UWorld) * World, enum ECollisionChannel Channel, const [FCollisionQueryParams](API\Runtime\Engine\FCollisionQueryParams) & Params, const FVector & Extent )


Function that does the actual work

virtual void RunTest ( [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) & QueryInstance ) const


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


class UEnvQueryTest_Trace : public [UEnvQueryTest](API\Runtime\AIModule\EnvironmentQuery\UEnvQueryTest)

Context

Context: other end of trace test

ContextHeightOffset

Z offset from querier

ItemHeightOffset

Z offset from item

TraceData

Trace data

TraceFromContext

Trace direction


virtual [FText](API\Runtime\Core\Internationalization\FText) GetDescriptionDetails() const


virtual [FText](API\Runtime\Core\Internationalization\FText) GetDescriptionTitle() const


Function that does the actual work


Called when a property on this object has been modified externally

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


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


class UEnvQueryTest_Volume : public [UEnvQueryTest](API\Runtime\AIModule\EnvironmentQuery\UEnvQueryTest)


template<> struct TIsZeroConstructType< FEnvQueryItem >


Gather all required named params

void CollectQueryParams ( [UObject](API\Runtime\CoreUObject\UObject\UObject) & QueryOwner, [TArray](API\Runtime\Core\Containers\TArray)< [FAIDynamicParam](API\Runtime\AIModule\EnvironmentQuery\FAIDynamicParam) > & NamedValues ) const


const [TArray](API\Runtime\Core\Containers\TArray)< [UEnvQueryOption](API\Runtime\AIModule\EnvironmentQuery\UEnvQueryOption) * > & GetOptions() const


[TArray](API\Runtime\Core\Containers\TArray)< [TObjectPtr](API\Runtime\Core\Delegates\TObjectPtr)< [UEnvQueryOption](API\Runtime\AIModule\EnvironmentQuery\UEnvQueryOption) > > & GetOptionsMutable()


Called after duplication & serialization and before PostLoad. Used to e.g. make sureUStaticMesh'sUModelgets copied as well. Note: NOT called on components on actor duplication (alt-drag or copy-paste). Use PostEditImport as well to cover that case.

virtual void PostDuplicate ( bool bDuplicateForPIE )


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.


QueryName patching up


Called at the end ofRename(), but only if the rename was actually carried out

virtual void PostRename ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * OldOuter, const [FName](API\Runtime\Core\UObject\FName) OldName )


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


class UEnvQuery : public [UDataAsset](API\Runtime\Engine\Engine\UDataAsset)

EdGraph

Graph for query


virtual void ProvideContext ( [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) & QueryInstance, [FEnvQueryContextData](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryContextData) & ContextData ) const


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


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


static void BlobArrayToDebugData ( const [TArray](API\Runtime\Core\Containers\TArray)< uint8 > & BlobArray, [EQSDebug::FQueryData](API\Runtime\AIModule\EnvironmentQuery\FQueryData) & EQSLocalData, bool bUseCompression )


static void DebugDataToBlobArray ( [EQSDebug::FQueryData](API\Runtime\AIModule\EnvironmentQuery\FQueryData) & QueryData, [TArray](API\Runtime\Core\Containers\TArray)< uint8 > & BlobArray, bool bUseCompression )


static void LogQuery ( [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) & Query, const [FLogCategoryBase](API\Runtime\Core\Logging\FLogCategoryBase) & Category, [ELogVerbosity::Type](API\Runtime\Core\Logging\ELogVerbosity__Type) Verbosity )


static void LogQuery ( [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) & Query, const [FName](API\Runtime\Core\UObject\FName) & CategoryName, [ELogVerbosity::Type](API\Runtime\Core\Logging\ELogVerbosity__Type) Verbosity )


static void QueryToBlobArray ( [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) & Query, [TArray](API\Runtime\Core\Containers\TArray)< uint8 > & BlobArray, bool bUseCompression )


static void QueryToDebugData ( [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) & Query, [EQSDebug::FQueryData](API\Runtime\AIModule\EnvironmentQuery\FQueryData) & EQSLocalData, int32 MaxItemsToStore )


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


virtual void GenerateItems ( [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) & QueryInstance ) const


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


class UEnvQueryGenerator : public [UEnvQueryNode](API\Runtime\AIModule\EnvironmentQuery\UEnvQueryNode)

bAutoSortTests

If set, tests will be automatically sorted for best performance before running query

ItemType

Type of generated items


float GetItemScore ( int32 ItemIndex ) const


IEQSQueryResultSourceInterfacefunction. Returns the Query Instance.

virtual const [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) * GetQueryInstance() const


IEQSQueryResultSourceInterfacefunction. Returns the Query Result.

virtual const [FEnvQueryResult](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryResult) * GetQueryResult() const


Outputs an array filled with resulting actors. Note that it makes sense only if ItemType is a EnvQueryItemType_ActorBase-derived type. Returns false if there is no valid result.

bool GetQueryResultsAsActors ( [TArray](API\Runtime\Core\Containers\TArray)< [AActor](API\Runtime\Engine\GameFramework\AActor) * > & ResultActors ) const


Outputs an array of locations generated by the query. If the query generated Actors the the array is filled with their locations. Returns false if there is no valid result.

bool GetQueryResultsAsLocations ( [TArray](API\Runtime\Core\Containers\TArray)< FVector > & ResultLocations ) const


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


IsSupportedForNetworking means an object can be referenced over the network

virtual bool IsSupportedForNetworking() const


void SetInstigator ( const [UObject](API\Runtime\CoreUObject\UObject\UObject) * Object )


void RunQuery ( const [EEnvQueryRunMode::Type](API\Runtime\AIModule\EnvironmentQuery\EEnvQueryRunMode__Type) InRunMode, [FEnvQueryRequest](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryRequest) & QueryRequest )


void SetNamedParam ( [FName](API\Runtime\Core\UObject\FName) ParamName, float Value )


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


class UEnvQueryInstanceBlueprintWrapper : public [UObject](API\Runtime\CoreUObject\UObject\UObject), public [IEQSQueryResultSourceInterface](API\Runtime\AIModule\EnvironmentQuery\IEQSQueryResultSourceInterface)

DeprecationMessage

DEPRECATED! Use GetQueryResultsAsActors instead.

OptionIndex

Index of query option, that generated items


Aborts specific query


static bool bAllowEQSTimeSlicing = true;


Configure config variables during runtime

void Configure ( const [FEnvQueryManagerConfig](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryManagerConfig) & NewConfig )


Create new instance, using cached data is possible

[TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) > CreateQueryInstance ( const [UEnvQuery](API\Runtime\AIModule\EnvironmentQuery\UEnvQuery) * Template, [EEnvQueryRunMode::Type](API\Runtime\AIModule\EnvironmentQuery\EEnvQueryRunMode__Type) RunMode )


static [TMap](API\Runtime\Core\Containers\TMap)< [FName](API\Runtime\Core\UObject\FName), [FEQSDebugger::FStatsInfo](API\Runtime\AIModule\EnvironmentQuery\FEQSDebugger\FStatsInfo) > DebuggerStats;


Implementation of Exec that is only called in non-shipping targets

virtual bool Exec_Dev ( [UWorld](API\Runtime\Engine\Engine\UWorld) * InWorld, const TCHAR * Cmd, [FOutputDevice](API\Runtime\Core\Misc\FOutputDevice) & Ar )


Find value of named param stored with active query

float FindNamedParam ( int32 QueryId, [FName](API\Runtime\Core\UObject\FName) ParamName ) const


[TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) > FindQueryInstance ( const int32 QueryID )


FindsUEnvQuerymatching QueryName by first looking at instantiated queries (from InstanceCache) falling back to looking up allUEnvQueryand testing their name

[UEnvQuery](API\Runtime\AIModule\EnvironmentQuery\UEnvQuery) * FindQueryTemplate ( const [FString](API\Runtime\Core\Containers\FString) & QueryName ) const


Cleanup hooks for map loading


static [UEnvQueryManager](API\Runtime\AIModule\EnvironmentQuery\UEnvQueryManager) * GetCurrent ( [UWorld](API\Runtime\Engine\Engine\UWorld) * World )


static [UEnvQueryManager](API\Runtime\AIModule\EnvironmentQuery\UEnvQueryManager) * GetCurrent ( const [UObject](API\Runtime\CoreUObject\UObject\UObject) * WorldContextObject )


Return the stat id to use for this tickable

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


static void NotifyAssetUpdate ( [UEnvQuery](API\Runtime\AIModule\EnvironmentQuery\UEnvQuery) * Query )


Fail all running queries on cleaning the world


Used to determine whether the object should be ticked in the editor. Defaults to false since that is the previous behavior.
true if this tickable object can be ticked in the editor


Makes sure we don't have anyUEnvQueryManagerinstances serialized in. Any loaded instance will get marked as PendingKill


Creates a query instance configured for execution

[TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) > PrepareQueryInstance ( const [FEnvQueryRequest](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryRequest) & Request, [EEnvQueryRunMode::Type](API\Runtime\AIModule\EnvironmentQuery\EEnvQueryRunMode__Type) RunMode )


Creates local context object

[UEnvQueryContext](API\Runtime\AIModule\EnvironmentQuery\UEnvQueryContext) * PrepareLocalContext ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UEnvQueryContext](API\Runtime\AIModule\EnvironmentQuery\UEnvQueryContext) > ContextClass )


Outputs active queries to log


void RegisterActiveWrapper ( [UEnvQueryInstanceBlueprintWrapper](API\Runtime\AIModule\EnvironmentQuery\UEnvQueryInstanceBlueprintWrappe-) & Wrapper )


List of all known item types

static [TArray](API\Runtime\Core\Containers\TArray)< [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UEnvQueryItemType](API\Runtime\AIModule\EnvironmentQuery\Items\UEnvQueryItemType) > > RegisteredItemTypes;


Add information for data providers about query instance run independently

void RegisterExternalQuery ( const [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) > & QueryInstance )


void RemoveAllQueriesByQuerier ( const [UObject](API\Runtime\CoreUObject\UObject\UObject) & Querier, bool bExecuteFinishDelegate )


static [UEnvQueryInstanceBlueprintWrapper](API\Runtime\AIModule\EnvironmentQuery\UEnvQueryInstanceBlueprintWrappe-) * RunEQSQuery ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * WorldContextObject, [UEnvQuery](API\Runtime\AIModule\EnvironmentQuery\UEnvQuery) * QueryTemplate, [UObject](API\Runtime\CoreUObject\UObject\UObject) * Querier, [TEnumAsByte](API\Runtime\Core\Containers\TEnumAsByte)< [EEnvQueryRunMode::Type](API\Runtime\AIModule\EnvironmentQuery\EEnvQueryRunMode__Type) > RunMode, [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UEnvQueryInstanceBlueprintWrapper](API\Runtime\AIModule\EnvironmentQuery\UEnvQueryInstanceBlueprintWrappe-) > WrapperClass )


Alternative way to run queries. Do not use for anything other than testing or when you know exactly what you're doing! Bypasses all EQS perf controlling and time slicing mechanics.

void RunInstantQuery ( const [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) > & QueryInstance )


[TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FEnvQueryResult](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryResult) > RunInstantQuery ( const [FEnvQueryRequest](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryRequest) & Request, [EEnvQueryRunMode::Type](API\Runtime\AIModule\EnvironmentQuery\EEnvQueryRunMode__Type) RunMode )


Execute query

int32 RunQuery ( const [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) > & QueryInstance, FQueryFinishedSignature const & FinishDelegate )


Execute query

int32 RunQuery ( const [FEnvQueryRequest](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryRequest) & Request, [EEnvQueryRunMode::Type](API\Runtime\AIModule\EnvironmentQuery\EEnvQueryRunMode__Type) RunMode, FQueryFinishedSignature const & FinishDelegate )


static void SetAllowTimeSlicing ( bool bAllowTimeSlicing )


Removed all active queries asked by Querier. No "on finished" notifications are being sent, call this function when you no longer care about Querier's queries, like when it's "dead"

void SilentlyRemoveAllQueriesByQuerier ( const [UObject](API\Runtime\CoreUObject\UObject\UObject) & Querier )


FTickableGameObjectbegin.


void UnregisterActiveWrapper ( [UEnvQueryInstanceBlueprintWrapper](API\Runtime\AIModule\EnvironmentQuery\UEnvQueryInstanceBlueprintWrappe-) & Wrapper )


Clear information about query instance run independently

void UnregisterExternalQuery ( const [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) > & QueryInstance )


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


virtual [FText](API\Runtime\Core\Internationalization\FText) GetDescriptionDetails() const


class UEnvQueryManager : public [UAISubsystem](API\Runtime\AIModule\UAISubsystem), public [FSelfRegisteringExec](API\Runtime\Core\Misc\FSelfRegisteringExec)

bTestQueriesUsingBreadth

Whether we update EQS queries based on: running a test on one query and move to the next (breadth) - default behavior, or test an entire query before moving to the next one (depth).

ExecutionTimeWarningSeconds

Maximum EQS execution duration (in seconds) before a warning is reported.

ExternalQueries

Queries run independently from manager, mapped here for data providers

GenerationTimeWarningSeconds

Maximum EQS Generator duration (in seconds) before a warning is reported.

HandlingResultTimeWarningSeconds

Maximum EQS Query FinishDelegate duration (in seconds) before a warning is reported.

InstanceCache

Cache of instances

LocalContextMap

Local contexts mapped by class names

LocalContexts

Local cache of context objects for managing BP based objects

MaxAllowedTestingTime

How long are we allowed to test per update, in seconds.

NextQueryID

Next ID for running query

NumRunningQueriesAbortedSinceLastUpdate

Count of queries aborted since last update, to be removed.

QueryCountWarningInterval

How often (in seconds) we will warn about the number of queries (allows us to catch multiple occurrences in a session)

QueryCountWarningThreshold

If greater than zero, we will warn once when the number of queries is greater than or equal to this number, and log the queries out

RunningQueries

Currently running queries


virtual [FText](API\Runtime\Core\Internationalization\FText) GetDescriptionTitle() const


Called when a property on this object has been modified externally

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


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


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

VerNum

Versioning for updating deprecated properties


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


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


[FText](API\Runtime\Core\Internationalization\FText) DescribeBoolTestParams ( const [FString](API\Runtime\Core\Containers\FString) & ConditionDesc ) const


Helper: get actor from item

[AActor](API\Runtime\Engine\GameFramework\AActor) * GetItemActor ( [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) & QueryInstance, int32 ItemIndex ) const


Helper: get actor from item

[AActor](API\Runtime\Engine\GameFramework\AActor) * GetItemActor ( [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) & QueryInstance, const [FEnvQueryInstance::ItemIterator](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance\ItemIterator) & Iterator ) const


Helper: get location of item

FVector GetItemLocation ( [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) & QueryInstance, const [FEnvQueryInstance::ItemIterator](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance\ItemIterator) & Iterator ) const


Helper: get location of item

FRotator GetItemRotation ( [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) & QueryInstance, int32 ItemIndex ) const


Helper: get location of item

FVector GetItemLocation ( [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) & QueryInstance, int32 ItemIndex ) const


Helper: get location of item

FRotator GetItemRotation ( [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) & QueryInstance, const [FEnvQueryInstance::ItemIterator](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance\ItemIterator) & Iterator ) const


Check if context needs to be updated for every item

bool IsContextPerItem ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UEnvQueryContext](API\Runtime\AIModule\EnvironmentQuery\UEnvQueryContext) > CheckContext ) const


Check if test supports item type

bool IsSupportedItem ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UEnvQueryItemType](API\Runtime\AIModule\EnvironmentQuery\Items\UEnvQueryItemType) > ItemType ) const


Normalize scores in range

void NormalizeItemScores ( [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) & QueryInstance )


Do any object-specific cleanup required immediately after loading an object. This is not called for newly-created objects, and by default will always execute on the game thread.


Function that does the actual work

virtual void RunTest ( [FEnvQueryInstance](API\Runtime\AIModule\EnvironmentQuery\FEnvQueryInstance) & QueryInstance ) const


void SetWorkOnFloatValues ( bool bWorkOnFloats )


Update to latest version after spawning


Update preview list


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


class UEnvQueryTest : public [UEnvQueryNode](API\Runtime\AIModule\EnvironmentQuery\UEnvQueryNode)

bDefineReferenceValue

When set to true enables usage of ReferenceValue. It's false by default

BoolValue

Desired boolean value of the test for scoring to occur or filtering test to pass.

ClampMaxType

How should the upper bound for normalization of the raw test value before applying the scoring formula be determined? Should it use the highest value found (tested), the upper threshold for filtering, or a separate specified normalization maximum?

ClampMinType

How should the lower bound for normalization of the raw test value before applying the scoring formula be determined? Should it use the lowest value found (tested), the lower threshold for filtering, or a separate specified normalization minimum?

Cost

Cost of test

FilterType

Does this test filter out results that are below a lower limit, above an upper limit, or both? Or does it just look for a matching value?

FloatValueMax

Maximum limit (inclusive) of valid values for the raw test value.

FloatValueMin

Minimum limit (inclusive) of valid values for the raw test value.

MultipleContextFilterOp

Determines filtering operator when context returns multiple items

MultipleContextScoreOp

Determines scoring operator when context returns multiple items

NormalizationType

Specifies how to determine value span used to normalize scores

PreviewData

Samples of scoring function to show on graph in editor

ReferenceValue

When specified gets used to normalize test's results in such a way that the closer a value is to ReferenceValue the higher normalized result it will produce.

ScoreClampMax

Maximum value to use to normalize the raw test value before applying scoring formula.

ScoreClampMin

Minimum value to use to normalize the raw test value before applying scoring formula.

ScoringEquation

The shape of the curve equation to apply to the normalized score before multiplying by factor.

ScoringFactor

The weight (factor) by which to multiply the normalized score after the scoring equation is applied.

TestComment

Optional comment or explanation about what this test is for.

TestOrder

Number of test as defined in data asset

TestPurpose

The purpose of this test. Should it be used for filtering possible results, scoring them, or both?

ValidItemType

Validation: item type that can be used with this test


static [FText](API\Runtime\Core\Internationalization\FText) DescribeContext ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UEnvQueryContext](API\Runtime\AIModule\EnvironmentQuery\UEnvQueryContext) > ContextClass )


static [FText](API\Runtime\Core\Internationalization\FText) GetShortTypeName ( const [UObject](API\Runtime\CoreUObject\UObject\UObject) * Ob )


Special test value assigned to items skipped by condition check

static const float SkippedItemValue = - (3.402823466e+38F);


Special value used for executing query steps to prevent them from being time sliced


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


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


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


Calculate the bounds of the component. Default behavior is a bounding box/sphere of zero size.

virtual FBoxSphereBounds CalcBounds ( const FTransform & LocalToWorld ) const


Method that derived class should override to create the scene proxy and customize a custom delegate helper (if any)

virtual [FDebugRenderSceneProxy](API\Runtime\Engine\FDebugRenderSceneProxy) * CreateDebugSceneProxy()


Method that should be overriden when subclass uses a custom delegate helper.

virtual [FDebugDrawDelegateHelper](API\Runtime\Engine\FDebugDrawDelegateHelper) & GetDebugDrawDelegateHelper()


void StoreDebugData ( const [EQSDebug::FQueryData](API\Runtime\AIModule\EnvironmentQuery\FQueryData) & DebugData )


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


class UEQSRenderingComponent : public [UDebugDrawComponent](API\Runtime\Engine\Debug\UDebugDrawComponent)

DebugDataSolidSpheres

EQSDebug::FQueryDataDebugData;.


namespace EPawnActionAbortState { enum Type { NeverStarted, NotBeingAborted, MarkPendingAbort, LatentAbortInProgress, AbortDone, MAX, } }


namespace EPawnActionResult { enum Type { NotStarted, InProgress, Success, Failed, Aborted, } }


namespace EPawnActionEventType { enum Type { Invalid, FailedToStart, InstantAbort, FinishedAborting, FinishedExecution, Push, } }


namespace ETeamAttitude { enum Type { Friendly, Neutral, Hostile, } }


void OnIndexForced ( [Type](API\Runtime\AIModule\FAIBasicCounter\Type) ForcedIndex )


template<typename TCounterType> struct FAIBasicCounter


static [FAIGenericID](API\Runtime\AIModule\FAIGenericID)< TCounter > InvalidID()


namespace operator typename TCounter { operator typename TCounter::Type() const }


[FAIGenericID](API\Runtime\AIModule\FAIGenericID) & operator= ( const [FAIGenericID](API\Runtime\AIModule\FAIGenericID) & Other )


FAIGenericID ( typename [TCounter::Type](API\Plugins\StateTreeModule\Type) InIndex )


FAIGenericID ( const [FAIGenericID](API\Runtime\AIModule\FAIGenericID) & Other )


template<typename TCounter> struct FAIGenericID


static void Broadcast ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * WorldContextObject, const [FAIMessage](API\Runtime\AIModule\FAIMessage) & Message )


static void Send ( [APawn](API\Runtime\Engine\GameFramework\APawn) * Pawn, const [FAIMessage](API\Runtime\AIModule\FAIMessage) & Message )


static void Send ( [AController](API\Runtime\Engine\GameFramework\AController) * Controller, const [FAIMessage](API\Runtime\AIModule\FAIMessage) & Message )


static void Send ( [UBrainComponent](API\Runtime\AIModule\UBrainComponent) * BrainComp, const [FAIMessage](API\Runtime\AIModule\FAIMessage) & Message )


FAIMessage ( [FName](API\Runtime\Core\UObject\FName) InMessage, [UObject](API\Runtime\CoreUObject\UObject\UObject) * InSender )


FAIMessage ( [FName](API\Runtime\Core\UObject\FName) InMessage, [UObject](API\Runtime\CoreUObject\UObject\UObject) * InSender, [EStatus](API\Runtime\AIModule\FAIMessage\EStatus) InStatus )


FAIMessage ( [FName](API\Runtime\Core\UObject\FName) InMessage, [UObject](API\Runtime\CoreUObject\UObject\UObject) * InSender, [FAIRequestID](API\Runtime\AIModule\FAIRequestID) InID, [EStatus](API\Runtime\AIModule\FAIMessage\EStatus) InStatus )


FAIMessage ( [FName](API\Runtime\Core\UObject\FName) InMessage, [UObject](API\Runtime\CoreUObject\UObject\UObject) * InSender, bool bSuccess )


FAIMessage ( [FName](API\Runtime\Core\UObject\FName) InMessage, [UObject](API\Runtime\CoreUObject\UObject\UObject) * InSender, [FAIRequestID](API\Runtime\AIModule\FAIRequestID) InID, bool bSuccess )


MessageFlags

Message param: custom flags

MessageName

Type of message

RequestID

Message param: ID

Sender

Message source

Status

Message param: status


static FAIMessageObserverHandle Create ( [AController](API\Runtime\Engine\GameFramework\AController) * Controller, [FName](API\Runtime\Core\UObject\FName) MessageType, FOnAIMessage const & Delegate )


static FAIMessageObserverHandle Create ( [APawn](API\Runtime\Engine\GameFramework\APawn) * Pawn, [FName](API\Runtime\Core\UObject\FName) MessageType, FOnAIMessage const & Delegate )


static FAIMessageObserverHandle Create ( [UBrainComponent](API\Runtime\AIModule\UBrainComponent) * BrainComp, [FName](API\Runtime\Core\UObject\FName) MessageType, FOnAIMessage const & Delegate )


static FAIMessageObserverHandle Create ( [AController](API\Runtime\Engine\GameFramework\AController) * Controller, [FName](API\Runtime\Core\UObject\FName) MessageType, [FAIRequestID](API\Runtime\AIModule\FAIRequestID) MessageID, FOnAIMessage const & Delegate )


static FAIMessageObserverHandle Create ( [APawn](API\Runtime\Engine\GameFramework\APawn) * Pawn, [FName](API\Runtime\Core\UObject\FName) MessageType, [FAIRequestID](API\Runtime\AIModule\FAIRequestID) MessageID, FOnAIMessage const & Delegate )


static FAIMessageObserverHandle Create ( [UBrainComponent](API\Runtime\AIModule\UBrainComponent) * BrainComp, [FName](API\Runtime\Core\UObject\FName) MessageType, [FAIRequestID](API\Runtime\AIModule\FAIRequestID) MessageID, FOnAIMessage const & Delegate )


void OnMessage ( const [FAIMessage](API\Runtime\AIModule\FAIMessage) & Message )


Non-copyable.

FAIMessageObserver &40; const FAIMessageObserver & &41;


struct FAIMessageObserver : public [TSharedFromThis< FAIMessageObserver >](API\Runtime\Core\Templates\TSharedFromThis)


namespace FAIMoveFlag { static const bool FAIMoveFlag::IgnorePathfinding = false; }


namespace FAIMoveFlag { static const bool FAIMoveFlag::StopOnOverlap = true; }


namespace FAIMoveFlag { static const bool FAIMoveFlag::UsePathfinding = true; }


Retrieves request's requested destination location, GoalActor's location or GoalLocation, depending on the request itself


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


const FCustomMoveSharedPtr & GetUserData() const


The request should be either set up to move to a location, of go to a valid actor


[FAIMoveRequest](API\Runtime\AIModule\FAIMoveRequest) & SetAcceptanceRadius ( float Radius )


[FAIMoveRequest](API\Runtime\AIModule\FAIMoveRequest) & SetAllowPartialPath ( bool bAllowPartial )


Defines if the underlying pathfind query should limit its exploration based on the navigation cost

[FAIMoveRequest](API\Runtime\AIModule\FAIMoveRequest) & SetApplyCostLimitFromHeuristic ( bool bApply, float InCostLimitFactor, float InMinimumCostLimit )


[FAIMoveRequest](API\Runtime\AIModule\FAIMoveRequest) & SetCanStrafe ( bool bStrafe )


void SetGoalActor ( const [AActor](API\Runtime\Engine\GameFramework\AActor) * InGoalActor )


void SetGoalLocation ( const FVector & InGoalLocation )


[FAIMoveRequest](API\Runtime\AIModule\FAIMoveRequest) & SetNavigationFilter ( [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UNavigationQueryFilter](API\Runtime\NavigationSystem\NavFilters\UNavigationQueryFilter) > Filter )


[FAIMoveRequest](API\Runtime\AIModule\FAIMoveRequest) & SetProjectGoalLocation ( bool bProject )


[FAIMoveRequest](API\Runtime\AIModule\FAIMoveRequest) & SetReachTestIncludesAgentRadius ( bool bIncludeRadius )


[FAIMoveRequest](API\Runtime\AIModule\FAIMoveRequest) & SetReachTestIncludesGoalRadius ( bool bIncludeRadius )


[FAIMoveRequest](API\Runtime\AIModule\FAIMoveRequest) & SetRequireNavigableEndLocation ( bool bRequire )


[FAIMoveRequest](API\Runtime\AIModule\FAIMoveRequest) & SetUsePathfinding ( bool bPathfinding )


[FAIMoveRequest](API\Runtime\AIModule\FAIMoveRequest) & SetUserData ( const FCustomMoveSharedPtr & InUserData )


[FAIMoveRequest](API\Runtime\AIModule\FAIMoveRequest) & SetUserFlags ( int32 InUserFlags )


bool UpdateGoalLocation ( const FVector & NewLocation ) const


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


FAIMoveRequest ( const FVector & InGoalLocation )


AcceptanceRadius

Pathfollowing: required distance to goal to complete move

bAllowPartialPath

Pathfinding: allow using incomplete path going toward goal but not reaching it

bApplyCostLimitFromHeuristic

Pathfinding: if set - the pathfind query cost will be limited based on the heuristic between the start and end location (c.f. CostLimitFactor and MinimumCostLimit).

bCanStrafe

Pathfollowing: keep focal point at move goal

bInitialized

Move goal is an actor

bMoveToActor

Move goal is an actor

bProjectGoalOnNavigation

Pathfinding: goal location will be projected on navigation data before use

bReachTestIncludesAgentRadius

Pathfollowing: acceptance radius needs to be increased by agent radius (stop on overlap vs exact point)

bReachTestIncludesGoalRadius

Pathfollowing: acceptance radius needs to be increased by goal actor radius

bRequireNavigableEndLocation

Pathfinding: if set - require the end location to be linked to the navigation data

bUsePathfinding

Pathfinding: if set - regular pathfinding will be used, if not - direct path between two points

CostLimitFactor

Pathfinding: this multiplier is used to compute a max node cost allowed to the open list (cost limit = CostLimitFactor*InitialHeuristicEstimate)

FilterClass

Pathfinding: navigation filter to use

GoalActor

Move goal: actor

GoalLocation

Move goal: location

MinimumCostLimit

Pathfinding: minimum cost limit clamping value (in cost units) used to allow large deviation in short paths

UserData

Custom user data: structure

UserFlags

Custom user data: flags


static const [FAIRequestID](API\Runtime\AIModule\FAIRequestID) AnyRequest;


static const [FAIRequestID](API\Runtime\AIModule\FAIRequestID) CurrentRequest;


static const [FAIRequestID](API\Runtime\AIModule\FAIRequestID) InvalidRequest;


static const uint32 InvalidRequestID = uint32(-1);


Returns true if given ID is identical to stored ID or any of considered IDs is FAIRequestID::AnyRequest

bool IsEquivalent ( uint32 OtherID ) const


bool IsEquivalent ( [FAIRequestID](API\Runtime\AIModule\FAIRequestID) Other ) const


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


void ClearLock ( [EAIRequestPriority::Type](API\Runtime\AIModule\EAIRequestPriority__Type) LockPriority )


Feel free to change the type if you need to support more then 16 lock sources


Force-clears all locks


Answers the question if given priority is allowed to use this resource.  that if resource is locked with priority LockPriority this function will return false as well

bool IsAvailableFor ( [EAIRequestPriority::Type](API\Runtime\AIModule\EAIRequestPriority__Type) LockPriority ) const


bool IsLockedBy ( [EAIRequestPriority::Type](API\Runtime\AIModule\EAIRequestPriority__Type) LockPriority ) const


void operator+= ( const [FAIResourceLock](API\Runtime\AIModule\FAIResourceLock) & Other )


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


void SetLock ( [EAIRequestPriority::Type](API\Runtime\AIModule\EAIRequestPriority__Type) LockPriority )


Set whether we should use resource lock count. clears all existing locks.

void SetUseResourceLockCount ( bool inUseResourceLockCount )


Structure used to define which subsystem requested locking of a specific AI resource (like movement, logic, etc.)


[FAIResourcesSet](API\Runtime\AIModule\FAIResourcesSet) & AddResource ( const FAIResourceID & Resource )


[FAIResourcesSet](API\Runtime\AIModule\FAIResourcesSet) & AddResourceIndex ( uint8 ResourceIndex )


static const uint32 AllResources = uint32(-1);


bool ContainsResource ( const FAIResourceID & Resource ) const


[FAIResourcesSet](API\Runtime\AIModule\FAIResourcesSet) & RemoveResource ( const FAIResourceID & Resource )


[FAIResourcesSet](API\Runtime\AIModule\FAIResourcesSet) & RemoveResourceIndex ( uint8 ResourceIndex )


FAIResourcesSet ( uint32 ResourceSetDescription )


FAIResourcesSet ( const FAIResourceID & Resource )


bool ContainsResourceIndex ( uint8 ResourceID ) const


namespace FAIResources { const FAIResourceID & FAIResources::GetResource ( int32 ResourceIndex ) }


namespace FAIResources { int32 FAIResources::GetResourcesCount() }


namespace FAIResources { [FString](API\Runtime\Core\Containers\FString) FAIResources::GetSetDescription ( [FAIResourcesSet](API\Runtime\AIModule\FAIResourcesSet) ResourceSet ) }


namespace FAIResources { void FAIResources::RegisterResource ( const FAIResourceID & Resource ) }


namespace FAISystem { [EAIOptionFlag::Type](API\Runtime\AIModule\EAIOptionFlag__Type) FAISystem::BoolToAIOption ( bool Value ) }


namespace FAISystem { static const float FAISystem::InfiniteInterval = -FLT_MAX; }


namespace FAISystem { static const FVector FAISystem::InvalidDirection = FVector::ZeroVector; }


namespace FAISystem { static const FVector FAISystem::InvalidLocation = FVector(FLT_MAX); }


namespace FAISystem { static const FQuat FAISystem::InvalidOrientation = FQuat(FLT_MAX, FLT_MAX, FLT_MAX, FLT_MAX); }


namespace FAISystem { static const float FAISystem::InvalidRange = -1.f; }


namespace FAISystem { static const FRotator FAISystem::InvalidRotation = FRotator(FLT_MAX); }


namespace FAISystem { static const uint32 FAISystem::InvalidUnsignedID = uint32(INDEX_NONE); }


namespace FAISystem { bool FAISystem::IsValidControllerAndHasValidPawn ( const [AController](API\Runtime\Engine\GameFramework\AController) * Controller ) }


namespace FAISystem { bool FAISystem::IsValidDirection ( const FVector & TestVector ) }


namespace FAISystem { bool FAISystem::IsValidLocation ( const FVector & TestLocation ) }


namespace FAISystem { bool FAISystem::IsValidOrientation ( const FQuat & TestOrientation ) }


namespace FAISystem { bool FAISystem::IsValidRotation ( const FRotator & TestRotation ) }


namespace FAISystem { bool FAISystem::PickAIOption ( [EAIOptionFlag::Type](API\Runtime\AIModule\EAIOptionFlag__Type) Option, bool DefaultOption ) }


Delegate type for locking AI debugging tool on pawn

typedef TMulticastDelegate_OneParam< void, const [APawn](API\Runtime\Engine\GameFramework\APawn) * > FOnTreeDebugTool


Delegate type for tree execution events (Params: const UBehaviorTreeComponent* OwnerComp, const UBehaviorTree* TreeAsset)

typedef TMulticastDelegate_TwoParams< void, const [UBehaviorTreeComponent](API\Runtime\AIModule\BehaviorTree\UBehaviorTreeComponent) &, const [UBehaviorTree](API\Runtime\AIModule\BehaviorTree\UBehaviorTree) & > FOnTreeStarted


Called when the AI debug tool locks on pawn.


Called when the behavior tree starts execution.


Called when the AI debug tool highlights a pawn.


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


FBehaviorTreeNodeInitializationData ( [UBTNode](API\Runtime\AIModule\BehaviorTree\UBTNode) * InNode, [UBTCompositeNode](API\Runtime\AIModule\BehaviorTree\UBTCompositeNode) * InParentNode, uint16 InExecutionIndex, uint8 InTreeDepth, uint16 NodeMemory, uint16 SpecialNodeMemory )


INDEX_NONE if invalid or >=0 for a potentially valid handle


Makes the handle Invalid


IsValid


true if this handle is valid, this doesn't check that it's in the correct range for the underlying resource it's providing a handle for


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


bool operator!= ( const [FCompactIndexedHandleBase](API\Runtime\AIModule\FCompactIndexedHandleBase) & Other ) const


void SetSerialNumber ( int16 InSerialNumber )


Passing INDEX_NONE as index will make this handle Invalid

FCompactIndexedHandleBase ( const int32 InIndex, const uint32 InSerialNumber )


template<typename TIndexedHandle, bool bOptimizeHandleReuse> struct FCompactIndexedHandleManager : public [FIndexedHandleManagerBase< TIndexedHandle, int16, uint16, bOptimizeHandleReuse >](API\Runtime\AIModule\FIndexedHandleManagerBase)


CompactIndexbased handle that has a serial number to verify stale handles. For fast safe access in to index based data structures.


that for consistencyIGenericTeamAgentInterfaceshould be using the same function (by default it does)

static [FAttitudeSolverFunction](API\Runtime\AIModule\FGenericTeamId\FAttitudeSolverFunction) AttitudeSolverImpl = &DefaultTeamAttitudeSolver;


static [ETeamAttitude::Type](API\Runtime\AIModule\ETeamAttitude__Type) GetAttitude ( const [AActor](API\Runtime\Engine\GameFramework\AActor) * A, const [AActor](API\Runtime\Engine\GameFramework\AActor) * B )


static [ETeamAttitude::Type](API\Runtime\AIModule\ETeamAttitude__Type) GetAttitude ( [FGenericTeamId](API\Runtime\AIModule\FGenericTeamId) TeamA, [FGenericTeamId](API\Runtime\AIModule\FGenericTeamId) TeamB )


static [FGenericTeamId](API\Runtime\AIModule\FGenericTeamId) GetTeamIdentifier ( const [AActor](API\Runtime\Engine\GameFramework\AActor) * TeamMember )


static const [FGenericTeamId](API\Runtime\AIModule\FGenericTeamId) NoTeam;


static void SetAttitudeSolver ( const [FAttitudeSolverFunction](API\Runtime\AIModule\FGenericTeamId\FAttitudeSolverFunction) & Solver )


template<typename TemplateClass> auto Requires &40; const TemplateClass & Obj &41;


template<typename TemplateClass> auto Requires &40; const TemplateClass & Obj, const FSearchNode & Param1, const FSearchNode & Param2 &41;


template<typename TemplateClass> auto Requires &40; const TemplateClass & Obj, const FSearchNode & Param1, const int32 Param2 &41;


template<typename TemplateClass> auto Requires &40; const TemplateClass & Obj, const FGraphNodeRef Param1 &41;


TGraph optionally implemented wrapper methods.


template<typename TemplateClass> auto Requires &40; const TemplateClass & Obj, const FSearchNode & Param1 &41;


TQueryFilter optionally implemented wrapper methods.


Custom methods implemented over TQueryFilter optionally implemented methods.


template<typename TemplateClass> auto Requires &40; TemplateClass & Obj, const int32 Param1, const FSearchNode & Param2 &41;


TResultPathInfo optionally implemented wrapper methods.


typedef [TArray](API\Runtime\Core\Containers\TArray)< int32, [FRangeChecklessAllocator](API\Runtime\AIModule\FRangeChecklessAllocator)< DoRangeCheck >> FIndexArray


Performs the actual search.

template<typename TQueryFilter, typename TResultPathInfo> EGraphAStarResult FindPath ( const [FSearchNode](API\Runtime\AIModule\FGraphAStar\FSearchNode) & StartNode, const [FSearchNode](API\Runtime\AIModule\FGraphAStar\FSearchNode) & EndNode, const TQueryFilter & Filter, TResultPathInfo & OutPath )


Floods node pool until running out of either free nodes or open set

template<typename TQueryFilter> EGraphAStarResult FloodFrom ( const [FSearchNode](API\Runtime\AIModule\FGraphAStar\FSearchNode) & StartNode, const TQueryFilter & Filter )


typedef [TArray](API\Runtime\Core\Containers\TArray)< [FSearchNode](API\Runtime\AIModule\FGraphAStar\FSearchNode), [FRangeChecklessAllocator](API\Runtime\AIModule\FRangeChecklessAllocator)< DoRangeCheck >> FNodeArray


typedef [TMap](API\Runtime\Core\Containers\TMap)< [FGraphNodeRef](API\Runtime\AIModule\FGraphAStar\FGraphNodeRef), int32, [FRangeChecklessSetAllocator](API\Runtime\AIModule\FGraphAStar\FRangeChecklessSetAllocator) > FNodeMap


FSearchNode & Add &40; const FSearchNode & SearchNode &41;


FSearchNode &42; Find &40; const FGraphNodeRef NodeRef &41;


FSearchNode & FindOrAdd &40; const FGraphNodeRef NodeRef &41;


struct FNodePool : public [TArray< FSearchNode, FRangeChecklessAllocator< DoRangeCheck >>](API\Runtime\Core\Containers\TArray)


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


FNodeSorter &40; const FNodeArray & InNodePool &41;


void Modify &40; FSearchNode & SearchNode &41;


int32 PopIndex &40; bool bAllowShrinking &41;


void Push &40; FSearchNode & SearchNode &41;


FOpenList &40; FNodeArray & InNodePool, const FNodeSorter & InNodeSorter &41;


struct FOpenList : public [TArray< int32, FRangeChecklessAllocator< DoRangeCheck >>](API\Runtime\Core\Containers\TArray)


typedef [TSetAllocator](API\Runtime\Core\Containers\TSetAllocator)< [TSparseArrayAllocator](API\Runtime\Core\Containers\TSparseArrayAllocator)< [FRangeChecklessAllocator](API\Runtime\AIModule\FRangeChecklessAllocator)< DoRangeCheck >, TInlineAllocator< 4, [FRangeChecklessAllocator](API\Runtime\AIModule\FRangeChecklessAllocator)< DoRangeCheck >>>, TInlineAllocator< 1, [FRangeChecklessAllocator](API\Runtime\AIModule\FRangeChecklessAllocator)< DoRangeCheck >>> FRangeChecklessSetAllocator


template<typename TemplateClass> static decltype(auto) GetCostLimit ( const TemplateClass & Obj )


template<typename TemplateClass> static decltype(auto) GetHeuristicCost ( const TemplateClass & Obj, const [FSearchNode](API\Runtime\AIModule\FGraphAStar\FSearchNode) & Param1, const [FSearchNode](API\Runtime\AIModule\FGraphAStar\FSearchNode) & Param2 )


template<typename TemplateClass> static decltype(auto) GetNeighbour ( const TemplateClass & Obj, const [FSearchNode](API\Runtime\AIModule\FGraphAStar\FSearchNode) & Param1, const int32 Param2 )


template<typename TemplateClass> static decltype(auto) GetNeighbourCount ( const TemplateClass & Obj, const [FGraphNodeRef](API\Runtime\AIModule\FGraphAStar\FGraphNodeRef) Param1 )


template<typename TemplateClass> static decltype(auto) GetNeighbourCountV2 ( const TemplateClass & Obj, const [FSearchNode](API\Runtime\AIModule\FGraphAStar\FSearchNode) & Param1 )


template<typename TemplateClass> static decltype(auto) GetTraversalCost ( const TemplateClass & Obj, const [FSearchNode](API\Runtime\AIModule\FGraphAStar\FSearchNode) & Param1, const [FSearchNode](API\Runtime\AIModule\FGraphAStar\FSearchNode) & Param2 )


template<typename TemplateClass> static bool HasExceededCostLimit ( const TemplateClass & Obj, [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) Cost )


template<typename TQueryFilter> bool HasReachMaxSearchNodes ( const TQueryFilter & Filter ) const


template<typename TemplateClass> static bool HasReachMaxSearchNodes ( const TemplateClass & Obj, uint32 NodeCount )


Single run of A* loop: get node from open set and process neighbors returns true if loop should be continued

template<typename TQueryFilter> bool ProcessSingleNode ( const [FSearchNode](API\Runtime\AIModule\FGraphAStar\FSearchNode) & EndNode, const bool bIsBound, const TQueryFilter & Filter, int32 & OutBestNodeIndex, float & OutBestNodeCost )


template<typename TQueryFilter> bool ProcessSingleNode ( const [FSearchNode](API\Runtime\AIModule\FGraphAStar\FSearchNode) & EndNode, const bool bIsBound, const TQueryFilter & Filter, int32 & OutBestNodeIndex, [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) & OutBestNodeCost )


template<typename TemplateClass> static decltype(auto) SetPathInfo ( TemplateClass & Obj, const int32 Param1, const [FSearchNode](API\Runtime\AIModule\FGraphAStar\FSearchNode) & Param2 )


template<typename TemplateClass> static decltype(auto) ShouldIgnoreClosedNodes ( const TemplateClass & Obj )


template<typename TemplateClass> static decltype(auto) ShouldIncludeStartNodeInPath ( const TemplateClass & Obj )


// Optionally implemented methods to parameterize the search int32 GetNeighbourCount(FNodeRef NodeRef) const; - returns number of neighbours that the graph node identified with NodeRef has, it is ok if not implemented, the logic will stop calling GetNeighbour once it received an invalid noderef bool ShouldIgnoreClosedNodes() const; - whether to revisit closed node or not bool ShouldIncludeStartNodeInPath() const; - whether to put the start node in the resulting path int32 GetMaxSearchNodes() const; - whether to limit the number of search nodes to a maximumFVector::FRealGetCostLimit() const  - whether to limit the search to a maximum cost

template<typename TGraph, typename Policy, typename TSearchNode, bool DoRangeCheck> struct FGraphAStar


FGraphAStarDefaultNode ( const [FGraphNodeRef](API\Runtime\AIModule\FGraphAStarDefaultNode\FGraphNodeRef) & InNodeRef )


static const bool bReuseNodePoolInSubsequentSearches = false;


Default A* node class. Extend this class and pass as a parameter toFGraphAStarfor additional functionality

template<typename TGraph> struct FGraphAStarDefaultNode


static const int32 FatalPathLength = 10000;


FGridSize2D ( uint32 InWidth, uint32 InHeight )


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


bool operator!= ( const [FIndexedHandleBase](API\Runtime\AIModule\FIndexedHandleBase) & Other ) const


void SetSerialNumber ( uint32 InSerialNumber )


FIndexedHandleBase ( int32 InIndex, uint32 InSerialNumber )


Indexbased handle that has a serial number to verify stale handles. For fast safe access in to index based data structures

struct FIndexedHandleBase : public [FSimpleIndexedHandleBase](API\Runtime\AIModule\FSimpleIndexedHandleBase)


Returns the number of used handles, will be greater than or equal to zero


template<typename TIndexedHandle, bool bOptimizeHandleReuse> struct FIndexedHandleManager : public [FIndexedHandleManagerBase< TIndexedHandle, int32, uint32, bOptimizeHandleReuse >](API\Runtime\AIModule\FIndexedHandleManagerBase)


typedef [TArray](API\Runtime\Core\Containers\TArray)< TIndexedHandle > FHandleArray


const [TArray](API\Runtime\Core\Containers\TArray)< TIndexedHandle > & GetHandles() const


bool IsValidHandle ( TIndexedHandle IndexedHandle ) const


ID used in non shipping / test builds to ensure the same manager that is used to create handles is also used to remove them

static std::atomic< uint32 > ManagerIDCounter = { 0 };


[FIndexedHandleManagerBase](API\Runtime\AIModule\FIndexedHandleManagerBase) & operator= ( const [FIndexedHandleManagerBase](API\Runtime\AIModule\FIndexedHandleManagerBase) & Other )


bool RemoveHandle ( TIndexedHandle IndexedHandle )


static std::atomic< TSerialType > SerialNumberCounter = { 0 };


Attempts to shrink the Handles array if there are contiguous free slots at the end of the Array
the new Num items in the handles array


Defaulted copy constructor, but it acts differently from the copy assignment operator - notably, doesn't allocate a new ManagerID.

FIndexedHandleManagerBase ( const [FIndexedHandleManagerBase](API\Runtime\AIModule\FIndexedHandleManagerBase) & Other )


Handle Manager meant forFIndexedHandleBaseandFCompactIndexedHandleBasederived classes, handles are given out from a freelist and are zero based and consecutive in nature, so ideal for being used as indices in to arrays. Using bOptimizeHandleReuse performance impact on releasing a handle. Because new handles will always use the smallest index, this will help greatly the compaction code(ShrinkHandles) and reduce the total number of handles. This is very useful when you need to iterate through every valid handles often.

template<typename TIndexedHandle, typename TIndexType, typename TSerialType, bool bOptimizeHandleReuse> struct FIndexedHandleManagerBase

Handles

Handles stored as a free list sparse array, Handle entries that are free will have a GetIndex() == INDEX_NONE


float GetElapsedTimeWithFallback ( const float FallbackValue ) const


FIntervalCountdown ( const float InInterval )


Resets the countdown back to Interval


True if time's up


Set to false if you don't want to lose performance on range checks in performance-critical pathfinding code.

enum { RequireRangeCheck = DoRangeCheck }


template<bool DoRangeCheck> class FRangeChecklessAllocator : public [TSizedDefaultAllocator< 32 >](API\Runtime\Core\Containers\TSizedDefaultAllocator)


bool operator!= ( const [FSequentialIDBase](API\Runtime\AIModule\FSequentialIDBase) & Other ) const


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


INDEX_NONE if invalid or >=0 for a potentially valid handle


Makes the handle Invalid


true if this handle is valid, this doesn't check that it's in the correct range for the underlying resource it's providing a handle for


IsValid


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


bool operator!= ( const [FSimpleIndexedHandleBase](API\Runtime\AIModule\FSimpleIndexedHandleBase) & Other ) const


virtual void DrawData ( [IVisualLoggerEditorInterface](API\Runtime\Engine\VisualLogger\IVisualLoggerEditorInterface) * EdInterface, [UCanvas](API\Runtime\Engine\Engine\UCanvas) * Canvas )


Indexbased handle that doesn't use a serial number. For fast access in to index based data structures when we don't expect handles to be able to be stale


void DrawData &40; UWorld &42; InWorld, class UEQSRenderingComponent &42; EQSRenderingComponent, UCanvas &42; Canvas, AActor &42; HelperActor, const FName & TagName, const FVisualLogDataBlock & DataBlock, double Timestamp &41;


virtual void OnItemsSelectionChanged ( [IVisualLoggerEditorInterface](API\Runtime\Engine\VisualLogger\IVisualLoggerEditorInterface) * EdInterface )


virtual void OnLogLineSelectionChanged ( [IVisualLoggerEditorInterface](API\Runtime\Engine\VisualLogger\IVisualLoggerEditorInterface) * EdInterface, [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< struct FLogEntryItem > SelectedItem, int64 UserData )


FSimpleIndexedHandleBase ( int32 InIndex )


virtual void ResetData ( [IVisualLoggerEditorInterface](API\Runtime\Engine\VisualLogger\IVisualLoggerEditorInterface) * EdInterface )


class FVisualLoggerExtension : public [FVisualLogExtensionInterface](API\Runtime\Engine\VisualLogger\FVisualLogExtensionInterface)


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


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


Singleton-like access to this module's interface. This is just for convenience! Beware of calling this during the shutdown phase, though. Your module might have been unloaded already.
Returns singleton instance, loading the module on demand if needed

static [IAIModule](API\Runtime\AIModule\IAIModule) & Get()


Deprecated* Should use aUAssetDefinitionDefaultand return EAssetCategoryPaths::AI instead.


Checks to see if this module is loaded and ready. It is only valid to callGet()ifIsAvailable()returns true.
True if the module is loaded and ready to use


The public interface to this module

class IAIModule : public [IAISystemModule](API\Runtime\Engine\AI\IAISystemModule)


Clear resource lock of the given origin

virtual void ClearResourceLock &40; EAIRequestPriority::Type LockSource &41;


Force-clears all locks on resource


If resource is lockable lock it with indicated priority

virtual void LockResource &40; EAIRequestPriority::Type LockSource &41;


Check whether resource is currently locked

virtual bool IsResourceLocked&40;&41; const


Retrieve team identifier in form ofFGenericTeamId

virtual FGenericTeamId GetGenericTeamId&40;&41; const


Assigns Team Agent to given TeamID

virtual void SetGenericTeamId &40; const FGenericTeamId & TeamID &41;


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.


Overridable native event for when play begins for this actor.


Copies navlink end points from the first entry in PointLinks array. This function is a helper function making up for smart links not drawing the FVector widgets in the editor.


Returns the world space bounding box of all components in this Actor.

virtual FBox GetComponentsBoundingBox ( bool bNonColliding, bool bIncludeFromChildActors ) const


Returns EdRenderComp subobject

[UNavLinkRenderingComponent](API\Runtime\NavigationSystem\UNavLinkRenderingComponent) * GetEdRenderComp() const


Get bounds for navigation octree

virtual FBox GetNavigationBounds() const


Prepare navigation modifiers

virtual void GetNavigationData ( [FNavigationRelevantData](API\Runtime\Engine\AI\Navigation\FNavigationRelevantData) & Data ) const


Optionalway of retrieving navigation link data - ifINavLinkHostInterfaceimplementer defines custom navigation links then it can just retrieve a list of links

virtual bool GetNavigationLinksArray ( [TArray](API\Runtime\Core\Containers\TArray)< [FNavigationLink](API\Runtime\Engine\AI\Navigation\FNavigationLink) > & OutLink, [TArray](API\Runtime\Core\Containers\TArray)< [FNavigationSegmentLink](API\Runtime\Engine\AI\Navigation\FNavigationSegmentLink) > & OutSegments ) const


RetrievesUNavLinkDefinitionderived UClasses hosted by this interface implementer

virtual bool GetNavigationLinksClasses ( [TArray](API\Runtime\Core\Containers\TArray)< [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UNavLinkDefinition](API\Runtime\Engine\AI\Navigation\UNavLinkDefinition) > > & OutClasses ) const


Returns SmartLinkComp subobject

[UNavLinkCustomComponent](API\Runtime\NavigationSystem\UNavLinkCustomComponent) * GetSmartLinkComp() const


Returns SpriteComponent subobject

[UBillboardComponent](API\Runtime\Engine\Components\UBillboardComponent) * GetSpriteComponent() const


Check if any agent is moving through smart link right now


Are modifiers active?

virtual bool IsNavigationRelevant() const


Check if smart link is enabled


void NotifySmartLinkReached ( [UNavLinkCustomComponent](API\Runtime\NavigationSystem\UNavLinkCustomComponent) * LinkComp, [UObject](API\Runtime\CoreUObject\UObject\UObject) * PathingAgent, const FVector & DestPoint )


void OnNavAreaRegistered ( const [UWorld](API\Runtime\Engine\Engine\UWorld) & World, const [UClass](API\Runtime\CoreUObject\UObject\UClass) * NavAreaClass )


void OnNavAreaUnregistered ( const [UWorld](API\Runtime\Engine\Engine\UWorld) & World, const [UClass](API\Runtime\CoreUObject\UObject\UClass) * NavAreaClass )


Called after importing property values for this object (paste, duplicate or .t3d import) Allow the object to perform any cleanup for properties which shouldn't be duplicated or are unsupported by the script serialization


Called when a property on this object has been modified externally

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


Called after applying a transaction to the object. Default implementation simply calls PostEditChange.


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.


Do any object-specific cleanup required immediately after loading an object. This is not called for newly-created objects, and by default will always execute on the game thread.


Called after all the components in the Components array are registered, called both in editor and during gameplay. bHasRegisteredAllComponents must be set true prior to calling this function.


Called when agent reaches smart link during path following, useResumePathFollowing()to give control back

void ReceiveSmartLinkReached ( [AActor](API\Runtime\Engine\GameFramework\AActor) * Agent, const FVector & Destination )


Resume normal path following

void ResumePathFollowing ( [AActor](API\Runtime\Engine\GameFramework\AActor) * Agent )


Change state of smart link

void SetSmartLinkEnabled ( bool bEnabled )


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


ANavLinkProxyconnects areas of Navmesh that don't have a direct navigation path. It directly supports Simple Links (see PointLinks array). There can be multiple Simple links perANavLinkProxyinstance. Simple links are designed to statically link areas of Navmesh and are associated with a particular area class that the link provides. Smart Link functionality is provided viaUNavLinkCustomComponent, see SmartLinkComp. They are designed to be able to be dynamically toggled between enabled and disabled and provide different area classes for both cases. The area classes can be dynamically modified without navmesh rebuilds. There can only be at most one smart link perANavLinkProxyinstance. Both simple and smart links on a singleANavLinkProxyinstance, can be set / enabled at once, as well as either or neither of them.

class ANavLinkProxy : public [AActor](API\Runtime\Engine\GameFramework\AActor), public [INavLinkHostInterface](API\Runtime\NavigationSystem\INavLinkHostInterface), public [INavRelevantInterface](API\Runtime\Engine\AI\Navigation\INavRelevantInterface)

bSmartLinkIsRelevant

Smart link: toggle relevancy

PointLinks

Navigation links (point to point) added to navigation data

SegmentLinks

Navigation links (segment to segment) added to navigation data


namespace ECrowdAvoidanceQuality { enum Type { Low, Medium, Good, High, } }


DEPRECATED, will be removed with GetPathActionType function.

namespace EPathFollowingAction { enum Type { Error, NoMove, DirectMove, PartialPath, PathToGoal, } }


namespace EPathFollowingDebugTokens { enum Type { Description, ParamName, FailedValue, PassedValue, } }


DEPRECATED, please use EPathFollowingResultDetails instead, will be removed with deprecated override of AbortMove function.

namespace EPathFollowingMessage { enum Type { NoPath, OtherRequest, } }


namespace EPathFollowingRequestResult { enum Type { Failed, AlreadyAtGoal, RequestSuccessful, } }


namespace EPathFollowingResult { enum Type { Success, Blocked, OffPath, Aborted, Skipped_DEPRECATED, Invalid, } }


namespace EPathFollowingStatus { enum Type { Idle, Waiting, Paused, Moving, } }


FCombinedNavGridData ( const [TArray](API\Runtime\Core\Containers\TArray)< [FNavLocalGridData](API\Runtime\AIModule\Navigation\FNavLocalGridData) > & SourceGrids )


struct FCombinedNavGridData : public [FNavLocalGridData](API\Runtime\AIModule\Navigation\FNavLocalGridData)


AgentIndex

Index of agent in detour crowd

bIsSimulated

Is this agent fully simulated by crowd?

bWantsPathOptimization

If set, agent wants path optimizations

PathOptRemainingTime

Remaining time for next path optimization

PrevPoly

Poly ref that agent is standing on from previous update


Check flags in CrowdDebugDrawing namespace (CrowdManager.cpp) for debugging options.

AdaptiveDepth

Adaptive sampling: number of iterations at best velocity

AdaptiveDivisions

Adaptive sampling: number of divisions per ring

AdaptiveRings

Adaptive sampling: number of rings

CustomPatternIdx

Index in SamplingPatterns array or 0xff for adaptive sampling


void AddSample ( float AngleInDegrees, float NormalizedRadius )


void AddSampleWithMirror ( float AngleInDegrees, float NormalizedRadius )


Return the stat id to use for this tickable

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


Virtual that can be overloaded by the inheriting class. It is used to determine whether an object is ready to be ticked. This is required for example for allUObjectderived classes as they might be loaded async and therefore won't be ready immediately.
true if object is ready to be ticked, false otherwise.


Used to determine whether the object should be ticked in the editor. Defaults to false since that is the previous behavior.
true if this tickable object can be ticked in the editor


Used to determine if an object should be ticked when the game is paused. Defaults to false, as that mimics old behavior.
true if it should be ticked when paused, false otherwise

virtual bool IsTickableWhenPaused() const


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)


struct FCrowdTickHelper : public [FTickableGameObject](API\Runtime\Engine\FTickableGameObject)


Try switching to next waypoint, depends on WaypointSwitchRadius

virtual bool ConditionalMoveToNextSection ( const FVector & AgentLocation, EMetaPathUpdateReason Reason )


Copy properties of other meta path

virtual void CopyFrom ( const [FMetaNavMeshPath](API\Runtime\AIModule\Navigation\FMetaNavMeshPath) & Other )


Force switching to next waypoint

bool ForceMoveToNextSection ( const FVector & AgentLocation )


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


Returns approximate cost of path, ignores parameter

virtual [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) GetCostFromIndex ( int32 PathPointIndex ) const


Returns approximate length of path, ignores parameters

virtual [FVector::FReal](API\Runtime\Core\Math\TVector\FReal) GetLengthFromPosition ( FVector SegmentStart, uint32 NextPathPointIndex ) const


Returns cached path goal

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


Returns number of waypoints


Returns index of current target waypoint


virtual void DebugDraw ( const [ANavigationData](API\Runtime\NavigationSystem\ANavigationData) * NavData, const [FColor](API\Runtime\Core\Math\FColor) PathColor, [UCanvas](API\Runtime\Engine\Engine\UCanvas) * Canvas, const bool bPersistent, const float LifeTime, const uint32 NextPathPointIndex ) const


Returns waypoint array

const [TArray](API\Runtime\Core\Containers\TArray)< [FMetaPathWayPoint](API\Runtime\AIModule\Navigation\FMetaPathWayPoint) > & GetWaypointArray() const


Returns radius for switching to next waypoint during path following


Initialize path for path following

virtual void Initialize ( const FVector & AgentLocation )


Returns true if path at last waypoint


Switch to next waypoint

bool MoveToNextSection ( const FVector & AgentLocation )


Tries to set waypoints, fails when path is ready being followed

bool SetWaypoints ( const [TArray](API\Runtime\Core\Containers\TArray)< [FMetaPathWayPoint](API\Runtime\AIModule\Navigation\FMetaPathWayPoint) > & InWaypoints )


bool SetWaypoints ( const [TArray](API\Runtime\Core\Containers\TArray)< FVector > & InWaypoints )


Sets radius for switching to next waypoint during path following

void SetWaypointSwitchRadius ( float InSwitchRadius )


static const [FNavPathType](API\Runtime\Engine\AI\Navigation\FNavPathType) Type;


Updates underlying navmesh path for current target waypoint

virtual bool UpdatePath ( const FVector & AgentLocation )


FMetaNavMeshPath ( const [TArray](API\Runtime\Core\Containers\TArray)< [FMetaPathWayPoint](API\Runtime\AIModule\Navigation\FMetaPathWayPoint) > & InWaypoints, const [ANavigationData](API\Runtime\NavigationSystem\ANavigationData) & NavData )


FMetaNavMeshPath ( const [TArray](API\Runtime\Core\Containers\TArray)< [FMetaPathWayPoint](API\Runtime\AIModule\Navigation\FMetaPathWayPoint) > & InWaypoints, const [AController](API\Runtime\Engine\GameFramework\AController) & Owner )


FMetaNavMeshPath ( const [TArray](API\Runtime\Core\Containers\TArray)< FVector > & InWaypoints, const [ANavigationData](API\Runtime\NavigationSystem\ANavigationData) & NavData )


Since path updates itself for moving agent it really shouldn't be reused by others.

struct FMetaNavMeshPath : public [FNavMeshPath](API\Runtime\NavigationSystem\NavMesh\FNavMeshPath)

ApproximateLength

Sum of 3D distance along waypoints, used for approximating length of path

PathGoal

Stored goal actor

PathGoalTetherDistance

Stored goal actor's tether distance

TargetWaypointIdx

Current target of path following

Waypoints

List of waypoints, including start and end of path

WaypointSwitchRadius

Update navmesh path when this close to target waypoint


FMetaNavMeshPath ( const [TArray](API\Runtime\Core\Containers\TArray)< FVector > & InWaypoints, const [AController](API\Runtime\Engine\GameFramework\AController) & Owner )


FMetaPathWayPoint ( const FVector & Location, const uint32 InUserFlags )


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


Create path points from StartCoords to EndCoord, returns false when failed

bool FindPath ( const FIntVector & StartCoords, const FIntVector & EndCoords, [TArray](API\Runtime\Core\Containers\TArray)< FIntVector > & PathCoords ) const


Creates path points from navigation path going through grid

void FindPathForMovingAgent ( const [FNavigationPath](API\Runtime\NavigationSystem\FNavigationPath) & SourcePath, const FVector & EntryLocation, int32 EntrySegmentStart, [TArray](API\Runtime\Core\Containers\TArray)< FVector > & PathPointsInside, int32 & NextSegmentStart ) const


FGraphAStar: TGraph.


Convert global world coords to cell index, return -1 if outside

int32 GetCellIndexFromGlobalCoords2D ( const FIntVector & WorldCoords ) const


Convert cell index to global world coords with origin in (0,0,0)

FIntVector GetGlobalCoords ( int32 CellIdx ) const


Get unique Id of grid


int32 GetNeighbourCount ( [FNodeRef](API\Runtime\AIModule\Navigation\FNavLocalGridData\FNodeRef) NodeRef ) const


[FNodeRef](API\Runtime\AIModule\Navigation\FNavLocalGridData\FNodeRef) GetNeighbour ( const [FNodeRef](API\Runtime\AIModule\Navigation\FNavLocalGridData\FNodeRef) NodeRef, const int32 NeiIndex ) const


Convert cell index to world location using projected heights

FVector GetProjectedCellCenter ( int32 CellIdx ) const


Convert cell coords on grid to world location using projected heights

FVector GetProjectedCellCenter ( int32 LocationX, int32 LocationY ) const


Check if there's an obstacle at cell coords

bool HasObstacleUnsafe ( int32 LocationX, int32 LocationY ) const


Check if line trace between local coords on grid hits any obstacles, doesn't validate coords!

bool IsLineObstructed ( const FIntVector & StartCoords, const FIntVector & EndCoords ) const


bool IsValidRef ( [FNodeRef](API\Runtime\AIModule\Navigation\FNavLocalGridData\FNodeRef) NodeRef ) const


Mark box (AABB or rotated) shape as obstacle

void MarkBoxObstacle ( const FVector & Center, const FVector & Extent, const FQuat & Quat )


Mark capsule shape as obstacle

void MarkCapsuleObstacle ( const FVector & Center, float Radius, float HalfHeight )


Mark single cell as obstacle

void MarkPointObstacle ( const FVector & Center )


Convert PathIndices into pruned PathCoords

void PostProcessPath ( const FIntVector & StartCoords, const FIntVector & EndCoords, const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & PathIndices, [TArray](API\Runtime\Core\Containers\TArray)< FIntVector > & PathCoords ) const


Project cells on navigation data and marks failed ones as obstacles

void ProjectCells ( const [ANavigationData](API\Runtime\NavigationSystem\ANavigationData) & NavData )


Set unique Id of grid


Set height of bounds, if not set: ProjectCells will use height of default query box


FNavLocalGridData ( const [TArray](API\Runtime\Core\Containers\TArray)< [FNavLocalGridData](API\Runtime\AIModule\Navigation\FNavLocalGridData) > & SourceGrids )


FNavLocalGridData ( const FVector & Center, float Extent2D )


FNavLocalGridData ( const FVector & Center, const FVector2D & Extent2D )


TODO: helpers for marking different basic shapes TODO: serialization (with maps?) TODO:FNavigationPathsupport?

struct FNavLocalGridData : public [TSimpleCellGrid< uint8,((uint8) 0xff) >](API\Runtime\AIModule\TSimpleCellGrid)


namespace operator EPathFollowingRequestResult { operator EPathFollowingRequestResult::Type() const }


bool HasFlag ( [FPathFollowingResultFlags::Type](API\Runtime\AIModule\Navigation\Type) Flag ) const


FPathFollowingResult ( [FPathFollowingResultFlags::Type](API\Runtime\AIModule\Navigation\Type) InFlags )


FPathFollowingResult ( [EPathFollowingResult::Type](API\Runtime\AIModule\Navigation\EPathFollowingResult__Type) ResultCode, [FPathFollowingResultFlags::Type](API\Runtime\AIModule\Navigation\Type) ExtraFlags )


namespace FPathFollowingResultFlags { [FString](API\Runtime\Core\Containers\FString) FPathFollowingResultFlags::ToString ( uint16 Value ) }


static const bool bReuseNodePoolInSubsequentSearches = false;


static const int32 FatalPathLength = 10000;


Group mask for this agent

virtual int32 GetCrowdAgentAvoidanceGroup&40;&41; const


Fills information about agent's collision cylinder

virtual void GetCrowdAgentCollisions &40; float & CylinderRadius, float & CylinderHalfHeight &41; const


Will avoid other agents if they are in one of specified groups

virtual int32 GetCrowdAgentGroupsToAvoid&40;&41; const


Will NOT avoid other agents if they are in one of specified groups, higher priority than GroupsToAvoid

virtual int32 GetCrowdAgentGroupsToIgnore&40;&41; const


current location of crowd agent

virtual FVector GetCrowdAgentLocation&40;&41; const


max speed of crowd agent

virtual float GetCrowdAgentMaxSpeed&40;&41; const


current velocity of crowd agent

virtual FVector GetCrowdAgentVelocity&40;&41; const


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


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


Aborts following path

virtual void AbortMove ( const [UObject](API\Runtime\CoreUObject\UObject\UObject) & Instigator, [FPathFollowingResultFlags::Type](API\Runtime\AIModule\Navigation\Type) AbortFlags, [FAIRequestID](API\Runtime\AIModule\FAIRequestID) RequestID, EPathFollowingVelocityMode VelocityMode )


Pass desired position to movement component (after resolving collisions between crowd agents)

virtual void ApplyCrowdAgentPosition ( const FVector & NewPosition )


virtual void ApplyCrowdAgentVelocity ( const FVector & NewVelocity, const FVector & DestPathCorner, bool bTraversingLink )


Pass agent velocity to movement component

virtual void ApplyCrowdAgentVelocity ( const FVector & NewVelocity, const FVector & DestPathCorner, bool bTraversingLink, bool bIsNearEndOfPath )


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.


Cleanup component before destroying


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


PathFollowingComponent BEGIN.

virtual int32 DetermineStartingPathPoint ( const [FNavigationPath](API\Runtime\NavigationSystem\FNavigationPath) * ConsideredPath ) 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 )


Follow current path segment

virtual void FollowPathSegment ( float DeltaTime )


Group mask for this agent

virtual int32 GetCrowdAgentAvoidanceGroup() const


virtual void GetCrowdAgentCollisions ( float & CylinderRadius, float & CylinderHalfHeight ) const


virtual int32 GetCrowdAgentGroupsToAvoid() const


virtual int32 GetCrowdAgentGroupsToIgnore() const


max speed of crowd agent

virtual float GetCrowdAgentMaxSpeed() const


current location of crowd agent

virtual FVector GetCrowdAgentLocation() const


current velocity of crowd agent

virtual FVector GetCrowdAgentVelocity() const


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 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


Get current focal point of movement

virtual FVector GetMoveFocus ( bool bAllowStrafe ) const


PathFollowingComponent BEGIN.


Checks if bEnableAnticipateTurns is set to true, and if crowd simulation is not suspended


Checks if bEnableObstacleAvoidance is set to true, and if crowd simulation is not suspended


Checks if bEnableOptimizeTopology is set to true, and if crowd simulation is not suspended


Checks if bEnableSeparation is set to true, and if crowd simulation is not suspended


Check if agent is on path


Called when falling movement ends.


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


Called when agent moved to next nav node (poly)

virtual void OnNavNodeChanged ( NavNodeRef NewPolyRef, NavNodeRef PrevPolyRef, int32 CorridorSize )


Called when owner is preparing new pathfinding request

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


Notify about finished movement

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


Pause path following

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


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


Reset path following data


Resume path following

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


void SetAvoidanceGroup ( int32 GroupFlags, bool bUpdateAgent )


void SetCrowdAffectFallingVelocity ( bool bEnable )


void SetCrowdAnticipateTurns ( bool bEnable, bool bUpdateAgent )


void SetCrowdAvoidanceQuality ( [ECrowdAvoidanceQuality::Type](API\Runtime\AIModule\Navigation\ECrowdAvoidanceQuality__Type) Quality, bool bUpdateAgent )


void SetCrowdAvoidanceRangeMultiplier ( float Multiplier, bool bUpdateAgent )


void SetCrowdObstacleAvoidance ( bool bEnable, bool bUpdateAgent )


void SetCrowdCollisionQueryRange ( float Range, bool bUpdateAgent )


void SetCrowdOptimizeVisibility ( bool bEnable, bool bUpdateAgent )


void SetCrowdOptimizeTopology ( bool bEnable, bool bUpdateAgent )


void SetCrowdPathOffset ( bool bEnable, bool bUpdateAgent )


void SetCrowdPathOptimizationRange ( float Range, bool bUpdateAgent )


void SetCrowdRotateToVelocity ( bool bEnable )


void SetCrowdSeparation ( bool bEnable, bool bUpdateAgent )


void SetCrowdSeparationWeight ( float Weight, bool bUpdateAgent )


void SetCrowdSlowdownAtGoal ( bool bEnable, bool bUpdateAgent )


void SetGroupsToAvoid ( int32 GroupFlags, bool bUpdateAgent )


Sets variables related to current move segment

virtual void SetMoveSegment ( int32 SegmentStartIndex )


void SetGroupsToIgnore ( int32 GroupFlags, bool bUpdateAgent )


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

virtual bool ShouldCheckPathOnResume() const


bool ShouldSwitchPathPart ( int32 CorridorSize ) const


virtual bool ShouldTrackMovingGoal ( FVector & OutGoalLocation ) const


Main switch for crowd steering & avoidance

virtual void SuspendCrowdSteering ( bool bSuspend )


Switch between crowd simulation and parent implementation (following path segments)

virtual void SetCrowdSimulationState ( ECrowdSimulationState NewState )


void UpdateCachedDirections ( const FVector & NewVelocity, const FVector & NextPathCorner, bool bTraversingLink )


Update params in crowd manager


void UpdateDestinationForMovingGoal ( const FVector & NewDestination )


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


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


class UCrowdFollowingComponent : public [UPathFollowingComponent](API\Runtime\AIModule\Navigation\UPathFollowingComponent), public [ICrowdAgentInterface](API\Runtime\AIModule\Navigation\ICrowdAgentInterface)

AvoidanceRangeMultiplier

Multiplier for avoidance samples during detection, doesn't affect actual velocity

bAffectFallingVelocity

If set, velocity will be updated even if agent is falling

bCanCheckMovingTooFar

If set, destination overshot can be tested

bCanUpdatePathPartInTick

If set, path parts can be switched in UpdatePathSegment, based on distance

bCheckMovementAngle

If set, movement will be finished when velocity is opposite to path direction (runtime flag)

bFinalPathPart

If set, agent if moving on final path part, skip further updates (runtime flag)

bRegisteredWithCrowdSimulation

Set when agent is registered in crowd simulation (either controlled or an obstacle)

bRotateToVelocity

If set, move focus will match velocity direction

bSuspendCrowdSimulation

If set, avoidance and steering will be suspended (used for direct move requests)

bUpdateDirectMoveVelocity

If set, move velocity will be updated in every tick

LastPathPolyIndex

Last visited poly on path

PathStartIndex

Start index of current path part


Adjust current position in path's corridor, starting test from PathStartIdx

void AdjustAgentPathStart ( const [UCrowdFollowingComponent](API\Runtime\AIModule\Navigation\UCrowdFollowingComponent) * AgentComponent, const [FNavMeshPath](API\Runtime\NavigationSystem\NavMesh\FNavMeshPath) * Path, int32 & PathStartIdx ) 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.


virtual void CleanUp ( float DeltaTime )


Clears move target for crowd agent (only for fully simulated)

void ClearAgentMoveTarget ( const [UCrowdFollowingComponent](API\Runtime\AIModule\Navigation\UCrowdFollowingComponent) * AgentComponent ) const


Reads existing avoidance config or returns false

bool GetAvoidanceConfig ( int32 Idx, [FCrowdAvoidanceConfig](API\Runtime\AIModule\Navigation\FCrowdAvoidanceConfig) & Data ) const


static [UCrowdManager](API\Runtime\AIModule\Navigation\UCrowdManager) * GetCurrent ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * WorldContextObject )


static [UCrowdManager](API\Runtime\AIModule\Navigation\UCrowdManager) * GetCurrent ( [UWorld](API\Runtime\Engine\Engine\UWorld) * World )


const [ANavigationData](API\Runtime\NavigationSystem\ANavigationData) * GetNavData() const


Returns a list of locations of nearby agents

int32 GetNearbyAgentLocations ( const [ICrowdAgentInterface](API\Runtime\AIModule\Navigation\ICrowdAgentInterface) * Agent, [TArray](API\Runtime\Core\Containers\TArray)< FVector > & OutLocations ) const


Returns number of nearby agents

int32 GetNumNearbyAgents ( const [ICrowdAgentInterface](API\Runtime\AIModule\Navigation\ICrowdAgentInterface) * Agent ) const


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


Check if object is a valid crowd agent

bool IsAgentValid ( const [UCrowdFollowingComponent](API\Runtime\AIModule\Navigation\UCrowdFollowingComponent) * AgentComponent ) const


Check if object is a valid crowd agent

bool IsAgentValid ( const [ICrowdAgentInterface](API\Runtime\AIModule\Navigation\ICrowdAgentInterface) * Agent ) const


Tests if NavData is a suitable nav data type to be used by this CrowdManager instance.

virtual bool IsSuitableNavData ( const [ANavigationData](API\Runtime\NavigationSystem\ANavigationData) & NavData ) const


Update agent after using custom link

void OnAgentFinishedCustomLink ( const [ICrowdAgentInterface](API\Runtime\AIModule\Navigation\ICrowdAgentInterface) * Agent ) const


Called by the nav system when a navigation data instance is removed. The crowd manager will see if it's the nav data being used by it an if so try to find another one. If there's none the crowd manager will stop working.

virtual void OnNavDataUnregistered ( [ANavigationData](API\Runtime\NavigationSystem\ANavigationData) & NavData )


Called by the nav system when a new navigation data instance is registered. If the CrowdManager instance had no nav data cached it will consider this NavDataInstance and update if necesary.

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


Notify called when detour navmesh is changed


Switch agent to waiting state

void PauseAgent ( const [UCrowdFollowingComponent](API\Runtime\AIModule\Navigation\UCrowdFollowingComponent) * AgentComponent ) const


Called from tick, after move points were updated, before any steering/avoidance


Called when a property on this object has been modified externally

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


Called from tick, just after updating agents proximity data


Adds new agent to crowd

void RegisterAgent ( [ICrowdAgentInterface](API\Runtime\AIModule\Navigation\ICrowdAgentInterface) * Agent )


Resumes agent movement

void ResumeAgent ( const [UCrowdFollowingComponent](API\Runtime\AIModule\Navigation\UCrowdFollowingComponent) * AgentComponent, bool bForceReplanPath ) const


Sets move direction for crowd agent (only for fully simulated)

bool SetAgentMoveDirection ( const [UCrowdFollowingComponent](API\Runtime\AIModule\Navigation\UCrowdFollowingComponent) * AgentComponent, const FVector & MoveDirection ) const


Sets move target using path (only for fully simulated)

bool SetAgentMovePath ( const [UCrowdFollowingComponent](API\Runtime\AIModule\Navigation\UCrowdFollowingComponent) * AgentComponent, const [FNavMeshPath](API\Runtime\NavigationSystem\NavMesh\FNavMeshPath) * Path, int32 PathSectionStart, int32 PathSectionEnd, const FVector & PathSectionEndLocation ) const


Sets move target for crowd agent (only for fully simulated)

bool SetAgentMoveTarget ( const [UCrowdFollowingComponent](API\Runtime\AIModule\Navigation\UCrowdFollowingComponent) * AgentComponent, const FVector & MoveTarget, FSharedConstNavQueryFilter Filter ) const


Updates existing avoidance config or returns false

bool SetAvoidanceConfig ( int32 Idx, const [FCrowdAvoidanceConfig](API\Runtime\AIModule\Navigation\FCrowdAvoidanceConfig) & Data )


Remove started offmesh connections from corridor

void SetOffmeshConnectionPruning ( bool bRemoveFromCorridor )


Block path visibility raycasts when crossing different nav areas

void SetSingleAreaVisibilityOptimization ( bool bEnable )


Sets NavData as MyNavData. If Null and bFindNewNavDataIfNull is true then the manager will search for a new NavData instance that meets theIsSuitableNavData()condition.

void SetNavData ( [ANavigationData](API\Runtime\NavigationSystem\ANavigationData) * NavData, const bool bFindNewNavDataIfNull )


Removes agent from crowd

void UnregisterAgent ( const [ICrowdAgentInterface](API\Runtime\AIModule\Navigation\ICrowdAgentInterface) * Agent )


Updates agent data

void UpdateAgentParams ( const [ICrowdAgentInterface](API\Runtime\AIModule\Navigation\ICrowdAgentInterface) * Agent ) const


Refresh agent state

void UpdateAgentState ( const [ICrowdAgentInterface](API\Runtime\AIModule\Navigation\ICrowdAgentInterface) * Agent ) const


Try to initialize nav data from already existing ones


Setup params of crowd avoidance


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


class UCrowdManager : public [UCrowdManagerBase](API\Runtime\NavigationSystem\UCrowdManagerBase)

ActiveAgents

Agents registered in crowd manager

AgentFlags

Temporary flags for crowd agents

AvoidanceConfig

Obstacle avoidance params

bResolveCollisions

Should crowd simulation resolve collisions between agents? if not, this will be handled by their movement components

MaxAgentRadius

Max radius of agent that can be added to crowd

MaxAgents

Max number of agents supported by crowd

MaxAvoidedAgents

Max number of neighbor agents for velocity avoidance

MaxAvoidedWalls

Max number of wall segments for velocity avoidance

NavmeshCheckInterval

How often should agents check their position after moving off navmesh?

PathOffsetRadiusMultiplier

Agent radius multiplier for offsetting path around corners

PathOptimizationInterval

How often should agents try to optimize their paths?

SamplingPatterns

Obstacle avoidance params

SeparationDirClamp

Clamp separation force to left/right when neighbor is behind (dot between forward and dirToNei, -1 = disabled)


const [TArray](API\Runtime\Core\Containers\TArray)< FVector > & GetGridPathPoints() const


Initialize component to use


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


Reset path following data


Resume path following

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


Check state of path following, update move segment if needed


void UpdateActiveGrid ( const FVector & CurrentLocation )


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


Does not replace proper avoidance for dynamic obstacles!

class UGridPathFollowingComponent : public [UPathFollowingComponent](API\Runtime\AIModule\Navigation\UPathFollowingComponent)

ActiveGridId

Id of current grid

ActiveGridIdx

Index of current grid

bHasGridPath

Set when grid path is valid

bIsPathEndInsideGrid

Set when end of followed Path ends inside current grid

GridMoveSegmentEndIndex

Index of current destination grid path point

GridPathPoints

Path points for moving through grid

MoveSegmentStartIndexOffGrid

Expected start of path segment after leaving grid


virtual [TSubclassOf](API\Runtime\CoreUObject\Templates\TSubclassOf)< [UNavigationQueryFilter](API\Runtime\NavigationSystem\NavFilters\UNavigationQueryFilter) > GetSimpleFilterForAgent ( const [UObject](API\Runtime\CoreUObject\UObject\UObject) & Querier ) const


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


class UNavFilter_AIControllerDefault : public [UNavigationQueryFilter](API\Runtime\NavigationSystem\NavFilters\UNavigationQueryFilter)


Adds new grid

int32 AddGridData ( const [FNavLocalGridData](API\Runtime\AIModule\Navigation\FNavLocalGridData) & GridData, bool bUpdate )


Creates single grid data for set of points

static int32 AddLocalNavigationGridForPoints ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * WorldContextObject, const [TArray](API\Runtime\Core\Containers\TArray)< FVector > & Locations, const int32 Radius2D, const float Height, bool bRebuildGrids )


Creates new grid data for single point

static int32 AddLocalNavigationGridForPoint ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * WorldContextObject, const FVector & Location, const int32 Radius2D, const float Height, bool bRebuildGrids )


static int32 AddLocalNavigationGridForCapsule ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * WorldContextObject, const FVector & Location, float CapsuleRadius, float CapsuleHalfHeight, const int32 Radius2D, const float Height, bool bRebuildGrids )


static int32 AddLocalNavigationGridForBox ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * WorldContextObject, const FVector & Location, FVector Extent, FRotator Rotation, const int32 Radius2D, const float Height, bool bRebuildGrids )


static bool FindLocalNavigationGridPath ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * WorldContextObject, const FVector & Start, const FVector & End, [TArray](API\Runtime\Core\Containers\TArray)< FVector > & PathPoints )


Get shared size of grid cell, static but there's only one active manager


static [UNavLocalGridManager](API\Runtime\AIModule\Navigation\UNavLocalGridManager) * GetCurrent ( [UWorld](API\Runtime\Engine\Engine\UWorld) * World )


Tries to find a path using grids, returns false when start and end locations are not on the same grid

bool FindPath ( const FVector & Start, const FVector & End, [TArray](API\Runtime\Core\Containers\TArray)< FVector > & PathPoints ) const


static [UNavLocalGridManager](API\Runtime\AIModule\Navigation\UNavLocalGridManager) * GetCurrent ( const [UObject](API\Runtime\CoreUObject\UObject\UObject) * WorldContextObject )


Get combined, non overlapping grid by index

const [FNavLocalGridData](API\Runtime\AIModule\Navigation\FNavLocalGridData) & GetGridData ( int32 GridIdx ) const


Find combined grid at location

int32 GetGridIndex ( const FVector & WorldLocation ) const


Find combined grid value at world location

uint8 GetGridValueAt ( const FVector & WorldLocation ) const


Get limit of source grids


Get number of combined, non overlapping grids


Get number of known source grids


Get source grid by index

const [FNavLocalGridData](API\Runtime\AIModule\Navigation\FNavLocalGridData) & GetSourceData ( int32 SourceIdx ) const


Get version of grid data, incremented with each rebuild


Check if source grid limit is set


Rebuild overlapping grids if needed


Projects combined grids to navigation data

virtual void ProjectGrids ( const [TArray](API\Runtime\Core\Containers\TArray)< int32 > & GridIndices )


Removes grid

void RemoveGridData ( int32 GridId, bool bUpdate )


static void RemoveLocalNavigationGrid ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * WorldContextObject, int32 GridId, bool bRebuildGrids )


Set shared size of grid cell, allowed only when there's no grid added


static bool SetLocalNavigationGridDensity ( [UObject](API\Runtime\CoreUObject\UObject\UObject) * WorldContextObject, float CellSize )


Set limit of source grids, 0 or negative means unlimited

void SetMaxActiveSources ( int32 NumActiveSources )


Updates LastAccessTime in all source grids

void UpdateAccessTime ( int32 CombinedGridIdx )


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


Ensures limit of source grids, removing oldest entries (LastAccessTime)


Builds non overlapping grid from multiple sources, that can be used later for pathfinding. Check also:UGridPathFollowingComponent,FNavLocalGridData

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


Aborts following path

virtual void AbortMove ( const [UObject](API\Runtime\CoreUObject\UObject\UObject) & Instigator, [FPathFollowingResultFlags::Type](API\Runtime\AIModule\Navigation\Type) AbortFlags, [FAIRequestID](API\Runtime\AIModule\FAIRequestID) RequestID, EPathFollowingVelocityMode VelocityMode )


Cleanup component before destroying


Clear resource lock of the given origin

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


Debug point reach test values

void DebugReachTest ( float & CurrentDot, float & CurrentDistance, float & CurrentHeight, uint8 & bDotFailed, uint8 & bDistanceFailed, uint8 & bHeightFailed ) const