<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.frictionalgames.com/page?action=history&amp;feed=atom&amp;title=Hpl3%3AGame%3Ascripting%3Afunction_reference%3Ahelper_ai</id>
	<title>Hpl3:Game:scripting:function reference:helper ai - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.frictionalgames.com/page?action=history&amp;feed=atom&amp;title=Hpl3%3AGame%3Ascripting%3Afunction_reference%3Ahelper_ai"/>
	<link rel="alternate" type="text/html" href="https://wiki.frictionalgames.com/page?title=Hpl3:Game:scripting:function_reference:helper_ai&amp;action=history"/>
	<updated>2026-05-15T09:40:25Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>https://wiki.frictionalgames.com/page?title=Hpl3:Game:scripting:function_reference:helper_ai&amp;diff=596&amp;oldid=prev</id>
		<title>Maintenance script: Upload from wiki</title>
		<link rel="alternate" type="text/html" href="https://wiki.frictionalgames.com/page?title=Hpl3:Game:scripting:function_reference:helper_ai&amp;diff=596&amp;oldid=prev"/>
		<updated>2020-07-09T13:46:48Z</updated>

		<summary type="html">&lt;p&gt;Upload from wiki&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== helper_ai.hps ==&lt;br /&gt;
&lt;br /&gt;
Helper functions for AI&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===== Agent_SetStaticCollider =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void Agent_SetStaticCollider(const tString &amp;amp;in asAgentName,&lt;br /&gt;
                             bool abX)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Set if the agent will collide with the environment (objects and stuff will still collide with it!)&lt;br /&gt;
* '''asAgentName''': name of the agent. Wildcard supported.&lt;br /&gt;
* '''abX''': If the character should be static and NOT move about.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Agent_SetSensesActive =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void Agent_SetSensesActive(const tString &amp;amp;in asAgentName,&lt;br /&gt;
                           bool abX)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Set if the agent should have its senses (hearing/vision/etc) enabled. Usually implemented on a specific basis.&lt;br /&gt;
* '''asAgentName''': name of the agent. Wildcard supported.&lt;br /&gt;
* '''abX''': If the senses should be active.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Agent_RevealPlayerPosition =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void Agent_RevealPlayerPosition(const tString &amp;amp;in asAgentName,&lt;br /&gt;
                                bool bForceRedetect=false)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Reveals the player's current position to the agent.&lt;br /&gt;
* '''asAgentName''': name of the agent. Wildcard supported.&lt;br /&gt;
* '''bForceRedetect''': true = forces the agent to detect the player again.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Agent_SetViewRangeMul =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void Agent_SetViewRangeMul(const tString &amp;amp;in asAgentName,&lt;br /&gt;
                           float afRangeMul)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Sets the view range multiplier of the specified agent&lt;br /&gt;
* '''asAgentName''': name of the agent. Wildcard supported.&lt;br /&gt;
* '''afRangeMul''': the range multiplier to set.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Agent_FaceEntity =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void Agent_FaceEntity(const tString &amp;amp;in asAgentName,&lt;br /&gt;
                      const tString &amp;amp;in asLookAtTarget)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Instantly sets the yaw of the agent to make it look at the specified entity.&lt;br /&gt;
* '''asAgentName''': name of the agent. Wildcard supported.&lt;br /&gt;
* '''asLookAtTarget''': name of entity to look at.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Agent_TeleportFeetToEntity =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void Agent_TeleportFeetToEntity(const tString &amp;amp;in asAgentName,&lt;br /&gt;
                                const tString &amp;amp;in asTargetName)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Teleport the agent's foot position to a specific other entity.&lt;br /&gt;
* '''asAgentName''': name of the entity to teleport.&lt;br /&gt;
* '''asTargetName''': name of the entity to teleport to.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Agent_SetAutoDisableWhenOutOfSightActive =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void Agent_SetAutoDisableWhenOutOfSightActive(const tString &amp;amp;in asAgentName,&lt;br /&gt;
                                              bool abActive,&lt;br /&gt;
                                              float afMinDistance)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
When active, the agent will be a disabled (SetActive(false)) when a certain distance away from the player and no longer seen.&lt;br /&gt;
* '''asAgentName''': name of the agent.Wildcard supported.&lt;br /&gt;
* '''abActive''': if the disabling is active&lt;br /&gt;
* '''afMinDistance''': The minimum distance from the player for this to happen.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Agent_SetAutoDisableCallback =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void Agent_SetAutoDisableCallback(const tString &amp;amp;in asAgentName,&lt;br /&gt;
                                  const tString &amp;amp;in asCallbackFunc)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Sets the function that is called when the disabling made by Agent_SetAutoDisableWhenOutOfSightActive happens&lt;br /&gt;
* '''asAgentName''': name of the agent.Wildcard supported.&lt;br /&gt;
* '''asCallbackFunc''': Function called when the disabling happens. syntax: void f(const tString&amp;amp;in asEntityName)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Agent_PlayerDetected =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
bool Agent_PlayerDetected(const tString &amp;amp;in asAgentName)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Checks if the agent has dected the player&lt;br /&gt;
* '''asAgentName''': name of the agent.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== CharMover_SetDirection =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void CharMover_SetDirection(const tString &amp;amp;in asEntityName,&lt;br /&gt;
                            eLuxCharMoveDirection aDir)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Sets the direction used by a character&lt;br /&gt;
* '''asEntityName''': name of the entity with the CharMover.&lt;br /&gt;
* '''aDir''': direction that the character will face when walking&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== CharMover_TurnToEntity =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void CharMover_TurnToEntity(const tString &amp;amp;in asEntityName,&lt;br /&gt;
                            const tString &amp;amp;in asTurnToEntityName,&lt;br /&gt;
                            const tString &amp;amp;in asTurnedToGoalCallbackFunc=&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Turns the character to a specifc entity. Broadcasts the entity message eLuxEntityMessage_TurningDone when done.&lt;br /&gt;
* '''asEntityName''': name of the entity with the CharMover.&lt;br /&gt;
* '''asTurnToEntityName''': the entity which center will be turn towards&lt;br /&gt;
* '''asTurnedToGoalCallbackFunc''': function called when it has turned to the goal. Syntax: void Func(const tString&amp;amp; in asEntityName)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== CharMover_TurnInstantlyToEntity =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void CharMover_TurnInstantlyToEntity(const tString &amp;amp;in asEntityName,&lt;br /&gt;
                                     const tString &amp;amp;in asTurnToEntityName)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Turns the character directly to a specifc entity. Broadcasts the entity message eLuxEntityMessage_TurningDone when done.&lt;br /&gt;
* '''asEntityName''': name of the entity with the CharMover.&lt;br /&gt;
* '''asTurnToEntityName''': the entity which center will be turn towards&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== CharMover_MoveToEntity =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void CharMover_MoveToEntity(const tString &amp;amp;in asEntityName,&lt;br /&gt;
                            const tString &amp;amp;in asMoveToEntityName,&lt;br /&gt;
                            const cVector3f &amp;amp;in avOffset=cVector3f(0))&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Moves the character to a entity. Note that for non-flying characters, goal position should be the feet postion.&lt;br /&gt;
* '''asEntityName''': name of the entity with the CharMover.&lt;br /&gt;
* '''asMoveToEntityName''': the entity which center will be turn towards&lt;br /&gt;
* '''avOffset''': an offset for the move postion.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== CharMover_MoveToPos =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void CharMover_MoveToPos(const tString &amp;amp;in asEntityName,&lt;br /&gt;
                         const cVector3f &amp;amp;in avPosition)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Moves the character to a position. Note that for non-flying characters, goal position should be the feet postion.&lt;br /&gt;
* '''asEntityName''': name of the entity with the CharMover.&lt;br /&gt;
* '''avPosition''': position to move to&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== CharMover_SetSpeedState =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void CharMover_SetSpeedState(const tString &amp;amp;in asEntityName,&lt;br /&gt;
                             int alIndex)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Sets the speed state of the character.&lt;br /&gt;
* '''asEntityName''': name of the entity with the CharMover.&lt;br /&gt;
* '''alIndex''': speed state index&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== CharMover_SetUseMoveStateAnimations =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void CharMover_SetUseMoveStateAnimations(const tString &amp;amp;in asEntityName,&lt;br /&gt;
                                         bool abX)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If the charmover should change animations depending based on movement.&lt;br /&gt;
* '''asEntityName''': name of the entity with the CharMover.&lt;br /&gt;
* '''abX''': if charmover shouuld take care of animations&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== CharMover_PlayAnimation =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void CharMover_PlayAnimation(const tString &amp;amp;in asEntityName,&lt;br /&gt;
                             const tString &amp;amp;in asAnimName,&lt;br /&gt;
                             float afFadeTime=0.3f,&lt;br /&gt;
                             bool abLoop=false,&lt;br /&gt;
                             bool abPlayTransition=true,&lt;br /&gt;
                             const tString &amp;amp;in asCallback=&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== CharMover_StopTurning =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void CharMover_StopTurning(const tString &amp;amp;in asEntityName)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Stops any turning in the charmover&lt;br /&gt;
* '''asEntityName''': name of the entity with the CharMover.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== CharMover_SetTurnRate =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void CharMover_SetTurnRate(const tString &amp;amp;in asEntityName,&lt;br /&gt;
                           float afMinBreakAngle,&lt;br /&gt;
                           float afBreakAngleMul,&lt;br /&gt;
                           float afTurnSpeedMul,&lt;br /&gt;
                           float afTurnSpeedMax)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Sets the turning behavior of the charmover.&lt;br /&gt;
* '''asEntityName''': name of the entity with the CharMover.&lt;br /&gt;
* '''afMinBreakAngle''': the minimum angle at which the charmover should slow down when turning.&lt;br /&gt;
* '''afBreakAngleMul''': value multiplied by the angle to calculate how much the charmover should slow down when turning.&lt;br /&gt;
* '''afTurnSpeedMul''': value multiplied by the angle to calculate how fast the charmover should turn.&lt;br /&gt;
* '''afTurnSpeedMax''': the max turn speed.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== CharMover_SetMaxForwardSpeed =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void CharMover_SetMaxForwardSpeed(const tString &amp;amp;in asEntityName,&lt;br /&gt;
                                  float afMaxSpeed)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Sets the max forward speed of the CharMover.&lt;br /&gt;
* '''asEntityName''': name of the entity with the CharMover.&lt;br /&gt;
* '''afMaxSpeed''': max forward speed to set.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== CharMover_SetWallAvoidanceActive =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void CharMover_SetWallAvoidanceActive(const tString &amp;amp;in asEntityName,&lt;br /&gt;
                                      bool abX)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Enables or disables wall avoidance on the specified CharMover.&lt;br /&gt;
* '''asEntityName''': name of the entity with the CharMover.&lt;br /&gt;
* '''abX''': the state to set.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Pathfinder_MoveTo =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void Pathfinder_MoveTo(const tString &amp;amp;in asEntityName,&lt;br /&gt;
                       const cVector3f &amp;amp;in avPos,&lt;br /&gt;
                       const tString &amp;amp;in asCallbackFunc,&lt;br /&gt;
                       float afUpdateFreq=0,&lt;br /&gt;
                       bool abExactStopAtEnd=true,&lt;br /&gt;
                       const tString &amp;amp;in asResultCallbackFunc=&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Moves an entity containing a Pathfinder component to a position. The entity message eLuxEntityMessage_EndOfPath is broadcasted when complete.&lt;br /&gt;
* '''asEntityName''': name of the entity with the pathfinder.&lt;br /&gt;
* '''avPos''': position to move to.&lt;br /&gt;
* '''asCallbackFunc''': The name of callback called when end is reach. Syntax: void Func(const tString&amp;amp; in asEntityName, bool abReachedEnd)&lt;br /&gt;
* '''afUpdateFreq''': The number of times per second that the path will be updated. O or below means never update.&lt;br /&gt;
* '''abExactStopAtEnd''': If the goal position should be hit exactly.&lt;br /&gt;
* '''asResultCallbackFunc''': The name of callback called when the pathfinding has been performed. Syntax: void Func(bool abSuccesful)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Pathfinder_MoveToNode =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void Pathfinder_MoveToNode(const tString &amp;amp;in asEntityName,&lt;br /&gt;
                           const tString &amp;amp;in asNodeName,&lt;br /&gt;
                           const tString &amp;amp;in asCallbackFunc=&amp;quot;&amp;quot;,&lt;br /&gt;
                           float afUpdateFreq=0,&lt;br /&gt;
                           bool abExactStopAtEnd=true,&lt;br /&gt;
                           const tString &amp;amp;in asResultCallbackFunc=&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Moves an entity containing a Pathfinder component to a node. The entity message eLuxEntityMessage_EndOfPath is broadcasted when complete.&lt;br /&gt;
* '''asEntityName''': name of the entity with the pathfinder.&lt;br /&gt;
* '''asNodeName''': name of the node to move to.&lt;br /&gt;
* '''asCallbackFunc''': The name of callback called when end is reach. Syntax: void Func(const tString&amp;amp; in asEntityName, bool abReachedEnd)&lt;br /&gt;
* '''afUpdateFreq''': The number of times per second that the path will be updated. O or below means never update.&lt;br /&gt;
* '''abExactStopAtEnd''': If the goal node should be hit exactly.&lt;br /&gt;
* '''asResultCallbackFunc''': The name of callback called when the pathfinding has been performed. Syntax: void Func(bool abSuccesful)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Pathfinder_MoveToEntity =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void Pathfinder_MoveToEntity(const tString &amp;amp;in asPathfinderName,&lt;br /&gt;
                             const tString &amp;amp;in asEntityName,&lt;br /&gt;
                             const tString &amp;amp;in asCallbackFunc,&lt;br /&gt;
                             float afUpdateFreq=0,&lt;br /&gt;
                             bool abExactStopAtEnd=true,&lt;br /&gt;
                             const cVector3f &amp;amp;in avGoalPosOffset=cVector3f(0),&lt;br /&gt;
                             const tString &amp;amp;in asResultCallbackFunc=&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Moves an entity containing a Pathfinder component to a entity. The entity message eLuxEntityMessage_EndOfPath is broadcasted when complete.&lt;br /&gt;
* '''asPathfinderName''': name of the entity with the pathfinder.&lt;br /&gt;
* '''asEntityName''': name of the entity to move to.&lt;br /&gt;
* '''asCallbackFunc''': The name of callback called when end is reach. Syntax: void Funcconst&lt;br /&gt;
* '''afUpdateFreq''': The number of times per second that the path will be updated. O or below means never update.&lt;br /&gt;
* '''abExactStopAtEnd''': If the goal entity should be hit exactly.&lt;br /&gt;
* '''avGoalPosOffset''': if the goal pos should be offset&lt;br /&gt;
* '''asResultCallbackFunc''': The name of callback called when the pathfinding has been performed. Syntax: void Func(bool abSuccesful)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Pathfinder_Stop =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void Pathfinder_Stop(const tString &amp;amp;in asEntityName)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Stops any movement.&lt;br /&gt;
* '''asEntityName''': name of the entity with the pathfinder.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Pathfinder_SetEndCallback =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void Pathfinder_SetEndCallback(const tString &amp;amp;in asEntityName,&lt;br /&gt;
                               const tString &amp;amp;in asCallbackFunc)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Sets the callback for when the pathfinder has reached its goal.&lt;br /&gt;
* '''asEntityName''': name of the entity with the pathfinder.&lt;br /&gt;
* '''asCallbackFunc''': The name of callback called when end is reach. Syntax: void Funcconst&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Pathfinder_IsMoving =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
bool Pathfinder_IsMoving(const tString &amp;amp;in asEntityName)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Checks if the pathfinder is currently moving.&lt;br /&gt;
* '''asEntityName''': name of the entity with the pathfinder.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Pathfinder_Track_Clear =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void Pathfinder_Track_Clear(const tString &amp;amp;in asEntityName)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Clears all track nodes and stops track.&lt;br /&gt;
* '''asEntityName''': name of the entity with the pathfinder.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Pathfinder_Track_Add =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void Pathfinder_Track_Add(const tString &amp;amp;in asEntityName,&lt;br /&gt;
                          const tString &amp;amp;in asNodeName,&lt;br /&gt;
                          float afMinWaitTime=0,&lt;br /&gt;
                          float afMaxWaitTime=-1,&lt;br /&gt;
                          const tString &amp;amp;in asAnimName=&amp;quot;&amp;quot;,&lt;br /&gt;
                          bool abLoopAnim=false)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Adds a track node to be followed.&lt;br /&gt;
* '''asEntityName''': name of the entity with the pathfinder.&lt;br /&gt;
* '''asNodeName''': Name of the path node to be added.&lt;br /&gt;
* '''afMinWaitTime''': minimum time before the entity moves to the next node.&lt;br /&gt;
* '''afMaxWaitTime''': maximum time before the entity moves to the next node. If &amp;lt;0, then the value will be same as afMinWaitTime&lt;br /&gt;
* '''asAnimName''': animation played when at node, per entity.&lt;br /&gt;
* '''abLoopAnim''': if the animtion should be looped, per entity.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Pathfinder_Track_Start =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void Pathfinder_Track_Start(const tString &amp;amp;in asEntityName,&lt;br /&gt;
                            bool abLoop=false,&lt;br /&gt;
                            float afUpdateFreq=1.0f,&lt;br /&gt;
                            const tString &amp;amp;in asEndOfTrackCallback=&amp;quot;&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Starts a track&lt;br /&gt;
* '''asEntityName''': name of the entity with the pathfinder.&lt;br /&gt;
* '''abLoop''': if the path should loop&lt;br /&gt;
* '''afUpdateFreq''': the frequency at which the path is recculated&lt;br /&gt;
* '''asEndOfTrackCallback''': Callback called when path is over. Syntax: void MyFunc(const tString&amp;amp; in asEntityName)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Pathfinder_Track_Stop =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void Pathfinder_Track_Stop(const tString &amp;amp;in asEntityName)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Stops the current track.&lt;br /&gt;
* '''asEntityName''': name of the entity with the pathfinder.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== BarkMachine_SetActive =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void BarkMachine_SetActive(const tString &amp;amp;in asEntityName,&lt;br /&gt;
                           bool abActive)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Sets if the barkmachine is active (this will only affect random sounds)&lt;br /&gt;
* '''asEntityName''': name of the entity with the barkmachine.&lt;br /&gt;
* '''abActive''': if active or not.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== BarkMachine_PlayVoice =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void BarkMachine_PlayVoice(const tString &amp;amp;in asEntityName,&lt;br /&gt;
                           const tString &amp;amp;in asSubject,&lt;br /&gt;
                           int alPrio,&lt;br /&gt;
                           float afMinDistance=-1,&lt;br /&gt;
                           float afMaxDistance=-1,&lt;br /&gt;
                           float afMaxPlayerListeningRange=-1)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Plays a voice subject as a bark&lt;br /&gt;
* '''asEntityName''': name of the entity with the barkmachine.&lt;br /&gt;
* '''asSubject''': the name of the voice subject&lt;br /&gt;
* '''alPrio''': the prio of the voice, if there is already one playing in the same scene prio must be higher for this to play.&lt;br /&gt;
* '''afMinDistance''': The distance where volume starts getting quiet. If below 0, default is used.&lt;br /&gt;
* '''afMaxDistance''': The maximum hearing range. If below 0, default is used.&lt;br /&gt;
* '''afMaxPlayerListeningRange''': The maximum that subtitles are displayed. If below 0, default is used.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== HeadTracker_SetActive =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void HeadTracker_SetActive(const tString &amp;amp;in asEntityName,&lt;br /&gt;
                           bool abX)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Turns on and off head tracking.&lt;br /&gt;
* '''asEntityName''': name of the entity with the HeadTracker.&lt;br /&gt;
* '''abX''': if headtracking is enabled or not&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== HeadTracker_IsActive =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
bool HeadTracker_IsActive(const tString &amp;amp;in asEntityName)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
If head tracking is active or not&lt;br /&gt;
* '''asEntityName''': name of the entity with the HeadTracker.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== HeadTracker_SetAngleOffset =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void HeadTracker_SetAngleOffset(const tString &amp;amp;in asEntityName,&lt;br /&gt;
                                float afX)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Sets the offset of the headtracker angle useful if the character is not facing in the direction of the meshentity forward vector.&lt;br /&gt;
* '''asEntityName''': name of the entity with the HeadTracker.&lt;br /&gt;
* '''afX''': The angle offset, in degrees&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== HeadTracker_SetTargetEntity =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void HeadTracker_SetTargetEntity(const tString &amp;amp;in asEntityName,&lt;br /&gt;
                                 const tString &amp;amp;in asTargetEntityName)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Sets the target of the head tracking&lt;br /&gt;
* '''asEntityName''': name of the entity with the HeadTracker.&lt;br /&gt;
* '''asTargetEntityName''': The target of the tracking&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== NPC_SetVoiceName =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void NPC_SetVoiceName(const tString &amp;amp;in asNpcName,&lt;br /&gt;
                      const tString &amp;amp;in asVoiceName)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Sets the voice name for an NPC. This also automatically sets the source of the voice as the npc.&lt;br /&gt;
* '''asNpcName''': name of the NPC.&lt;br /&gt;
* '''asVoiceName''': name of the voice as defined in the voicehandler file..&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== NPC_IsTalking =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
bool NPC_IsTalking(const tString &amp;amp;in asNpcName)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Checks if the NPC is being talked to.&lt;br /&gt;
* '''asNpcName''': name of the NPC.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== NPC_SetCanBeTalkedTo =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void NPC_SetCanBeTalkedTo(const tString &amp;amp;in asNpcName,&lt;br /&gt;
                          bool abX)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Sets if the NPC can be talked to (interacted with)&lt;br /&gt;
* '''asNpcName''': name of the NPC. Wildcard supported.&lt;br /&gt;
* '''abX''': if can be talked to.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== NPC_SetMainAnimation =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void NPC_SetMainAnimation(const tString &amp;amp;in asNpcName,&lt;br /&gt;
                          const tString &amp;amp;in asAnim,&lt;br /&gt;
                          bool abPlayTransition=true,&lt;br /&gt;
                          const tString &amp;amp;in asCallbackFunc=&amp;quot;&amp;quot;,&lt;br /&gt;
                          float afFadeTime=0.5,&lt;br /&gt;
                          bool abGlobalSpace=false)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Sets and plays the main animation of the NPC. This will also turn off any movement animations.&lt;br /&gt;
* '''asNpcName''': name of the NPC. Wildcard supported.&lt;br /&gt;
* '''asAnim''': The name of the animation&lt;br /&gt;
* '''abPlayTransition''': If a transition animation should be played.&lt;br /&gt;
* '''asCallbackFunc''': name of callback function. Only used if there is a transition animation. Syntax void Func(const tString &amp;amp;in asEntityName, const tString &amp;amp;in asAnimName)&lt;br /&gt;
* '''afFadeTime''': time it takes to fade to the animation.&lt;br /&gt;
* '''abGlobalSpace''': if the animation takes place in global space&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== NPC_PlayExtraAnimation =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void NPC_PlayExtraAnimation(const tString &amp;amp;in asNpcName,&lt;br /&gt;
                            const tString &amp;amp;in asAnim,&lt;br /&gt;
                            float afFadeTime=0.3,&lt;br /&gt;
                            const tString &amp;amp;in asCallbackFunc=&amp;quot;&amp;quot;,&lt;br /&gt;
                            bool abGlobalSpace=false)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Plays an extra animation for the NPC. Will return to main animation (see NPC_SetMainAnimation) when done.&lt;br /&gt;
* '''asNpcName''': name of the NPC. Wildcard supported.&lt;br /&gt;
* '''asAnim''': The name of the animation&lt;br /&gt;
* '''afFadeTime''': The time it takes to fade in the animation.&lt;br /&gt;
* '''asCallbackFunc''': name of callback function. Syntax void Func(tString &amp;amp;in asEntityName, tString &amp;amp;in asAnimName)&lt;br /&gt;
* '''abGlobalSpace''': the animation will be played in global space coordinates (?)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== NPC_StopAllAnimations =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void NPC_StopAllAnimations(const tString &amp;amp;in asNpcName,&lt;br /&gt;
                           float afFadeTime=0.0f)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Stops all animations for the NPC.&lt;br /&gt;
* '''asNpcName''': name of the NPC. Wildcard supported.&lt;br /&gt;
* '''afFadeTime''': The time it takes to fade out.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== NPC_StopExtraAnimation =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void NPC_StopExtraAnimation(const tString &amp;amp;in asNpcName,&lt;br /&gt;
                            float afFadeTime=0.0f)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Stops currently playing extra animation for the NPC.&lt;br /&gt;
* '''asNpcName''': name of the NPC. Wildcard supported.&lt;br /&gt;
* '''afFadeTime''': The time it takes to fade out.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== NPC_PlayEmotion =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void NPC_PlayEmotion(const tString &amp;amp;in asNpcName,&lt;br /&gt;
                     const tString &amp;amp;in asEmotion,&lt;br /&gt;
                     float afDuration,&lt;br /&gt;
                     float afWeight=1.0f,&lt;br /&gt;
                     float afFadeTime=0.25f)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Plays a face emotion for the duration&lt;br /&gt;
* '''asNpcName''': name of the NPC. Wildcard supported.&lt;br /&gt;
* '''asEmotion''': name of the emotion, &amp;quot;Smile/Sad/Happy/Surprised/Wink/Wondering/Angry/Worried/Scared&amp;quot;&lt;br /&gt;
* '''afDuration''': how long the emotion should be active&lt;br /&gt;
* '''afWeight''': how strong the emotion should be&lt;br /&gt;
* '''afFadeTime''': fade in and out time for the emotion&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== NPC_MoveToNode =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void NPC_MoveToNode(const tString &amp;amp;in asNpcName,&lt;br /&gt;
                    const tString &amp;amp;in asNodeName,&lt;br /&gt;
                    const tString &amp;amp;in asCallbackFunc)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Moves the NPC to a path node.&lt;br /&gt;
* '''asNpcName''': name of the NPC. Wildcard supported.&lt;br /&gt;
* '''asNodeName''': The name of the path node.&lt;br /&gt;
* '''asCallbackFunc''': The name of callback called when end is reach. Syntax: void Func(const tString&amp;amp; in asEntityName, bool abReachedEnd)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Critter_SetGroupEntity =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void Critter_SetGroupEntity(const tString &amp;amp;in asCritter,&lt;br /&gt;
                            const tString &amp;amp;in asGroupEntity)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Sets the entity the critter should flock around&lt;br /&gt;
* '''asCritter''': name of the Critter. Wildcard supported.&lt;br /&gt;
* '''asGroupEntity''': The name of the group entity.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===== Critter_AddExtraEscapeEntity =====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c++&amp;quot;&amp;gt;&lt;br /&gt;
void Critter_AddExtraEscapeEntity(const tString &amp;amp;in asCritter,&lt;br /&gt;
                                  const tString &amp;amp;in asEscapeEntity)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Adds an entity that the critter should try to avoid the same way it does with the player. (Only implemented in FishSmall right now)&lt;br /&gt;
* '''asCritter''': name of the Critter. Wildcard supported.&lt;br /&gt;
* '''asEscapeEntity''': The name of the entity to escape from&lt;br /&gt;
&lt;br /&gt;
----&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
		
	</entry>
</feed>