description:
The agent's position will be constrained to the surface of the navigation mesh.
The index of the agent in the agent pool. Or -1 if the agent could not be added.

code: int addAgent ( const dtReal * pos, const [dtCrowdAgentParams](API\Runtime\Navmesh\DetourCrowd\dtCrowdAgentParams) & params, const [dtQueryFilter](API\Runtime\Navmesh\Detour\dtQueryFilter) * filter )


description:
Cache list of active agents
The number of active agents

module: Navmesh

code: int cacheActiveAgents()


description:
Gets the active agents int the agent pool.
The number of agents returned in `agents_.

code: int getActiveAgents ( [dtCrowdAgent](API\Runtime\Navmesh\DetourCrowd\dtCrowdAgent) ** agents, const int maxAgents )


description: Gets all cached active agents.

code: [dtCrowdAgent](API\Runtime\Navmesh\DetourCrowd\dtCrowdAgent) ** getActiveAgents() const


description:
agents in the pool may not be in use. CheckdtCrowdAgent.activebefore using the returned object.
The requested agent.

code: const [dtCrowdAgent](API\Runtime\Navmesh\DetourCrowd\dtCrowdAgent) * getAgent ( const int idx )


description: Gets all agent animations.

code: const [dtCrowdAgentAnimation](API\Runtime\Navmesh\DetourCrowd\dtCrowdAgentAnimation) * getAgentAnims() const


description:
The maximum number of agents that can be managed by the object.
The maximum number of agents.

code: const int getAgentCount() const


description:
Gets the filter used by the crowd.
The filter used by the crowd.

code: [dtQueryFilter](API\Runtime\Navmesh\Detour\dtQueryFilter) * getEditableFilter ( const int idx )


code: int getAgentIndex ( const [dtCrowdAgent](API\Runtime\Navmesh\DetourCrowd\dtCrowdAgent) * agent ) const


code: const [dtQueryFilter](API\Runtime\Navmesh\Detour\dtQueryFilter) * getFilter ( const int idx ) const


description:
Gets the crowd's proximity grid.
The crowd's proximity grid.

code: const [dtProximityGrid](API\Runtime\Navmesh\DetourCrowd\dtProximityGrid) * getGrid() const


description: Gets the query object used by the crowd.

code: const [dtNavMeshQuery](API\Runtime\Navmesh\Detour\dtNavMeshQuery) * getNavMeshQuery() const


description:
Gets the shared avoidance configuration for the specified index.
The requested configuration.

code: const [dtObstacleAvoidanceParams](API\Runtime\Navmesh\DetourCrowd\dtObstacleAvoidanceParams) * getObstacleAvoidanceParams ( const int idx ) const


description:
[UE] Gets the shared avoidance sampling pattern for the specified index.
true if pattern was found

code: bool getObstacleAvoidancePattern ( int idx, dtReal * angles, dtReal * radii, int * nsamples )


description:
Gets the crowd's path request queue.
The crowd's path request queue.

code: const [dtPathQueue](API\Runtime\Navmesh\DetourCrowd\dtPathQueue) * getPathQueue() const


description:
Gets the search extents [(x, y, z)] used by the crowd for query operations.
The search extents used by the crowd. [(x, y, z)]

code: const dtReal * getQueryExtents() const


description: Gets shared boundary cache.

code: const [dtSharedBoundary](API\Runtime\Navmesh\DetourCrowd\dtSharedBoundary) * getSharedBoundary() const


description:
Gets the velocity sample count.
The velocity sample count.

code: int getVelocitySampleCount() const


description:
May be called more than once to purge and re-initialize the crowd.
True if the initialization succeeded.

code: bool init ( const int maxAgents, const dtReal maxAgentRadius, [dtNavMesh](API\Runtime\Navmesh\Detour\dtNavMesh) * nav )


description:
[UE] Initializes the avoidance query.
True if the initialization succeeded.

code: bool initAvoidance ( const int maxNeighbors, const int maxWalls, const int maxCustomPatterns )


description: [UE] Check if agent moved away from its path corridor

code: bool isOutsideCorridor ( const int idx ) const


description: The agent is deactivated and will no longer be processed. ItsdtCrowdAgentobject is not removed from the pool. It is marked as inactive so that it is available for reuse.

code: void removeAgent ( const int idx )


description:
The request will be processed during the nextupdate().
True if the request was successfully submitted.

code: bool requestMoveTarget ( const int idx, dtPolyRef ref, const dtReal * pos )


description:
Submits a new move request for the specified agent.
True if the request was successfully submitted.

code: bool requestMoveVelocity ( const int idx, const dtReal * vel )


description: [UE] Resets agent's velocity

code: bool resetAgentVelocity ( const int idx )


description: [UE] Set time between attempts to restore agents state

code: void setAgentCheckInterval ( const dtReal t )


description: [UE] Switch to offmesh link state

code: bool setAgentBackOnLink ( const int idx )


description: [UE] Set agent corridor, works only just after requesting move target when agent didn't start any pathfinding operations yet Use with caution!

code: bool setAgentCorridor ( const int idx, const dtPolyRef * path, const int npath )


description: [UE] Switch to waiting state

code: bool setAgentWaiting ( const int idx )


description: [UE]

code: void setEarlyReachTestOptimization ( bool bEnable )


description: Sets the shared avoidance configuration for the specified index.

code: void setObstacleAvoidanceParams ( const int idx, const [dtObstacleAvoidanceParams](API\Runtime\Navmesh\DetourCrowd\dtObstacleAvoidanceParams) * params )


description: [UE] Sets the shared avoidance sampling pattern for the specified index.

code: void setObstacleAvoidancePattern ( int idx, const dtReal * angles, const dtReal * radii, int nsamples )


description: [UE] Set offmesh connection pruning This will allow removing offmesh connection poly ref from corridor as soon as offmesh connection anim is triggered (default behavior)

code: void setPruneStartedOffmeshConnections ( bool bRemoveFromCorridor )


description: [UE] Set agent radius multiplier for offseting path from corners

code: void setPathOffsetRadiusMultiplier ( dtReal RadiusMultiplier )


description:
Resets any request for the specified agent.
True if the request was successfully reseted.

code: bool resetMoveTarget ( const int idx )


description: [UE] Set separation filter param

code: void setSeparationFilter ( dtReal InFilter )


description: [UE] Set visibility optimization to use single area raycasts This will prevent from cutting through polys marked as different area which could have been avoided in corridor's path

code: void setSingleAreaVisibilityOptimization ( bool bEnable )


description: Updates the steering and positions of all agents.

code: void update ( const dtReal dt, [dtCrowdAgentDebugInfo](API\Runtime\Navmesh\DetourCrowd\dtCrowdAgentDebugInfo) * debug )


description:
[UE] Updates the specified agent's query filter.
True if the request was successfully submitted.

code: bool updateAgentFilter ( const int idx, const [dtQueryFilter](API\Runtime\Navmesh\Detour\dtQueryFilter) * filter )


description: Updates the specified agent's configuration.

code: void updateAgentParameters ( const int idx, const [dtCrowdAgentParams](API\Runtime\Navmesh\DetourCrowd\dtCrowdAgentParams) & params )


description: [UE] Refresh state of agent, used after completing movement through offmesh links

code: void updateAgentState ( const int idx, bool repath )


description: [UE] Split update into several smaller components: avoidance

code: void updateStepAvoidance ( const dtReal dt, [dtCrowdAgentDebugInfo](API\Runtime\Navmesh\DetourCrowd\dtCrowdAgentDebugInfo) * debug )


description: [UE] Split update into several smaller components: corridor updates at new position

code: void updateStepCorridor ( const dtReal dt, [dtCrowdAgentDebugInfo](API\Runtime\Navmesh\DetourCrowd\dtCrowdAgentDebugInfo) * debug )


description: [UE] Split update into several smaller components: integrate velocities and handle collisions

code: void updateStepMove ( const dtReal dt, [dtCrowdAgentDebugInfo](API\Runtime\Navmesh\DetourCrowd\dtCrowdAgentDebugInfo) * debug )


description: [UE] Split update into several smaller components: next corner for move, trigger offmesh links

code: void updateStepNextMovePoint ( const dtReal dt, [dtCrowdAgentDebugInfo](API\Runtime\Navmesh\DetourCrowd\dtCrowdAgentDebugInfo) * debug )


description: [UE] Split update into several smaller components: offmesh anims

code: void updateStepOffMeshAnim ( const dtReal dt, [dtCrowdAgentDebugInfo](API\Runtime\Navmesh\DetourCrowd\dtCrowdAgentDebugInfo) * debug )


description: [UE] Split update into several smaller components: offmesh link velocity (instead of playing animation)

code: void updateStepOffMeshVelocity ( const dtReal dt, [dtCrowdAgentDebugInfo](API\Runtime\Navmesh\DetourCrowd\dtCrowdAgentDebugInfo) * debug )


description: [UE] Split update into several smaller components: path validity, path cache and path optimizations

code: void updateStepPaths ( const dtReal dt, [dtCrowdAgentDebugInfo](API\Runtime\Navmesh\DetourCrowd\dtCrowdAgentDebugInfo) * debug )


description: [UE] Split update into several smaller components: neighbors and boundaries

code: void updateStepProximityData ( const dtReal dt, [dtCrowdAgentDebugInfo](API\Runtime\Navmesh\DetourCrowd\dtCrowdAgentDebugInfo) * debug )


description: [UE] Split update into several smaller components: steering

code: void updateStepSteering ( const dtReal dt, [dtCrowdAgentDebugInfo](API\Runtime\Navmesh\DetourCrowd\dtCrowdAgentDebugInfo) * debug )


className: dtCrowd

description: dtCrowdAgent

code: class dtCrowd


className: dtCrowdAgent

description: Represents an agent managed by adtCrowdobject.

code: struct dtCrowdAgent

active

type: unsigned char

description: 1 if the agent is active, or 0 if the agent is in an unused slot in the agent pool.

boundary

type: dtLocalBoundary

description: The local boundary data for the agent.

cornerFlags

type: unsigned char[D...

description: The local path corridor corner flags. (See: dtStraightPathFlags) [(flags) *ncorners].

cornerPolys

description: The reference id of the polygon being entered at the corner. [(polyRef) *ncorners].

cornerVerts

description: The local path corridor corners for the agent. (Staight path.) [(x, y, z) *ncorners].

corridor

type: dtPathCorridor

description: The path corridor the agent is using.

desiredSpeed

type: dtReal

description: The desired speed.

dvel

description: The desired velocity of the agent. [(x, y, z)].

ncorners

type: int

description: The number of corners.

neis

type: dtCrowdNeighbou...

description: The known neighbors of the agent.

nneis

description: The number of neighbors.

npos

description: The current agent position. [(x, y, z)].

params

type: dtCrowdAgentPar...

description: The agent's configuration parameters.

state

description: The type of mesh polygon the agent is traversing. (See: CrowdAgentState)

targetPathqRef

type: dtPathQueueRef

description: Path finder ref.

targetRef

type: dtPolyRef

description: Target polyref of the movement request.

targetReplan

description: Flag indicating that the current path is being replanned.

targetState

description: State of the movement request.

topologyOptTime

description: Time since the agent's path corridor was optimized.

vel

description: The actual velocity of the agent. [(x, y, z)].


className: dtCrowdAgentAnimation

code: struct dtCrowdAgentAnimation


className: dtCrowdAgentDebugInfo

code: struct dtCrowdAgentDebugInfo

agentLog

type: TMap< int32,FS...

vod

type: dtObstacleAvoid...


className: dtCrowdNeighbour

description: dtCrowd

code: struct dtCrowdNeighbour

dist

description: The distance between the current agent and the neighbor.

idx

description: The index of the neighbor in the crowd.


className: dtCrowdAgentParams

description: dtCrowd::updateAgentParameters()

code: struct dtCrowdAgentParams

avoidanceGroup

type: unsigned int

description: [UE] Groups flags attached to the agent

avoidanceQueryMultiplier

description: [UE] Mutliplier for avoidance velocities

collisionQueryRange

description: Defines how close a collision element must be before it is considered for steering behaviors. [Limits: > 0].

filter

description: UE: Id of navigation filter used by this agent [Limits: 0 <= value <= #DT_CROWD_MAX_FILTERS]

groupsToAvoid

description: [UE] Avoid agents when they group is matching mask

groupsToIgnore

description: [UE] Don't avoid agents when they group is matching mask

height

description: Agent height. [Limit: > 0].

linkFilter

type: TSharedPtr<dtQ...

description: UE: special link filter used by this agent.

maxAcceleration

description: Maximum allowed acceleration. [Limit: >= 0].

maxSpeed

description: Maximum allowed speed. [Limit: >= 0].

obstacleAvoidanceType

description: The index of the avoidance configuration to use for the agent.

pathOptimizationRange

description: The path visibility optimization range. [Limit: > 0].

radius

description: Agent radius. [Limit: >= 0].

separationWeight

description: How aggresive the agent manager should be at avoiding collisions with this agent. [Limit: >= 0].

updateFlags

type: unsigned short

description: Flags that impact steering behavior. (See: UpdateFlags)

userData

type: void *

description: User defined data attached to the agent.


code: const dtReal * getSegment ( int i ) const


code: const int getSegmentFlags ( int i ) const


code: bool isValid ( [dtNavMeshQuery](API\Runtime\Navmesh\Detour\dtNavMeshQuery) * navquery, const [dtQueryFilter](API\Runtime\Navmesh\Detour\dtQueryFilter) * filter )


code: static const int MAX_LOCAL_POLYS = 16;


code: static const int MAX_LOCAL_SEGS = 8;


description: [UE: new sections: link removal, path corridor, direction]

code: void update ( dtPolyRef ref, const dtReal * pos, const dtReal collisionQueryRange, const bool bIgnoreAtEnd, const dtReal * endPos, const dtPolyRef * path, const int npath, const dtReal * moveDir, [dtNavMeshQuery](API\Runtime\Navmesh\Detour\dtNavMeshQuery) * navquery, const [dtQueryFilter](API\Runtime\Navmesh\Detour\dtQueryFilter) * filter )


code: void update ( const [dtSharedBoundary](API\Runtime\Navmesh\DetourCrowd\dtSharedBoundary) * sharedData, const int sharedIdx, const dtReal * pos, const dtReal collisionQueryRange, const bool bIgnoreAtEnd, const dtReal * endPos, const dtPolyRef * path, const int npath, const dtReal * moveDir, [dtNavMeshQuery](API\Runtime\Navmesh\Detour\dtNavMeshQuery) * navquery, const [dtQueryFilter](API\Runtime\Navmesh\Detour\dtQueryFilter) * filter )


code: dtReal getSampleCollisionTimePenalty ( const int i ) const


className: dtLocalBoundary

code: class dtLocalBoundary


code: void addSample ( const dtReal * vel, const dtReal ssize, const dtReal pen, const dtReal vpen, const dtReal vcpen, const dtReal spen, const dtReal tpen )


code: dtReal getSampleCurrentVelocityPenalty ( const int i ) const


code: dtReal getSamplePenalty ( const int i ) const


code: dtReal getSampleDesiredVelocityPenalty ( const int i ) const


code: dtReal getSampleSize ( const int i ) const


code: const dtReal * getSampleVelocity ( const int i ) const


code: bool init ( const int maxSamples )


className: dtObstacleAvoidanceDebugData

code: class dtObstacleAvoidanceDebugData


className: dtObstacleAvoidanceParams

code: struct dtObstacleAvoidanceParams

adaptiveDepth

description: Adaptive

adaptiveDivs

description: Adaptive

adaptiveRings

description: Adaptive

patternIdx

description: [UE] index of custom sampling pattern or 0xff for adaptive


code: dtReal getSamplePreferredSidePenalty ( const int i ) const


className: dtObstacleAvoidancePattern

description: [UE] custom sampling patterns

code: struct dtObstacleAvoidancePattern

angles

description: Sample's angle (radians) from desired velocity direction

nsamples

description: Number of samples.

radii

description: Sample's radius (0...1)


code: void addCircle ( const dtReal * pos, const dtReal rad, const dtReal * vel, const dtReal * dvel )


code: void addSegment ( const dtReal * p, const dtReal * q, int flags )


description: [UE] sampling pattern count accessors

code: int getCustomPatternCount() const


description: [UE] get custom sampling pattern

code: bool getCustomSamplingPattern ( int idx, dtReal * angles, dtReal * radii, int * nsamples )


code: const [dtObstacleCircle](API\Runtime\Navmesh\DetourCrowd\dtObstacleCircle) * getObstacleCircle ( const int i )


code: int getObstacleCircleCount() const


code: const [dtObstacleSegment](API\Runtime\Navmesh\DetourCrowd\dtObstacleSegment) * getObstacleSegment ( const int i )


code: int getObstacleSegmentCount() const


code: bool init ( const int maxCircles, const int maxSegments, const int maxCustomPatterns )


description: [UE] main sampling function

code: int sampleVelocity ( const dtReal * pos, const dtReal rad, const dtReal vmax, const dtReal vmult, const dtReal * vel, const dtReal * dvel, dtReal * nvel, const [dtObstacleAvoidanceParams](API\Runtime\Navmesh\DetourCrowd\dtObstacleAvoidanceParams) * params, [dtObstacleAvoidanceDebugData](API\Runtime\Navmesh\DetourCrowd\dtObstacleAvoidanceDebugData) * debug )


code: int sampleVelocityAdaptive ( const dtReal * pos, const dtReal rad, const dtReal vmax, const dtReal vmult, const dtReal * vel, const dtReal * dvel, dtReal * nvel, const [dtObstacleAvoidanceParams](API\Runtime\Navmesh\DetourCrowd\dtObstacleAvoidanceParams) * params, [dtObstacleAvoidanceDebugData](API\Runtime\Navmesh\DetourCrowd\dtObstacleAvoidanceDebugData) * debug )


description: [UE] sample velocity using custom patterns

code: int sampleVelocityCustom ( const dtReal * pos, const dtReal rad, const dtReal vmax, const dtReal vmult, const dtReal * vel, const dtReal * dvel, dtReal * nvel, const [dtObstacleAvoidanceParams](API\Runtime\Navmesh\DetourCrowd\dtObstacleAvoidanceParams) * params, [dtObstacleAvoidanceDebugData](API\Runtime\Navmesh\DetourCrowd\dtObstacleAvoidanceDebugData) * debug )


description: [UE] store new sampling pattern

code: bool setCustomSamplingPattern ( int idx, const dtReal * angles, const dtReal * radii, int nsamples )


className: dtObstacleAvoidanceQuery

code: class dtObstacleAvoidanceQuery


className: dtObstacleCircle

description: This notice may not be removed or altered from any source distribution.

code: struct dtObstacleCircle

dvel

description: Velocity of the obstacle.

np

description: Use for side selection during sampling.

p

description: Position of the obstacle.

rad

description: Radius of the obstacle.

vel

description: Velocity of the obstacle.


className: dtObstacleSegment

code: struct dtObstacleSegment

canIgnore

type: unsigned char: ...

q

description: End points of the obstacle segment.


description: [UE] check if offmesh connection can be traversed, but don't modify corridor yet

code: bool canMoveOverOffmeshConnection ( dtPolyRef offMeshConRef, dtPolyRef * refs, const dtReal * agentPos, dtReal * startPos, dtReal * endPos, [dtNavMeshQuery](API\Runtime\Navmesh\Detour\dtNavMeshQuery) * navquery ) const


description:
If the target is within range, it will be the last corner and have a polygon reference id of zero.
The number of corners returned in the corner buffers. [0 <= value <= `maxCorners_]

code: int findCorners ( dtReal * cornerVerts, unsigned char * cornerFlags, dtPolyRef * cornerPolys, const int maxCorners, [dtNavMeshQuery](API\Runtime\Navmesh\Detour\dtNavMeshQuery) * navquery, const [dtQueryFilter](API\Runtime\Navmesh\Detour\dtQueryFilter) * filter, dtReal pathOffsetDistance, dtReal earlyReachDistance, bool bAllowEarlyReach )


code: bool fixPathStart ( dtPolyRef safeRef, const dtReal * safePos )


description:
The polygon reference id of the last polygon in the corridor, the polygon containing the target.
The polygon reference id of the last polygon in the corridor. (Or zero if there is no path.)

code: dtPolyRef getLastPoly() const


description:
The polygon reference id of the first polygon in the corridor, the polygon containing the position.
The polygon reference id of the first polygon in the corridor. (Or zero if there is no path.)

code: dtPolyRef getFirstPoly() const


code: const dtReal * getNextFixedCorner() const


code: const dtReal * getNextFixedCorner2() const


description:
The corridor's path.
The corridor's path. [(polyRef) *getPathCount()]

code: const dtPolyRef * getPath() const


description:
The number of polygons in the current corridor path.
The number of polygons in the current corridor path.

code: int getPathCount() const


description:
Gets the current position within the corridor. (In the first polygon.)
The current position within the corridor.

code: const dtReal * getPos() const


description:
Gets the current target within the corridor. (In the last polygon.)
The current target within the corridor.

code: const dtReal * getTarget() const


description:
Cannot be called more than once.
True if the initialization succeeded.

code: bool init ( const int maxPath )


description: The path can be invalidated if there are structural changes to the underlying navigation mesh, or the state of a polygon within the path changes resulting in it being filtered out. (E.g. An exclusion or inclusion flag changes.)

code: bool isValid ( const int maxLookAhead, [dtNavMeshQuery](API\Runtime\Navmesh\Detour\dtNavMeshQuery) * navquery, const [dtQueryFilter](API\Runtime\Navmesh\Detour\dtQueryFilter) * filter )


code: bool moveOverOffmeshConnection ( dtPolyRef offMeshConRef, dtPolyRef * refs, const dtReal * agentPos, dtReal * startPos, dtReal * endPos, [dtNavMeshQuery](API\Runtime\Navmesh\Detour\dtNavMeshQuery) * navquery )


description: The resulting position will differ from the desired position if the desired position is not on the navigation mesh, or it can't be reached using a local search.

code: bool movePosition ( const dtReal * npos, [dtNavMeshQuery](API\Runtime\Navmesh\Detour\dtNavMeshQuery) * navquery, const [dtQueryFilter](API\Runtime\Navmesh\Detour\dtQueryFilter) * filter )


description: The resulting target will differ from the desired target if the desired target is not on the navigation mesh, or it can't be reached using a local search.

code: void moveTargetPosition ( const dtReal * npos, [dtNavMeshQuery](API\Runtime\Navmesh\Detour\dtNavMeshQuery) * navquery, const [dtQueryFilter](API\Runtime\Navmesh\Detour\dtQueryFilter) * filter )


description: The more inaccurate the agent movement, the more beneficial this function becomes. Simply adjust the frequency of the call to match the needs to the agent.

code: bool optimizePathTopology ( [dtNavMeshQuery](API\Runtime\Navmesh\Detour\dtNavMeshQuery) * navquery, const [dtQueryFilter](API\Runtime\Navmesh\Detour\dtQueryFilter) * filter )


description: This function is not suitable for long distance searches.

code: bool optimizePathVisibility ( const dtReal * next, const dtReal pathOptimizationRange, [dtNavMeshQuery](API\Runtime\Navmesh\Detour\dtNavMeshQuery) * navquery, const [dtQueryFilter](API\Runtime\Navmesh\Detour\dtQueryFilter) * filter )


description: [UE] remove offmesh connection from corridor

code: void pruneOffmeshConenction ( dtPolyRef offMeshConRef )


description: Essentially, the corridor is set of one polygon in size with the target equal to the position.

code: void reset ( dtPolyRef ref, const dtReal * pos )


description: The size of the path must not exceed the size of corridor's path buffer set duringinit().

code: void setCorridor ( const dtReal * target, const dtPolyRef * polys, const int npath )


code: void setEarlyReachTest ( bool enable )


code: bool trimInvalidPath ( dtPolyRef safeRef, const dtReal * safePos, [dtNavMeshQuery](API\Runtime\Navmesh\Detour\dtNavMeshQuery) * navquery, const [dtQueryFilter](API\Runtime\Navmesh\Detour\dtQueryFilter) * filter )


className: dtPathCorridor

description: All local mesh queries have distance limitations. (Review thedtNavMeshQuerymethods for details.) So the most accurate use case is to move the position and target in small increments. If a large increment is used, then the corridor may not be able to accurately find the new location. Because of this limiation, if a position is moved in a large increment, then compare the desired and resulting polygon references. If the two do not match, then path replanning may be needed. E.g. If you move the target, checkgetLastPoly()to see if it is the expected polygon.

code: class dtPathCorridor


code: const [dtNavMeshQuery](API\Runtime\Navmesh\Detour\dtNavMeshQuery) * getNavQuery() const


code: dtStatus getPathResult ( dtPathQueueRef ref, dtPolyRef * path, int * pathSize, const int maxPath )


code: dtStatus getRequestStatus ( dtPathQueueRef ref ) const


code: bool init ( const int maxPathSize, const int maxSearchNodeCount, [dtNavMesh](API\Runtime\Navmesh\Detour\dtNavMesh) * nav )


code: dtPathQueueRef request ( dtPolyRef startRef, dtPolyRef endRef, const dtReal * startPos, const dtReal * endPos, const dtReal costLimit, const bool requireNavigableEndLocation, const [dtQueryFilter](API\Runtime\Navmesh\Detour\dtQueryFilter) * filter, [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [dtQuerySpecialLinkFilter](API\Runtime\Navmesh\Detour\dtQuerySpecialLinkFilter) > linkFilter )


code: void update ( const int maxIters )


code: void addItem ( const unsigned short id, const dtReal minx, const dtReal miny, const dtReal maxx, const dtReal maxy )


code: int getItemCountAt ( const int x, const int y ) const


code: bool init ( const int maxItems, const dtReal cellSize )


code: int queryItems ( const dtReal minx, const dtReal miny, const dtReal maxx, const dtReal maxy, unsigned short * ids, const int maxIds ) const


className: dtProximityGrid

description: This notice may not be removed or altered from any source distribution.

code: class dtProximityGrid


code: int32 CacheData ( dtReal * Center, dtReal Radius, dtPolyRef CenterPoly, [dtNavMeshQuery](API\Runtime\Navmesh\Detour\dtNavMeshQuery) * NavQuery, [dtQueryFilter](API\Runtime\Navmesh\Detour\dtQueryFilter) * NavFilter )


code: int32 CacheData ( dtReal * Center, dtReal Radius, dtPolyRef CenterPoly, [dtNavMeshQuery](API\Runtime\Navmesh\Detour\dtNavMeshQuery) * NavQuery, uint8 SingleAreaId )


code: int32 FindData ( dtReal * Center, dtReal Radius, dtPolyRef ReqPoly, uint8 SingleAreaId ) const


code: int32 FindData ( dtReal * Center, dtReal Radius, dtPolyRef ReqPoly, [dtQueryFilter](API\Runtime\Navmesh\Detour\dtQueryFilter) * NavFilter ) const


code: void FindEdges ( [dtSharedBoundaryData](API\Runtime\Navmesh\DetourCrowd\dtSharedBoundaryData) & Data, dtPolyRef CenterPoly, [dtNavMeshQuery](API\Runtime\Navmesh\Detour\dtNavMeshQuery) * NavQuery, [dtQueryFilter](API\Runtime\Navmesh\Detour\dtQueryFilter) * NavFilter )


code: bool HasSample ( int32 Idx ) const


className: dtSharedBoundary

code: class dtSharedBoundary

Data

type: TSparseArray<d...

SingleAreaFilter

type: dtQueryFilter


className: dtSharedBoundaryData

code: struct dtSharedBoundaryData

Edges

type: TArray<dtShare...

Filter

type: dtQueryFilter&...

Polys

type: TSet< dtPolyRef...


className: dtSharedBoundaryEdge

code: struct dtSharedBoundaryEdge


className: dtCompressedTile

code: struct dtCompressedTile

compressed

type: unsigned char &...

compressedSize

type: int

header

type: dtTileCacheLaye...

next

type: dtCompressedTil...

salt

description: Counter describing modifications to the tile.


className: dtFixedArray::operator T *

code: operator T *()


code: dtFixedArray ( [dtTileCacheAlloc](API\Runtime\Navmesh\DetourTileCache\dtTileCacheAlloc) * a, const int s )


className: dtFixedArray

code: template<class T> class dtFixedArray


code: dtStatus addObstacle ( const dtReal * pos, const dtReal radius, const dtReal height, dtObstacleRef * result )


code: dtStatus addTile ( unsigned char * data, const int dataSize, unsigned char flags, dtCompressedTileRef * result )


code: dtStatus buildNavMeshTile ( const dtCompressedTileRef ref, class [dtNavMesh](API\Runtime\Navmesh\Detour\dtNavMesh) * navmesh )


code: dtStatus buildNavMeshTilesAt ( const int tx, const int ty, class [dtNavMesh](API\Runtime\Navmesh\Detour\dtNavMesh) * navmesh )


code: void calcTightTileBounds ( const struct [dtTileCacheLayerHeader](API\Runtime\Navmesh\DetourTileCache\dtTileCacheLayerHeader) * header, dtReal * bmin, dtReal * bmax ) const


description: Decodes an obstacle id.

code: unsigned int decodeObstacleIdObstacle ( dtObstacleRef ref ) const


description: Decodes an obstacle salt.

code: unsigned int decodeObstacleIdSalt ( dtObstacleRef ref ) const


description: Decodes a tile salt.

code: unsigned int decodeTileIdSalt ( dtCompressedTileRef ref ) const


description: Decodes a tile id.

code: unsigned int decodeTileIdTile ( dtCompressedTileRef ref ) const


description: Encodes an obstacle id.

code: dtObstacleRef encodeObstacleId ( unsigned int salt, unsigned int it ) const


description: Encodes a tile id.

code: dtCompressedTileRef encodeTileId ( unsigned int salt, unsigned int it ) const


code: const [dtTileCacheObstacle](API\Runtime\Navmesh\DetourTileCache\dtTileCacheObstacle) * getObstacle ( const int i ) const


code: void getObstacleBounds ( const struct [dtTileCacheObstacle](API\Runtime\Navmesh\DetourTileCache\dtTileCacheObstacle) * ob, dtReal * bmin, dtReal * bmax ) const


code: const [dtTileCacheObstacle](API\Runtime\Navmesh\DetourTileCache\dtTileCacheObstacle) * getObstacleByRef ( dtObstacleRef ref )


code: dtObstacleRef getObstacleRef ( const [dtTileCacheObstacle](API\Runtime\Navmesh\DetourTileCache\dtTileCacheObstacle) * obmin ) const


code: const [dtTileCacheParams](API\Runtime\Navmesh\DetourTileCache\dtTileCacheParams) * getParams() const


code: [dtCompressedTile](API\Runtime\Navmesh\DetourTileCache\dtCompressedTile) * getTileAt ( const int tx, const int ty, const int tlayer )


code: const [dtCompressedTile](API\Runtime\Navmesh\DetourTileCache\dtCompressedTile) * getTile ( const int i ) const


code: dtCompressedTileRef getTileRef ( const [dtCompressedTile](API\Runtime\Navmesh\DetourTileCache\dtCompressedTile) * tile ) const


code: int getTilesAt ( const int tx, const int ty, dtCompressedTileRef * tiles, const int maxTiles ) const


code: dtStatus init ( const [dtTileCacheParams](API\Runtime\Navmesh\DetourTileCache\dtTileCacheParams) * params, struct [dtTileCacheAlloc](API\Runtime\Navmesh\DetourTileCache\dtTileCacheAlloc) * talloc, struct [dtTileCacheCompressor](API\Runtime\Navmesh\DetourTileCache\dtTileCacheCompressor) * tcomp, struct [dtTileCacheMeshProcess](API\Runtime\Navmesh\DetourTileCache\dtTileCacheMeshProcess) * tmproc )


code: static const int MAX_UPDATE = 64;


code: static const int MAX_REQUESTS = 64;


className: ObstacleRequestAction

code: enum ObstacleRequestAction { REQUEST_ADD, REQUEST_REMOVE, }


code: dtStatus queryTiles ( const dtReal * bmin, const dtReal * bmax, dtCompressedTileRef * results, int * resultCount, const int maxResults ) const


code: const [dtCompressedTile](API\Runtime\Navmesh\DetourTileCache\dtCompressedTile) * getTileByRef ( dtCompressedTileRef ref ) const


code: dtStatus removeTile ( dtCompressedTileRef ref, unsigned char ** data, int * dataSize )


code: dtStatus removeObstacle ( const dtObstacleRef ref )


code: dtStatus update ( const dtReal, class [dtNavMesh](API\Runtime\Navmesh\Detour\dtNavMesh) * navmesh )


code: virtual void * alloc ( const int size )


className: dtTileCacheAlloc

code: struct dtTileCacheAlloc


code: dtStatus compress ( const unsigned char * buffer, const int bufferSize, unsigned char * compressed, const int maxCompressedSize, int * compressedSize )


code: int maxCompressedSize ( const int bufferSize )


className: dtTileCacheCompressor

code: struct dtTileCacheCompressor


code: dtStatus decompress ( const unsigned char * compressed, const int compressedSize, unsigned char * buffer, const int maxBufferSize, int * bufferSize )


className: dtTileCacheContour

code: struct dtTileCacheContour

area

type: unsigned char

verts

type: unsigned short ...


className: dtTileCacheContourSet

code: struct dtTileCacheContourSet

conts

type: dtTileCacheCont...


className: dtTileCacheDistanceField

code: struct dtTileCacheDistanceField

data

description: Distance for every cell in layer

maxDist

description: Max distance.


className: dtTileCacheLayer

code: struct dtTileCacheLayer

regCount

description: Region count.


className: dtTileCacheLayerHeader

code: struct dtTileCacheLayerHeader

bmin

description: These should be at the bottom, as they are less often used than the rest of the data.

height

description: Dimension of the layer.

hmax

description: Height min/max range (.

maxy

description: Usable sub-region.

version

type: short

description: Data version.


description: Logs a message.

code: virtual void doDtLog ( const char *, const int )


description: Logs a message.

code: void dtLog ( const char * format, ... )


className: dtTileCacheLogContext

code: class dtTileCacheLogContext


code: void markAreas ( struct [dtTileCacheLayer](API\Runtime\Navmesh\DetourTileCache\dtTileCacheLayer) * layer, const dtReal * orig, const dtReal cs, const dtReal ch )


className: dtTileCacheMeshProcess

code: struct dtTileCacheMeshProcess


code: void process ( struct [dtNavMeshCreateParams](API\Runtime\Navmesh\Detour\dtNavMeshCreateParams) * params, unsigned char * polyAreas, unsigned short * polyFlags )


className: dtTileCacheObstacle

code: struct dtTileCacheObstacle

height

type: dtReal

next

type: dtTileCacheObst...


className: dtTileCacheParams

code: struct dtTileCacheParams


description: This function is deprecated use the version that uses dtReal.

code: virtual void markAreas ( struct [dtTileCacheLayer](API\Runtime\Navmesh\DetourTileCache\dtTileCacheLayer) * layer, const float * orig, const float cs, const float ch )


className: dtTileCachePolyMesh

code: struct dtTileCachePolyMesh

areas

description: Area ID of polygons.

flags

description: Per polygon flags.

npolys

description: Number of polygons.

nverts

description: Number of vertices.

polys

description: Polygons of the mesh, nvp*2 elements per polygon.

regs

description: Region ID of polygon.

verts

description: Vertices of the mesh, 3 elements per vertex.


className: dtTileCachePolyMeshDetail

code: struct dtTileCachePolyMeshDetail

meshes

type: unsigned int &#...

description: The sub-mesh data. [Size: 4*nmeshes].

nmeshes

description: The number of sub-meshes defined bymeshes.

ntris

description: The number of triangles intris.

nverts

description: The number of vertices inverts.

tris

description: The mesh triangles. [Size: 4*ntris].

type: dtReal *

description: The mesh vertices. [Size: 3*nverts].


className: rcCompactCell

description: Provides information on the content of a cell column in a compact heightfield.

code: struct rcCompactCell

count

type: unsigned int:  ...

description: Number of spans in the column.

index

description: Indexto the first span in the column.


className: rcCompactSpan

description: Represents a span of unobstructed space within a compact heightfield.

code: struct rcCompactSpan

con

type: unsigned int

description: Packed neighbor connection data.

h

description: The height of the span. (Measured fromy.)

reg

type: unsigned short

description: The id of the region the span belongs to. (Or zero if not in a region.)

y

type: rcSpanUInt

description: The lower extent of the span. (Measured from the heightfield's base.)


className: rcConfig

description: Specifies a configuration to use when performing Recast builds.

code: struct rcConfig

bmax

description: The maximum bounds of the field's AABB. [(x, y, z)] [Units: wu].

bmin

description: The minimum bounds of the field's AABB. [(x, y, z)] [Units: wu].

borderSize

description: The size of the non-navigable border around the heightfield. [Limit: >=0] [Units: vx].

ch

type: rcReal

description: The y-axis cell size to use for fields. [Limit: > 0] [Units: wu].

cs

description: The xz-plane cell size to use for fields. [Limit: > 0] [Units: wu].

detailSampleDist

description: Sets the sampling distance to use when generating the detail mesh.

detailSampleMaxError

description: The maximum distance the detail mesh surface should deviate from heightfield data.

height

description: The height of the field along the z-axis. [Limit: >= 0] [Units: vx].

maxEdgeLen

description: The maximum allowed length for contour edges along the border of the mesh. [Limit: >=0] [Units: vx].

maxSimplificationError

description: The maximum distance a simplified contour's border edges should deviate the original raw contour.

maxVertsPerPoly

description: The maximum number of vertices allowed for polygons generated during the contour to polygon conversion process.

mergeRegionArea

description: Any regions with a span count smaller than this value will, if possible, be merged with larger regions.

minRegionArea

description: The minimum number of cells allowed to form isolated island areas. [Limit: >=0] [Units: vx].

regionChunkSize

description: Size of region chunk [Units: vx].

regionPartitioning

description: Region partitioning method: creating poly mesh.

tileSize

description: The width/height size of tile's on the xz-plane. [Limit: >= 0] [Units: vx].

walkableClimb

description: Maximum ledge height that is considered to still be traversable. [Limit: >=0] [Units: vx].

walkableHeight

description: Minimum floor to 'ceiling' height that will still allow the floor area to be considered walkable.

walkableRadius

description: The distance to erode/shrink the walkable area of the heightfield away from obstructions.

walkableSlopeAngle

description: The maximum slope that is considered walkable. [Limits: 0 <= value < 90] [Units: Degrees].

width

description: The width of the field along the x-axis. [Limit: >= 0] [Units: vx].


description:
Returns the total accumulated time of the specified performance timer.
The accumulated time of the timer, or -1 if timers are disabled or the timer has never been started.

code: virtual int doGetAccumulatedTime ( const rcTimerLabel ) const


description: Logs a message.

code: virtual void doLog ( const rcLogCategory, const char *, const int )


description: Clears all log entries.

code: virtual void doResetLog()


description: Clears all timers. (Resets all to unused.)

code: virtual void doResetTimers()


className: rcCompactHeightfield

description: A compact, static heightfield representing unobstructed space.

code: struct rcCompactHeightfield

areas

type: unsigned char &...

description: Array containing area id data. [Size:spanCount].

bmax

description: The maximum bounds in world space. [(x, y, z)].

bmin

description: The minimum bounds in world space. [(x, y, z)].

borderSize

description: The AABB border size used during the build of the field. (See:rcConfig::borderSize)

cells

type: rcCompactCell&...

description: Array of cells. [Size:width*height].

ch

description: The height of each cell. (The minimum increment along the y-axis.)

cs

description: The size of each cell. (On the xz-plane.)

dist

description: Array containing border distance data. [Size:spanCount].

height

description: The height of the heightfield. (Along the z-axis in cell units.)

maxDistance

description: The maximum distance value of any span within the field.

maxRegions

description: The maximum region id of any span within the field.

spanCount

description: The number of spans in the heightfield.

spans

type: rcCompactSpan&...

description: Array of spans. [Size:spanCount].

walkableClimb

description: The walkable climb used during the build of the field. (See:rcConfig::walkableClimb)

walkableHeight

description: The walkable height used during the build of the field. (See:rcConfig::walkableHeight)

description: The width of the heightfield. (Along the x-axis in cell units.)


description: Starts the specified performance timer.

code: virtual void doStartTimer ( const rcTimerLabel )


description: Stops the specified performance timer.

code: virtual void doStopTimer ( const rcTimerLabel )


description: Enables or disables logging.

code: void enableLog ( bool state )


description: Enables or disables the performance timers.

code: void enableTimer ( bool state )


description:
Returns the total accumulated time of the specified performance timer.
The accumulated time of the timer, or -1 if timers are disabled or the timer has never been started.

code: int getAccumulatedTime ( const rcTimerLabel label ) const


description: Clears all log entries.

code: void resetLog()


description: Example: //WherectxisaninstanceofrcContextandfilepathisachararray.ctx->log(RC_LOG_ERROR,"buildTiledNavigation:Couldnotload'%s'",filepath);

code: void log ( const rcLogCategory category, const char * format, ... )


description: Clears all peformance timers. (Resets all to unused.)

code: void resetTimers()


description: Stops the specified performance timer.

code: void stopTimer ( const rcTimerLabel label )


description: Starts the specified performance timer.

code: void startTimer ( const rcTimerLabel label )


description: Contructor.

code: rcContext ( bool state )


className: rcContext

description: If no logging or timers are required, just pass an instance of this class through the Recast build process.

code: class rcContext

type: bool

description: True if logging is enabled.

description: True if the performance timers are enabled.


className: rcContour

description: Represents a simple, non-overlapping contour in field space.

code: struct rcContour

area

type: unsigned char

description: The area id of the contour.

nrverts

type: int

description: The number of vertices in the raw contour.

nverts

description: The number of vertices in the simplified contour.

reg

description: The region id of the contour.

rverts

type: int *

description: Raw contour vertex and connection data. [Size: 4 *nrverts].

verts

description: Simplified contour vertex and connection data. [Size: 4 *nverts].


className: rcContourSet

description: Represents a group of related contours.

code: struct rcContourSet

bmax

description: The maximum bounds in world space. [(x, y, z)].

bmin

description: The minimum bounds in world space. [(x, y, z)].

borderSize

description: The AABB border size used to generate the source data from which the contours were derived.

ch

description: The height of each cell. (The minimum increment along the y-axis.)

conts

type: rcContour*

description: An array of the contours in the set. [Size:nconts].

cs

description: The size of each cell. (On the xz-plane.)

height

description: The height of the set. (Along the z-axis in cell units.)

nconts

description: The number of contours in the set.

width

description: The width of the set. (Along the x-axis in cell units.)


className: rcEdgeHit

code: struct rcEdgeHit

Hits

type: unsigned char[2...


className: rcHeightfield

description: A dynamic heightfield representing obstructed space.

code: struct rcHeightfield

EdgeHits

type: rcEdgeHit*

description: H + 1 bit flags that indicate what edges cross the z cell boundaries

freelist

type: rcSpan*

description: The next free span.

height

description: The height of the heightfield. (Along the z-axis in cell units.)

pools

type: rcSpanPool*...

description: Linked list of span pools.

RowExt

type: rcRowExt*

description: H structs that give the current x range for this z row

spans

type: rcSpan*...

description: Heightfield of spans (width*height).

tempspans

type: rcTempSpan*...

description: Heightfield of temp spans (width*height).

width

description: The width of the heightfield. (Along the x-axis in cell units.)


className: rcHeightfieldLayer

description: rcHeightfieldLayerSet

code: struct rcHeightfieldLayer

areas

description: Area ids. [Size: Same asheights].

cons

description: Packed neighbor connection information. [Size: Same asheights].

heights

type: unsigned short ...

description: The heightfield. [Size: (width - borderSize*2) * (h - borderSize*2)].

hmax

description: The maximum height bounds of usable data. (Along the y-axis.)

hmin

description: The minimum height bounds of usable data. (Along the y-axis.) //.

maxx

description: The maximum x-bounds of usable data.

maxy

description: The maximum y-bounds of usable data. (Along the z-axis.)

minx

description: The minimum x-bounds of usable data.

miny

description: The minimum y-bounds of usable data. (Along the z-axis.)


className: rcHeightfieldLayerSet

description: rcFreeHeightfieldLayerSet

code: struct rcHeightfieldLayerSet

layers

type: rcHeightfieldLa...

description: The layers in the set. [Size:nlayers].

nlayers

description: The number of layers in the set.


description: BEGIN: addedcontains()

code: bool contains ( int n ) const


description: Does not provide overflow protection.

code: const int & operator[] ( int i ) const


description: Does not provide overflow protection.

code: int & operator[] ( int i )


description:
Returns the value at the end of the array and reduces the size by one.
The value at the end of the array.

code: int pop()


description: Push the specified integer onto the end of the array and increases the size by one.

code: void push ( int item )


description: Using this method ensures the array is at least large enough to hold the specified number of elements. This can improve performance by avoiding auto-resizing during use.

code: void resize ( int n )


description: The current size of the integer array.

code: int size() const


description: Constructs an instance with an initial array size of zero.

code: rcIntArray()


description: Constructs an instance initialized to the specified size.

code: rcIntArray ( int n )


code: rcIntArray &40; const rcIntArray & &41;


className: rcIntArray

description: The array memory is not initialized to zero when the size is manually set during construction or when usingresize.

code: class rcIntArray


className: rcPolyMesh

description: Represents a polygon mesh suitable for use in building a navigation mesh.

code: struct rcPolyMesh

areas

type: unsigned char &...

description: The area id assigned to each polygon. [Length:maxpolys].

bmax

description: The maximum bounds in world space. [(x, y, z)].

bmin

description: The minimum bounds in world space. [(x, y, z)].

borderSize

description: The AABB border size used to generate the source data from which the mesh was derived.

ch

type: rcReal

description: The height of each cell. (The minimum increment along the y-axis.)

cs

description: The size of each cell. (On the xz-plane.)

flags

description: The user defined flags for each polygon. [Length:maxpolys].

maxpolys

description: The number of allocated polygons.

npolys

description: The number of polygons.

nverts

description: The number of vertices.

nvp

description: The maximum number of vertices per polygon.

polys

description: Polygon and neighbor data. [Length:maxpolys* 2 *nvp].

regs

description: The region id assigned to each polygon. [Length:maxpolys].

verts

description: The mesh vertices. [Form: (x, y, z) *nverts].


className: rcPolyMeshDetail

description: Contains triangle meshes that represent detailed height data associated with the polygons in its associated polygon mesh object.

code: struct rcPolyMeshDetail

meshes

type: unsigned int &#...

description: The sub-mesh data. [Size: 4*nmeshes].

nmeshes

description: The number of sub-meshes defined bymeshes.

ntris

description: The number of triangles intris.

nverts

description: The number of vertices inverts.

tris

description: The mesh triangles. [Size: 4*ntris].

type: rcReal *

description: The mesh vertices. [Size: 3*nverts].


className: rcScopedDelete::operator T *

description:
The root array pointer.
The root array pointer.

code: operator T *()


description: Constructs an instance with a null pointer.

code: rcScopedDelete()


description: Constructs an instance with the specified pointer.

code: rcScopedDelete ( T * p )


description: UE: resize and copy existing memory (n = element count), doesn't destruct elements!

code: bool resizeGrow ( int n )


className: rcScopedDelete

description: This class is rarely if ever used by the end user.

code: template<class T> class rcScopedDelete


className: rcScopedStructArrayDelete::operator T *


description: Constructs an array of instances of T.

code: rcScopedStructArrayDelete ( const int n )


className: rcSpan

description: rcHeightfield

code: struct rcSpan

data

type: rcSpanData

description: Span data.

next

description: The next span higher up in column.


className: rcScopedStructArrayDelete

description: if T doesn't require a destructor to be called usercScopedDeleteinstead.

code: template<class T> class rcScopedStructArrayDelete


className: rcSpanCache

code: struct rcSpanCache

x

type: unsigned short


className: rcSpanData

description: rcHeightfield

code: struct rcSpanData

area

type: unsigned int:  ...

description: The area id assigned to the span.

smax

type: rcSpanUInt:  RC...

description: The upper limit of the span. [Limit: <= #RC_SPAN_MAX_HEIGHT].

smin

description: The lower limit of the span. [Limit: <smax].


className: rcSpanPool

description: rcHeightfield

code: struct rcSpanPool

items

description: Array of spans in the pool.

next

description: The next span pool.


className: rcTempSpan

code: struct rcTempSpan

sminmax

description: The lower and upper limit of the span. [Limit: < #smax].


module: NetCommon

code: namespace ECountUnits { enum BitType { Bits, } }


code: namespace ECountUnits { enum ByteType { Bytes, } }


className: FInPacketTraits

description: Contains metadata and flags, which provide information on the traits of a packet - what it contains and how to process it.

code: struct FInPacketTraits

bConnectionlessPacket

type: bool

description: Traits This packet is not associated with a connection

bFromRecentlyDisconnected

description: This is a connectionless packet, from a recently disconnected connection.

ExtendedError

description: If there was an error processing the incoming packet, any additional error information is stored here


className: FOutPacketTraits

code: struct FOutPacketTraits

bAllowCompression

description: Flags - may trigger modification of packet and traits Whether or not the packet can/should be compressed

bIsCompressed

description: Whether or not the packet has been compressed

bIsKeepAlive

description: Whether or not this is a keepalive packet

NumAckBits

description: Traits The number of ack bits in the packet - reflectingUNetConnection.NumAckBits

NumBunchBits

description: The number of bunch bits in the packet - reflectingUNetConnection.NumBunchBits


description: Default constructor

code: FOutPacketTraits()


code: FPacketBufferView ( uint8 * InData, int32 MaxBufferSize )


className: FPacketBufferView

description: Represents a view of a buffer for storing packets. Buffer contents may be modified, but the allocation can not be resized. Should only be stored as a local variable within functions that handle received packets.

code: struct FPacketBufferView

Buffer

type: constTArrayVie...

description: View of the packet buffer, with Num() representing allocated size.


description: Constructs a view of packet data with byte-based size.

code: FPacketDataView ( const uint8 * InData, int32 InCountBytes, [ECountUnits::ByteType](API\Runtime\NetCommon\Net\Common\Packets\ECountUnits__ByteType) )


description: Constructs a view of packet data with bit-based size.

code: FPacketDataView ( const uint8 * InData, int32 InCountBits, [ECountUnits::BitType](API\Runtime\NetCommon\Net\Common\Packets\ECountUnits__BitType) )


className: FPacketDataView

description: Represent a restricted view of packet data, with bit-based size, allowing data to be reassigned to point elsewhere, but not allowing the data being pointed to, to be modified.

code: class FPacketDataView


className: FReceivedPacketView

description: Represents a view of a received packet, which may be modified to update Data it points to and Data size, as a packet is processed. Should only be stored as a local variable within functions that handle received packets.

code: struct FReceivedPacketView

Address

type: TSharedPtr< con...

description: Receive address for the packet

DataView

type: FPacketDataView

description: View of packet data - can reassign to point elsewhere, but don't use to modify packet data

Error

type: ESocketErrors

description: Error if receiving a packet failed

Traits

type: FInPacketTraits

description: Metadata and flags for the received packet, indicating what it contains and how to process it


className: FPacketTimestamp

description: Stores a platform-specific timestamp for a packet. Can be translated for local use byISocketSubsystem::TranslatePacketTimestamp.

code: struct FPacketTimestamp

Timestamp

type: FTimespan

description: The internal platform specific timestamp (does NOT correspond toFPlatformTime::Seconds, may use a different clock source).


description: Internal implementation for AddMeasurement, which outputs a sample if the bins have filled and rolled back over to FirstBinIndex.

module: NetCore

code: void AddMeasurement_Implementation ( double TimeVal, double Value, [TOptional](API\Runtime\Core\IO\TOptional)< double > & OutSample )


className: FBin

code: struct FBin

Count

description: Number of values in this bin

Sum

type: double

description: Sum of all values in this bin


description: Resets the accumulated bin/sample data.

code: void Reset()


description:
Gets a sample of the calculated moving value, based on current bin data.
Outputs the calculated sample value

code: double GetSample() const


description: FBinnedMovingValueBase

code: FBinnedMovingValueBase ( const [TArrayView](API\Runtime\Core\Containers\TArrayView)< [FBin](API\Runtime\NetCore\Net\Core\Analytics\FBinnedMovingValueBase\FBin) > InBins, double InTimePerBin, [EBinnedValueMode](API\Runtime\NetCore\Net\Core\Analytics\UE__Net__EBinnedValueMode) InMode )


className: FBinnedMovingValueBase

description: Base class for moving values, implementing non-templatized data-structure/methods. SeeTBinnedMovingValue.

code: class FBinnedMovingValueBase


className: FLocalNetAnalyticsStruct

description: This base type is required, due to how TThreadedNetAnalyticsData handles tracking of local analytics variables.

code: struct FLocalNetAnalyticsStruct : public [FVirtualDestructor](API\Runtime\Core\Templates\FVirtualDestructor)


description: Accessor for AnalyticsProvider

code: const [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [IAnalyticsProvider](API\Runtime\Analytics\Interfaces\IAnalyticsProvider) > & GetAnalyticsProvider()


description: Initialize the net analytics aggregator

code: void Init()


description: Accessor for NetDriverName


description: Initialize the net analytics aggregator config - must support hotfixing

code: void InitConfig()


description:
NOTE: May return nullptr! Analytics can be selectively enabled/disabled, based on the specified analytics data name.
Returns the newly added analytics data shared reference

code: TNetAnalyticsDataPtr RegisterAnalyticsData_Internal ( TNetAnalyticsDataRef<> InData, const [FName](API\Runtime\Core\UObject\FName) & InDataName, [FString](API\Runtime\Core\Containers\FString) InTypeName )


description: Tells the analytics data holders to finish aggregating their analytics data, and to dispatch it. Only called once, at NetDriver shutdown.

code: void SendAnalytics()


description: FNetAnalyticsAggregator

code: FNetAnalyticsAggregator ( [TSharedPtr](API\Runtime\Core\Templates\TSharedPtr)< [IAnalyticsProvider](API\Runtime\Analytics\Interfaces\IAnalyticsProvider) > InProvider, [FName](API\Runtime\Core\UObject\FName) InNetDriverName )


description: FNetAnalytics

code: virtual void InternalSendAnalytics()


className: FNetAnalyticsAggregator

description: Central object (usually within NetDriver) which handles registration/retrieval/type-checking of net analytics data holders.

code: class FNetAnalyticsAggregator


description: Dispatches the aggregated analytics data - no further data should be added


description: Default constructor

code: FNetAnalyticsData()


description: Called just before the last shared reference to this data is released - used to trigger analytics send in threadsafe version

code: virtual void NotifyFinalRelease()


className: FNetAnalyticsDataConfig

description: Configuration forFNetAnalyticsData- enabling/disabling analytics data, based on DataName

code: struct FNetAnalyticsDataConfig

bEnabled

description: Whether or not the specified analytics data type, is enabled

DataName

type: FName

description: The name of the analytics data type (should match analytics stat name)


className: FNetAnalyticsData

description: Subclassed struct which holds net analytics data which is aggregated or to-be-aggregated, and dispatched upon SendAnalytics

code: struct FNetAnalyticsData : public [FVirtualDestructor](API\Runtime\Core\Templates\FVirtualDestructor), public [TSharedFromThis< FNetAnalyticsData, NetAnalyticsThreadSafety >](API\Runtime\Core\Templates\TSharedFromThis)

Aggregator

type: FNetAnalyticsAg...

description: The parent aggregator responsible for this data instance


className: FNetAnalyticsDataDeleter

description: Custom deleter forFNetAnalyticsDatashared pointers

code: struct FNetAnalyticsDataDeleter


description:
Gets the average sample value
The average sample value

code: double GetAvg() const


code: void operator() ( [FNetAnalyticsData](API\Runtime\NetCore\Net\Core\Analytics\FNetAnalyticsData) * Data )


description:
Gets the current/latest sample value
The current sample value

code: double GetCurrent() const


description:
Gets the minimum sample value encountered
The minimum sample value

code: double GetMin() const


description:
Gets the number of samples tracked
The number of samples

code: int32 GetSampleCount() const


description:
Gets the maximum sample value encountered
The maximum sample value

code: double GetMax() const


description:
Gets the sum of all sample values tracked
The sum of samples

code: double GetSum() const


description: Resets the accumulated sample data

code: void Reset()


className: FSampleMinMaxAvg

description: This base class can handle reading. TheTSampleMinMaxAvgsubclass is compatible as a consumer forTSampleProducer, and is used for writing.

code: class FSampleMinMaxAvg


className: TBinnedMovingAvg

code: typedef [TBinnedMovingAvg](API\Runtime\NetCore\Net\Core\Analytics\FUsingNetStatsUtils\TBinnedMovingAvg)< ConsumerType, NumBins > TBinnedMovingAvg


className: TBinnedDeltaMovingValue

code: typedef [TBinnedDeltaMovingValue](API\Runtime\NetCore\Net\Core\Analytics\FUsingNetStatsUtils\TBinnedDeltaMovi-)< ConsumerType, NumBins, InMode > TBinnedDeltaMovingValue


className: TBinnedMovingValue

code: typedef [TBinnedMovingValue](API\Runtime\NetCore\Net\Core\Analytics\FUsingNetStatsUtils\TBinnedMovingValue)< ConsumerType, NumBins, InMode > TBinnedMovingValue


className: TBinnedMovingSum

code: typedef [TBinnedMovingSum](API\Runtime\NetCore\Net\Core\Analytics\FUsingNetStatsUtils\TBinnedMovingSum)< ConsumerType, NumBins > TBinnedMovingSum


className: TDeltaBinnedMovingAvg

code: typedef [TDeltaBinnedMovingAvg](API\Runtime\NetCore\Net\Core\Analytics\FUsingNetStatsUtils\TDeltaBinnedMovingAvg)< ConsumerType, NumBins > TDeltaBinnedMovingAvg


className: TDeltaBinnedMovingSum

code: typedef [TDeltaBinnedMovingSum](API\Runtime\NetCore\Net\Core\Analytics\FUsingNetStatsUtils\TDeltaBinnedMovingSum)< ConsumerType, NumBins > TDeltaBinnedMovingSum


className: TSampleMinMaxAvg

code: typedef [TSampleMinMaxAvg](API\Runtime\NetCore\Net\Core\Analytics\FUsingNetStatsUtils\TSampleMinMaxAvg)< Mode, MinMaxTimeSeconds > TSampleMinMaxAvg


description: Called by the class/code which is locally collecting analytics data, to commit the local data for aggregation when done.

code: void CommitAnalytics ( TDataStruct & AnalyticsVars )


className: FUsingNetStatsUtils

description: Class level 'using namespace UE::Net', for NetStatsUtils.h types. Inherit as protected.

code: class FUsingNetStatsUtils


className: TBasicNetAnalyticsData

description: The passed in struct will have to implement a CommitAnalytics function, which implements aggregation of the struct data, and the class which references this net analytics data will have to trigger this classes CommitAnalytics on the locally stored struct, when finished collecting local analytics data.

code: template<class TDataStruct> struct TBasicNetAnalyticsData : public [FNetAnalyticsData](API\Runtime\NetCore\Net\Core\Analytics\FNetAnalyticsData), protected TDataStruct


code: GENERATE_MEMBER_FUNCTION_CHECK ( [CommitAnalytics](API\Runtime\NetCore\Net\Core\Analytics\TBasicNetAnalyticsData\CommitAnalytics), void, TDataStruct & )


description: Resets the accumulated bin/sample data (the very first value after this is not measured).


description: Inputs a value whose delta is calculated for measurement, and the approximate time it was measured.

code: void AddMeasurement ( double TimeVal, double Value )


className: Super

code: typedef [TBinnedMovingValue](API\Runtime\NetCore\Net\Core\Analytics\TBinnedMovingValue)< ConsumerType, NumBins, InMode > Super


description: Alias for tracking a moving average. SeeTBinnedMovingValue.

code: typedef [TBinnedMovingValue](API\Runtime\NetCore\Net\Core\Analytics\TBinnedMovingValue)< ConsumerType, NumBins, [EBinnedValueMode::MovingAvg](API\Runtime\NetCore\Net\Core\Analytics\UE__Net__EBinnedValueMode) > TBinnedMovingAvg


className: TSampleProducer

code: typedef [TSampleProducer](API\Runtime\NetCore\Net\Core\Analytics\FUsingNetStatsUtils\TSampleProducer)< ConsumerType > TSampleProducer


description: Use TDeltaBinnedMovingAvg/TDeltaBinnedMovingSum aliases, instead of using this directly.

code: template<typename ConsumerType, int32 NumBins, [EBinnedValueMode](API\Runtime\NetCore\Net\Core\Analytics\UE__Net__EBinnedValueMode) InMode> class TBinnedDeltaMovingValue : private [UE::Net::TBinnedMovingValue< ConsumerType, NumBins, InMode >](API\Runtime\NetCore\Net\Core\Analytics\TBinnedMovingValue)


description: Alias for tracking a moving sum. SeeTBinnedMovingValue.

code: typedef [TBinnedMovingValue](API\Runtime\NetCore\Net\Core\Analytics\TBinnedMovingValue)< ConsumerType, NumBins, [EBinnedValueMode::MovingSum](API\Runtime\NetCore\Net\Core\Analytics\UE__Net__EBinnedValueMode) > TBinnedMovingSum


description: Inputs a measurement value and the approximate time it was measured.


description: The user must consider whether this is accurate/suitable for their use case.

code: void Flush()


description: Main constructor

code: TBinnedMovingValue ( double TimePerBin )


code: namespace TBinParms { static constexpr int32 TBinParms::NumBins ( int32 InNumBins ) }


description: Samples are automatically output when all of the data bins fill and are rolled over - this guarantees perfect accuracy over the full time period. Samples can be manually output using Flush, but this can be less accurate depending on the use case - see Flush for more information.

code: template<typename ConsumerType, int32 NumBins, [EBinnedValueMode](API\Runtime\NetCore\Net\Core\Analytics\UE__Net__EBinnedValueMode) InMode> class TBinnedMovingValue : public [UE::Net::FBinnedMovingValueBase](API\Runtime\NetCore\Net\Core\Analytics\FBinnedMovingValueBase), public [UE::Net::TSampleProducer< ConsumerType >](API\Runtime\NetCore\Net\Core\Analytics\TSampleProducer)


code: namespace TBinParms { static constexpr double TBinParms::TimePerBin ( double InBinSize ) }


description: Alias for tracking a moving average using the delta of the input value. See TBinnedDeltaMovingValue/TBinnedMovingValue.


description: Alias for tracking a moving sum using the delta of the input value. See TBinnedDeltaMovingValue/TBinnedMovingValue.


description: Inputs a sample (usually from aTSampleProducer)

code: void AddSample &40; double Value &41;


code: void PeekMeasurement &40; double TimeVal, double Value &41;


code: namespace TSampleMinMaxAvg< EMinMaxValueMode { template<> class TSampleMinMaxAvg< EMinMaxValueMode::PerMeasurement > : public [UE::Net::FSampleMinMaxAvg](API\Runtime\NetCore\Net\Core\Analytics\FSampleMinMaxAvg) }


code: namespace TSampleMinMaxAvg< EMinMaxValueMode { template<> class TSampleMinMaxAvg< EMinMaxValueMode::PerSample > : public [UE::Net::FSampleMinMaxAvg](API\Runtime\NetCore\Net\Core\Analytics\FSampleMinMaxAvg) }


className: TSampleMinMaxAvg< EMinMaxValueMode::PerTimeSeconds, MinMaxTimeSeconds >::AddSample


className: TSampleMinMaxAvg< EMinMaxValueMode::PerTimeSeconds, MinMaxTimeSeconds >::PeekMeasurement


code: namespace TSampleMinMaxAvg< EMinMaxValueMode { template<int32 MinMaxTimeSeconds> class TSampleMinMaxAvg< EMinMaxValueMode::PerTimeSeconds, MinMaxTimeSeconds > : public [UE::Net::FSampleMinMaxAvg](API\Runtime\NetCore\Net\Core\Analytics\FSampleMinMaxAvg) }


code: template<[EMinMaxValueMode](API\Runtime\NetCore\Net\Core\Analytics\UE__Net__EMinMaxValueMode) Mode, int32 MinMaxTimeSeconds> class TSampleMinMaxAvg


description: Called by subclasses to output a sample to the consumer.

code: void OutputSample ( double Value )


code: namespace TSampleParms { static constexpr int32 TSampleParms::TimeSeconds ( int32 InTimeSeconds ) }


description: Called by subclasses to let the consumer peek at individual measurements

code: template<typename InnerConsumerType, typename> void PeekMeasurement ( double TimeVal, double Value )


code: template<typename InnerConsumerType, typename, int32 UnusedParamForODR> void PeekMeasurement ( double TimeVal, double Value )


description: Sets the consumer object to output samples to.

code: void SetConsumer ( ConsumerType * InConsumer )


description: If the consumer wants to peek at each individual measurement that makes up the sample (for e.g. determining Min/Max measurements), then the consumer must implement: voidPeekMeasurement(double TimeVal, double Val)

code: template<typename ConsumerType> class TSampleProducer


description: The type of moving value to calculate/track

code: namespace UE { namespace Net { enum EBinnedValueMode { MovingAvg, MovingSum, } } }


className: UNetAnalyticsAggregatorConfig

description: Configuration forFNetAnalyticsAggregator- loaded PerObjectConfig, for each NetDriverName

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

NetAnalyticsData

type: TArray<FNetAna...

description: RegistersFNetAnalyticsDatadata holders, by DataName - and specifies whether they are enabled or disabled


description: Determines how Min/Max values are calculated, forFSampleMinMaxAvg

code: namespace UE { namespace Net { enum EMinMaxValueMode { PerSample, PerMeasurement, PerTimeSeconds, } } }


description: UNetAnalyticsAggregatorConfig

code: UNetAnalyticsAggregatorConfig ( const [FObjectInitializer](API\Runtime\CoreUObject\UObject\FObjectInitializer) & ObjectInitializer )


code: namespace ENetworkFailure { const TCHAR * ENetworkFailure::ToString ( [ENetworkFailure::Type](API\Runtime\NetCore\Net\Core\Connection\ENetworkFailure__Type) FailureType ) }


description: Types of network failures broadcast from the engine

code: namespace ENetworkFailure { enum Type { NetDriverAlreadyExists, NetDriverCreateFailure, NetDriverListenFailure, ConnectionLost, ConnectionTimeout, FailureReceived, OutdatedClient, OutdatedServer, PendingConnectionFailure, NetGuidMismatch, NetChecksumMismatch, } }


description: the stringified version of the enum passed in

code: namespace ESecurityEvent { const TCHAR * ESecurityEvent::ToString ( const [ESecurityEvent::Type](API\Runtime\NetCore\Net\Core\Connection\ESecurityEvent__Type) EnumVal ) }


description: Allows PerObjectConfig classes, to override the ini section name used for the PerObjectConfig object.

code: virtual void OverridePerObjectConfigSection ( [FString](API\Runtime\Core\Containers\FString) & SectionName )


description: (DEPRECATED) Security event types used for UE_SECURITY_LOG

code: namespace ESecurityEvent { enum Type { Malformed_Packet = 0, Invalid_Data = 1, Closed = 2, } }


description: Accumulate another escalation counter into this one

code: void AccumulateCounter ( const [FEscalationCounter](API\Runtime\NetCore\Net\Core\Connection\FEscalationCounter) & InCounter )


description: Reset the values of this escalation counter

code: void ResetCounters()


description: Checks if any escalation quota's have been hit, and if so, updates/escalates the severity state

code: void CheckQuotas()


className: FEscalationCounter

description: Struct containing escalation counters covering any time period (e.g. frame/second/arbitrary-period)

code: struct FEscalationCounter

AccumTime

description: Accumulated time spent executing code that could lead to an escalation

Counter

description: Counter for the number of times an event occurred that could lead to an escalation


description:
Whether or not calls to Tick are presently required
Whether Tick is required

code: bool DoesRequireTick() const


description: Returns a reference to the BaseConfig object

code: const [UEscalationManagerConfig](API\Runtime\NetCore\Net\Core\Connection\UEscalationManagerConfig) * GetBaseConfig() const


description:
Accessor for the current frames counter (this is the primary place where counters are incremented).
The current frames counter, of the specified index

code: [FEscalationCounter](API\Runtime\NetCore\Net\Core\Connection\FEscalationCounter) & GetFrameCounter ( int32 CounterIndex )


description: Whether or not the current state is a dormant state, which does not require ticking

code: bool IsDormant() const


description: Sets a new ManagerContext value

code: void SetManagerContext ( [FString](API\Runtime\Core\Containers\FString) InManagerContext )


description: Sets a new NotifySeverityUpdate value

code: void SetNotifySeverityUpdate ( [FNotifySeverityUpdate](API\Runtime\NetCore\Net\Core\Connection\FNotifySeverityUpdate) && InNotifySeverityUpdate )


description: Ticks the escalation manager NOTE: This takes the current time, in seconds, rather than DeltaTime.

code: void TickRealtime ( double TimeSeconds )


className: EValidateTime

code: enum EValidateTime { Optional, MustBeSet, }


className: FEscalationManager

description: No constructors are accessible with public or protected access.

code: class FEscalationManager


description:
Gets all counter time periods specified by the escalation state settings
All of the time periods in the state config settings

code: const [TArray](API\Runtime\Core\Containers\TArray)< int8 > & GetAllTimePeriods() const


description:
Gets the highest counter time period specified by escalation state settings (used for limiting 'CountersPerPeriodHistory' size)
The highest counter time period in the state config settings

code: int8 GetHighestTimePeriod() const


description: Whether or not this escalation state is a 'dormant' state, which allows the escalation manager to disable ticking


description: FEscalationState

code: virtual void ValidateConfigInternal()


description: Validate that the specified escalation time period is within thresholds, and clamp it if necessary

code: void ValidateTimePeriod ( int8 & Value, const TCHAR * PropertyName, [EValidateTime](API\Runtime\NetCore\Net\Core\Connection\FEscalationState\EValidateTime) Requirement )


className: FEscalationState

description: Base struct which defines an escalation state, which is subclassed to implement custom state variables and (de-)escalation quota's. NOTE: Subclasses must also implement theTEscalationStateStaticsinterface.

code: struct FEscalationState : public [FStateStruct](API\Runtime\NetCore\Net\Core\Connection\FStateStruct)

AllTimePeriods

type: TArray< int8 >

description: Cached value for all different time periods in this state

AutoEscalateTime

description: The amount of time, in seconds, spent in the current severity state before it automatically escalates to the next state

bDormant

description: This escalation state is considered to be dormant/inactive - and the escalation manager may no longer need ticking in this state

bLogEscalate

description: Whether or not to log when escalating to this state

CooloffTime

description: The amount of time, in seconds, before the current severity state cools off and de-escalates

HighestTimePeriod

description: Cached runtime config values (UPROPERTY's are copied to FEscalationManager.State during ApplyState, everything else is not) Cached value for the highest time period in this config state

UEscalationManagerConfig

type: friend


description: The per-period historical counters being compared against (excludes SecondCounters and FrameCounters)

code: const TArrayView ( & PerPeriodHistory )


className: FHasHitAnyQuotaParms

description: Parameters for FEscalationState.HasHitAnyQuota

code: struct FHasHitAnyQuotaParms

FrameCounters

description: The current frames counters for factoring-in to comparisons

QuotaType

type: EQuotaType

description: The type of state change quota/thresholds to check

RegisteredCounters

description: The list of custom registered counters, by category, for any custom processing implementation

SecondCounters

description: The current seconds counters for factoring-in to comparisons (excludes FrameCounters)


className: FNetCloseResult

description: TNetResultalias using ENetCloseResult, for use with NetConnection Close errors and recoverable network faults.

code: typedef [TNetResult](API\Runtime\NetCore\Net\Core\Connection\TNetResult)< ENetCloseResult > FNetCloseResult


description: Passthrough forTEscalationManager.AddNewCounter(with caching, NetFaultEscalationManager has not been initialized yet)

code: int32 AddNewCounter ( int32 Count )


className: FPendingCategoryRegister

code: struct FPendingCategoryRegister


description: Accessors Accessor for FaultManager


description: Passthrough forFEscalationManager.GetFrameCounter

code: [FEscalationCounter](API\Runtime\NetCore\Net\Core\Connection\FEscalationCounter) & GetFrameCounter ( int32 CounterIndex )


description: Convenience Forwarding function forFNetResultManager.HandleNetResult, taking FNetCloseResult/ENetCloseResult

code: [EHandleNetResult](API\Runtime\NetCore\Net\Core\Connection\UE__Net__EHandleNetResult) HandleNetResult ( [FNetCloseResult](API\Runtime\NetCore\Net\Core\Connection\FNetCloseResult) && InResult )


description:
(For Counter Categories) Use this to notify fault recovery of a successfully handled fault it should be aware of, within HandleNetResult; this is required for escalation tracking, if that fault type is registered with a counter category.
Returns whether or not fault recovery handled the fault (this value should be returned by the calling HandleNetResult)

code: [EHandleNetResult](API\Runtime\NetCore\Net\Core\Connection\UE__Net__EHandleNetResult) NotifyHandledFault ( [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult) && InResult )


description: Passthrough forTEscalationManager.RegisterCounterCategory(with caching, NetFaultEscalationManager has not been initialized yet)

code: void RegisterCounterCategory ( [ENetFaultCounterCategory](API\Runtime\NetCore\Net\Core\Connection\UE__Net__ENetFaultCounterCategor-) Category, int32 CounterIndex )


className: FNetConnectionFaultRecoveryBase

description: Implements the base/public interface forFNetConnectionFaultRecovery- defined here, to eliminate the need for Engine dependencies.

code: class FNetConnectionFaultRecoveryBase

bDisconnected

description: Whether or not fault recovery has disconnected the NetConnection

FaultManager

type: FNetResultManag...

description: Fault Manager for attempting to recover from connection faults, before triggering Close

LastCounterIndex

description: Tracks the index of the last added counter, before NetFaultEscalationManager is created

NetFaultEscalationManager

type: TUniquePtr<FNe...

description: The escalation manager instance used for tracking/implementing recovery for the various fault types

PendingCategories

type: TArray<FPendin...

description: Tracks counter categories and indexes that are pending registration, before NetFaultEscalationManager is created

TrackedFaultEnumHashes

type: TArray< uint32,...

description: Enum/fast-lookup version of TrackedFaults, using GetTypeHash

TrackedFaults

type: TPimplPtr<FNet...

description: Net Faults which are currently being tracked (reset when escalation manager reaches base/normal state)


description: FNetFaultState

code: static const TCHAR * GetConfigSection()


code: static [UClass](API\Runtime\CoreUObject\UObject\UClass) * GetBaseConfigClass()


description: To be implemented by subclasses


description: FEscalationState


className: FNetFaultState

description: Generic escalation state definition used to implement attempted recovery from faults/errors in the NetConnection level netcode. Fault handlers may have their own separate escalation tracking.

code: struct FNetFaultState : public [FEscalationState](API\Runtime\NetCore\Net\Core\Connection\FEscalationState)

bCloseConnection

type: bool

description: Whether or not the current escalation state should immediately Close the connection

DescalateQuotaFaultPercentPerPeriod

description: Percentage of faults out of total number of recent packets, before de-escalating into this state (adds hysteresis/lag to state changes)

DescalateQuotaFaultsPerPeriod

description: The number of faults per period before de-escalating into this state (adds hysteresis/lag to state changes)

EscalateQuotaFaultPercentPerPeriod

description: Percentage of faults out of total number of recent packets, before the next stage of escalation is triggered

EscalateQuotaFaultsPerPeriod

description: Escalation limits - for escalating to a more strict fault state The number of faults per period before the next stage of escalation is triggered

EscalateQuotaTimePeriod

description: The time period to use for determining escalation/de-escalation quotas (Max: 16)


description: Chains a new result to an existing result, putting the new result at the end of the chain.

code: void AddChainResult ( [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult) && InResult )


code: template<typename T, typename> void AddChainResult ( [TNetResult](API\Runtime\NetCore\Net\Core\Connection\TNetResult)< T > && InResult )


description: FNetResultReturns the result converted to a string

code: [FString](API\Runtime\Core\Containers\FString) DynamicToString ( [ENetResultString](API\Runtime\NetCore\Net\Core\Connection\UE__Net__ENetResultString) ConversionType ) const


code: const FNetResult &42; operator&45;>&40;&41; const


code: FConstIterator &40; const FNetResult & InResult &41;


code: const FNetResult & operator&42;&40;&41; const


className: FConstIterator

description: Chain iterator

code: struct FConstIterator


description:
Determines whether the specified enum result is contained within this result chain NOTE: Does not check the error code
Whether or not the result exists in the chain

code: template<typename ResultEnum, typename> bool HasChainResult ( ResultEnum A ) const


code: [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult) & operator= ( const [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult) & )


code: [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult) & operator= ( [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult) && )


description: Operators

code: bool operator== ( const [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult) & A ) const


code: bool operator!= ( const [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult) & A ) const


code: FNetResult ( const [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult) & )


code: FNetResult ( [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult) && )


code: FNetResult &40; uint64 InResult, const UEnum &42; InResultEnumObj &41;


code: FNetResult &40; uint64 InResult, const UEnum &42; InResultEnumObj, const FString & InErrorContext &41;


description:
NOTE: InResult is moved when result is Closed/Handled, and not moved when result is NotHandled.
Whether or not the result has handled or resulted in close, or went unhandled

code: virtual [EHandleNetResult](API\Runtime\NetCore\Net\Core\Connection\UE__Net__EHandleNetResult) HandleNetResult ( [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult) && InCloseResult )


className: FNetResult

description: Base/non-templatized implementation forTNetResult

code: struct FNetResult


code: [FNetResultHandler](API\Runtime\NetCore\Net\Core\Connection\FNetResultHandler) & operator= ( const [FNetResultHandler](API\Runtime\NetCore\Net\Core\Connection\FNetResultHandler) & )


description: Initializes the result handler

code: virtual void Init()


code: FNetResult &40; uint64 InResult, const UEnum &42; InResultEnumObj, FString && InErrorContext &41;


code: [FNetResultHandler](API\Runtime\NetCore\Net\Core\Connection\FNetResultHandler) & operator= ( [FNetResultHandler](API\Runtime\NetCore\Net\Core\Connection\FNetResultHandler) && )


code: FNetResultHandler ( const [FNetResultHandler](API\Runtime\NetCore\Net\Core\Connection\FNetResultHandler) & )


code: FNetResultHandler ( [FNetResultHandler](API\Runtime\NetCore\Net\Core\Connection\FNetResultHandler) && )


description: FNetResultManager

code: void AddResultHandler ( [TUniquePtr](API\Runtime\Core\Templates\TUniquePtr)< [FNetResultHandler](API\Runtime\NetCore\Net\Core\Connection\FNetResultHandler) > && InResultHandler, [EAddResultHandlerPos](API\Runtime\NetCore\Net\Core\Connection\UE__Net__EAddResultHandlerPos) Position )


description: Adds a new result handler pointer to the result manager (not owned by the result manager)

code: void AddResultHandlerPtr ( [FNetResultHandler](API\Runtime\NetCore\Net\Core\Connection\FNetResultHandler) * InResultHandler, [EAddResultHandlerPos](API\Runtime\NetCore\Net\Core\Connection\UE__Net__EAddResultHandlerPos) Position )


className: FUnhandledResultFunc

description: Callback for handling results which noFNetResultHandlertook ownership of


description:
NOTE: InResult is moved when result is Closed/Handled, and not moved when result is NotHandled.
Whether or not the result has handled or resulted in a close, or went unhandled

code: [EHandleNetResult](API\Runtime\NetCore\Net\Core\Connection\UE__Net__EHandleNetResult) HandleNetResult ( [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult) && InResult )


code: [FNetResultManager](API\Runtime\NetCore\Net\Core\Connection\FNetResultManager) & operator= ( const [FNetResultManager](API\Runtime\NetCore\Net\Core\Connection\FNetResultManager) & )


code: [FNetResultManager](API\Runtime\NetCore\Net\Core\Connection\FNetResultManager) & operator= ( [FNetResultManager](API\Runtime\NetCore\Net\Core\Connection\FNetResultManager) && )


className: FNetResultHandler

description: Result handlers implement result tracking and recovery attempts for select fault types, with the ability to expand custom result handling, within NetDriver subclasses or other arbitrary parts of the netcode.

code: class FNetResultHandler

ResultManager

description: The Result Manager which the result handler is assigned to


description: Sets a callback for handling net results which no result handlers have dealt with

code: void SetUnhandledResultCallback ( [FUnhandledResultFunc](API\Runtime\NetCore\Net\Core\Connection\FNetResultManager\FUnhandledResultFunc) InCallback )


code: FNetResultManager ( [FNetResultManager](API\Runtime\NetCore\Net\Core\Connection\FNetResultManager) && )


code: FNetResultManager ( [FNetResultManager](API\Runtime\NetCore\Net\Core\Connection\FNetResultManager) & )


className: FNotifySeverityUpdate

description: Callback notifying when the escalation state has been updated

code: typedef uint8[TUniqueFunction](API\Runtime\Core\Templates\TUniqueFunction)< void(const [FEscalationState](API\Runtime\NetCore\Net\Core\Connection\FEscalationState) &OldState, const [FEscalationState](API\Runtime\NetCore\Net\Core\Connection\FEscalationState) &NewState, [ESeverityUpdate](API\Runtime\NetCore\Net\Core\Connection\UE__Net__ESeverityUpdate) UpdateType)> FNotifySeverityUpdate


className: FNetResultManager

description: Handles arbitrary net results, which may attempt recovery from errors instead of e.g. immediately closing the NetConnection

code: class FNetResultManager


className: FStateConfigParms

description: Parameters for creating/getting and initializing a newUStatePerObjectConfiginstance

code: struct FStateConfigParms

ConfigClass

type: UClass*

description: TheUStatePerObjectConfigsubclass which will be created

ConfigContext

type: FString

description: Additional context for the configuration section (e.g. the NetDriver name, if configuration differs between NetDriver's)

ConfigSection

type: const TCHAR ...

description: The base configuration section name to use (not the full/complete section name)

StateStruct

type: UStruct*

description: TheFStateStructsubclass struct object (StaticStruct), which will be used for initializing new states


description: FStateStructThe name of this state


code: virtual void ValidateConfigInternal()


description: To be implemented by subclasses


description:
Dynamically adds a new counter not specified in CountersEnum, and returns its index. If NumPrealloc (or Max if not specified) is exceeded, counter tracking will switch from inline allocation to the heap.
The index of the first added counter

code: int32 AddNewCounter ( int32 Count )


description: Initializes the escalation manager

code: void Init ( [FString](API\Runtime\Core\Containers\FString) ConfigContext )


className: FStateStruct

description: Base struct used for states, which is subclassed to define/implement custom states.

code: struct FStateStruct


description: Registers a counter for automatic processing under the specified counter category, as set by CounterCategoriesEnum (each category can implement a different type of custom processing, in HasHitAnyQuota)

code: void RegisterCounterCategory ( int32 CategoryIndex, int32 CounterIndex )


className: TNum

description: The number of static counters in the specified enum (Max must come after the last static counter)

code: static constexpr int32 TNum = (int32)CountersEnum::Max;


className: TNumPrealloc

description: The number of counters to preallocate inline, for newly added counters

code: static constexpr int32 TNumPrealloc = GetCounterNumPrealloc<CountersEnum>();


className: TNumCategories

description: The number of categories in the counter categories enum

code: static constexpr int32 TNumCategories = (int32)CounterCategoriesEnum::Max;


description: Base constructor

code: TEscalationManager()


description: Gets the base configuration section name escalation states will use (not the full/complete section name)

code: static const TCHAR * GetConfigSection()


description: Gets theUEscalationManagerConfigsubclass escalation states are associated with

code: static [UClass](API\Runtime\CoreUObject\UObject\UClass) * GetBaseConfigClass()


className: TEscalationStateStatics

description: Static interface which FEscalateState subclasses must implement (called during construction, so virtuals won't do)

code: template<class T> struct TEscalationStateStatics


className: TEscalationManager

description: The different counter types are specified in sequential order in the 'CountersEnum' enum, followed by a final/unused Max value.

code: template<typename CountersEnum, typename EscalationStateType, typename CounterCategoriesEnum> class TEscalationManager : public [UE::Net::FEscalationManager](API\Runtime\NetCore\Net\Core\Connection\FEscalationManager)


code: const [FString](API\Runtime\Core\Containers\FString) & GetErrorContext() const


description:
Determines whether the specified result is contained within this result chain NOTE: Also checks against the error code
Whether or not the result exists in the chain

code: bool HasChainResult ( const [TNetResult](API\Runtime\NetCore\Net\Core\Connection\TNetResult) & A ) const


description: Operators

code: bool operator== ( ResultEnum A ) const


code: bool operator!= ( ResultEnum A ) const


description:
Convert result to human readable string (ExportText style)
Returns the result converted to a string

code: [FString](API\Runtime\Core\Containers\FString) ToString ( [ENetResultString](API\Runtime\NetCore\Net\Core\Connection\UE__Net__ENetResultString) ConversionType ) const


description: Default constructor

code: TNetResult ( ResultEnum InResult )


description: Accessors

code: bool WasSuccessful() const


className: TNetResult

description: NOTE: Support for using results to modify control flow, depends on how they are implemented in the netcode.

code: template<typename ResultEnum> struct TNetResult : public [UE::Net::FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult)


description: Main constructor, specifying full result (usually error)

code: TNetResult ( ResultEnum InResult, const [FString](API\Runtime\Core\Containers\FString) & InErrorContext )


code: namespace UE { namespace Net { [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult) UE::Net::AddToAndConsumeChainResultPtr ( [TPimplPtr](API\Runtime\Core\Templates\TPimplPtr)< [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult), EPimplPtrMode::DeepCopy > & ResultPtr, [TNetResult](API\Runtime\NetCore\Net\Core\Connection\TNetResult)< ENetCloseResult > && Result ) } }


className: UEscalationManagerConfig

description: Subclass and override 'InitConfigDefaultsInternal' to initialize EscalationSeverity and bEnabled (and other custom config variables).

code: class UEscalationManagerConfig : public [UStatePerObjectConfig](API\Runtime\NetCore\Net\Core\Connection\UStatePerObjectConfig)

EscalationSeverity

type: TArray<FString...

description: Names of the different states for escalating severity, depending on conditions for each state

EscalationSeverityState

type: TArray<TStruct...

description: The different states of escalating severity, depending on the escalation thresholds that have been met


description:
Chains a new result to the end of the result pointer (or takes its place if not set), then consumes/moves/returns the pointer result
Returns the final result, which is either the combined result pointer and new result, or just the new result

code: namespace UE { namespace Net { static [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult) UE::Net::AddToAndConsumeChainResultPtr ( [TPimplPtr](API\Runtime\Core\Templates\TPimplPtr)< [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult), EPimplPtrMode::DeepCopy > & ResultPtr, [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult) && Result ) } }


code: namespace UE { namespace Net { void UE::Net::AddToChainResultPtr ( [TPimplPtr](API\Runtime\Core\Templates\TPimplPtr)< [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult), EPimplPtrMode::DeepCopy > & ResultPtr, [TNetResult](API\Runtime\NetCore\Net\Core\Connection\TNetResult)< ENetCloseResult > && Result ) } }


description: Chains a new result to the result pointer, putting it at the end of the chain - or assigns it to the result pointer, if not set.

code: namespace UE { namespace Net { static void UE::Net::AddToChainResultPtr ( [TPimplPtr](API\Runtime\Core\Templates\TPimplPtr)< [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult), EPimplPtrMode::DeepCopy > & ResultPtr, [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult) && Result ) } }


description:
Casts anFNetResultto a TNetResult, with enum type checking
Returns the resulting TNetResult

code: namespace UE { namespace Net { template<typename T, typename> [TNetResult](API\Runtime\NetCore\Net\Core\Connection\TNetResult)< T > * UE::Net::Cast ( [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult) * InResult ) } }


description: The position to add a newFNetResultHandler, in the list of result handlers

code: namespace UE { namespace Net { enum EAddResultHandlerPos { First, Last, } } }


code: namespace UE { namespace Net { template<typename T, typename> const [TNetResult](API\Runtime\NetCore\Net\Core\Connection\TNetResult)< T > * UE::Net::Cast ( const [FNetResult](API\Runtime\NetCore\Net\Core\Connection\FNetResult) * InResult ) } }


description: Default value forTEscalationManager's CounterCategoriesEnum

code: namespace UE { namespace Net { enum EEmptyCategories { Max, } } }


description: The reason for a severity update

code: namespace UE { namespace Net { enum EEscalateReason { QuotaLimit, AutoEscalate, Deescalate, } } }


description: The result of an UpdateSeverity call

code: namespace UE { namespace Net { enum EEscalateResult { Escalated, Deescalated, NoChange, } } }


description: The result of a HandleNetResult call

code: namespace UE { namespace Net { enum EHandleNetResult { Closed, Handled, NotHandled, } } }


description: Conversion types forTNetResult::ToString

code: namespace UE { namespace Net { enum ENetResultString { WithoutChain, WithChain, ResultEnumOnly, } } }


description: Escalation severity update types

code: namespace UE { namespace Net { enum ESeverityUpdate { Escalate, AutoEscalate, Deescalate, } } }


description: Defines the static counters used forFNetFaultStateescalation manager implementation. Custom counters (such as fromPacketHandler's, Oodle/AES) can be dynamically added.

code: namespace UE { namespace Net { enum ENetFaultCounters { PacketCount, NetConnPacketFault, Max, NumPrealloc = 6, } } }


description: Categories that Net Fault Counters can optionally be registered into, so that they are automatically tracked for escalation management. Primarily used by custom counters (e.g. Oodle/AES), to plug into the main NetConnection Fault Recovery escalation quota tracking.

code: namespace UE { namespace Net { enum ENetFaultCounterCategory { NetworkCorruption, Max, } } }


description:
Inline integer conversion of ENetFaultCounters
The integer value of the specified ENetFaultCounters value

code: namespace UE { namespace Net { uint8 UE::Net::ToInt ( [ENetFaultCounters](API\Runtime\NetCore\Net\Core\Connection\UE__Net__ENetFaultCounters) CounterVal ) } }


description:
Inline integer conversion of ENetFaultCounterCategory
The integer value of the specified ENetFaultCounterCategory value

code: namespace UE { namespace Net { uint8 UE::Net::ToInt ( [ENetFaultCounterCategory](API\Runtime\NetCore\Net\Core\Connection\UE__Net__ENetFaultCounterCategor-) CategoryVal ) } }


description: Applies the specified config state, to an object implementingFStateStruct's. NOTE: Reflection does not work with multiple inheritance.

code: static void ApplyState ( const [FStructOnScope](API\Runtime\CoreUObject\UObject\FStructOnScope) & ConfigState, [FStateStruct](API\Runtime\NetCore\Net\Core\Connection\FStateStruct) * TargetState )


description: Debug function which prints the entire state configuration to the log

code: virtual void DebugDump() const


description: Registers an array of state names to an array of state instances (of a type derived fromFStateStruct). Should be called during LoadStateConfig in subclasses.

code: template<typename U, typename> void RegisterStateConfig ( const [TArray](API\Runtime\Core\Containers\TArray)< [FString](API\Runtime\Core\Containers\FString) > & StateNames, [TArray](API\Runtime\Core\Containers\TArray)< [TStructOnScope](API\Runtime\CoreUObject\UObject\TStructOnScope)< U >> & OutStates )


description: UStatePerObjectConfigReturns a cached or newly created instance of the config section/object

code: static const [UStatePerObjectConfig](API\Runtime\NetCore\Net\Core\Connection\UStatePerObjectConfig) * Get ( [FStateConfigParms](API\Runtime\NetCore\Net\Core\Connection\FStateConfigParms) ConfigParms )


code: void RegisterStateConfig &40; const TArray< FString > & StateNames, TArray< TStructOnScope< FStateStruct >> & OutStates &41;


className: UStatePerObjectConfig

description: Base class for loading and initializing state configuration

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

bEnabled

description: Whether or not this state configuration instance is enabled (states will not load, if not)


description: Create a poller which is assumed to call PollDirtyNetObjects(). AssumesInit()has been called.


description: Destroys the instance if it exists.

code: static void Deinit()


className: FPimpl

description: No destructors are accessible with public or protected access.

code: class FPimpl


className: EmptyDirtyObjects

code: static EmptyDirtyObjects;


description: Destroy the handle, making it invalid in the process.

code: void Destroy&40;&41;


className: InvalidIndex

code: enum &123; InvalidIndex = ~0U &125;


code: FPollHandle & operator&61; &40; const FPollHandle & &41;


code: FPollHandle & operator&61; &40; FPollHandle && &41;


code: FPollHandle &40; FPollHandle && &41;


code: FPollHandle &40; uint32 InIndex &41;


code: FPollHandle &40; const FPollHandle & &41;


description: If push model is compiled inInit()creates a new instance that is used by functions that need it. Checks that no instance exists.

code: static void Init()


className: Instance

code: static [FPimpl](API\Runtime\NetCore\Net\Core\DirtyNetObjectTracker\FGlobalDirtyNetObjectTracker\FPimpl) * Instance = nullptr;


description: Returns the objects with dirty state. The reference can only be assumed to be valid until the next call toResetDirtyNetObjects(). A matching call toResetDirtyNetObjects()is required but should not be called until all pollers have had the chance to callGetDirtyNetObjects(). AssumesInit()has been called.

code: static const [TSet](API\Runtime\Core\Containers\TSet)< [FNetHandle](API\Runtime\NetCore\Net\Core\NetHandle\FNetHandle) > & GetDirtyNetObjects ( const [FPollHandle](API\Runtime\NetCore\Net\Core\DirtyNetObjectTracker\FGlobalDirtyNetObjectTracker\FPollHandle) & )


description: Returns true if an object has been marked as dirty since the last reset. AssumesInit()has been called.

code: static bool IsNetObjectStateDirty ( [FNetHandle](API\Runtime\NetCore\Net\Core\NetHandle\FNetHandle) )


description: Marks an object as dirty. AssumesInit()has been called.

code: static void MarkNetObjectStateDirty ( [FNetHandle](API\Runtime\NetCore\Net\Core\NetHandle\FNetHandle) )


description: Clears the set of dirty net objects.GetDirtyNetObjects()must be called first. Some synchronization is needed between pollers such that all pollers have the chance to callGetDirtyNetObjects()first. It may be a good idea to have the polling done in a NetDriver TickFlush() or similar and resetting done in PostTickFlush(). AssumesInit()has been called.

code: static void ResetDirtyNetObjects ( const [FPollHandle](API\Runtime\NetCore\Net\Core\DirtyNetObjectTracker\FGlobalDirtyNetObjectTracker\FPollHandle) & )


className: FGlobalDirtyNetObjectTracker

code: class FGlobalDirtyNetObjectTracker


code: namespace UE { namespace Net { void UE::Net::MarkNetObjectStateDirty ( [FNetHandle](API\Runtime\NetCore\Net\Core\NetHandle\FNetHandle) NetHandle ) } }


description: SetNumBits

code: void AddBits ( uint32 BitCount )


description: DO NOT USE DIRECTLY Range-based for loop support iterating over set bits and returning the index to the set bit.


description: Clear the bit with the specified index

code: void ClearBit ( uint32 Index )


description: Clear the bits in the specified range

code: void ClearBits ( uint32 StartIndex, uint32 Count )