<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.thedarkmod.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Obsttorte</id>
	<title>The DarkMod Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.thedarkmod.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Obsttorte"/>
	<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Special:Contributions/Obsttorte"/>
	<updated>2026-04-29T01:50:25Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=TDM_Script_Reference&amp;diff=29783</id>
		<title>TDM Script Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=TDM_Script_Reference&amp;diff=29783"/>
		<updated>2022-08-14T09:08:22Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: /* scriptEvent float getEntityFlag(string flagName); */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page has been generated automatically by the tdm_gen_script_event_doc console command.&lt;br /&gt;
&lt;br /&gt;
Generated by The Dark Mod 2.10, code revision 9853, last update: 2022-03-20 09:00&lt;br /&gt;
&lt;br /&gt;
{{tdm-scripting-reference-intro}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;toclimit-4&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
= TDM Script Event Reference =&lt;br /&gt;
&lt;br /&gt;
== All Events ==&lt;br /&gt;
=== Alphabetic List ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;accelSound&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound to be played when the mover accelerates.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;accelTime&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the acceleration time. Set this acceleration time before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;accelTo&#039;&#039;&#039;(float speed, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates an acceleration to the given speed over the given time in seconds.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;acos&#039;&#039;&#039;(float cosine); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the angle in degrees with the given cosine.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CTarget_AddObjectives&#039;&#039;, &#039;&#039;CTarget_CallScriptFunction&#039;&#039;, &#039;&#039;CTarget_ChangeEntityRelation&#039;&#039;, &#039;&#039;CTarget_ChangeLockState&#039;&#039;, &#039;&#039;CTarget_ChangeTarget&#039;&#039;, &#039;&#039;CTarget_InterMissionTrigger&#039;&#039;, &#039;&#039;CTarget_ItemRemove&#039;&#039;, &#039;&#039;CTarget_SetEntityRelation&#039;&#039;, &#039;&#039;CTarget_SetFrobable&#039;&#039;, &#039;&#039;CTarget_SetObjectiveComponentState&#039;&#039;, &#039;&#039;CTarget_SetObjectiveState&#039;&#039;, &#039;&#039;CTarget_SetObjectiveVisibility&#039;&#039;, &#039;&#039;CTarget_SetRelations&#039;&#039;, &#039;&#039;CTarget_SetTeam&#039;&#039;, &#039;&#039;CTarget_StartConversation&#039;&#039;, &#039;&#039;idAFEntity_Generic&#039;&#039;, &#039;&#039;idAFEntity_WithAttachedHead&#039;&#039;, &#039;&#039;idAI&#039;&#039;, &#039;&#039;idActivator&#039;&#039;, &#039;&#039;idAnimated&#039;&#039;, &#039;&#039;idBeam&#039;&#039;, &#039;&#039;idBrittleFracture&#039;&#039;, &#039;&#039;idCameraAnim&#039;&#039;, &#039;&#039;idCameraView&#039;&#039;, &#039;&#039;idCombatNode&#039;&#039;, &#039;&#039;idDamagable&#039;&#039;, &#039;&#039;idEarthQuake&#039;&#039;, &#039;&#039;idEntityFx&#039;&#039;, &#039;&#039;idExplodable&#039;&#039;, &#039;&#039;idForceField&#039;&#039;, &#039;&#039;idFuncAASObstacle&#039;&#039;, &#039;&#039;idFuncAASPortal&#039;&#039;, &#039;&#039;idFuncPortal&#039;&#039;, &#039;&#039;idFuncSmoke&#039;&#039;, &#039;&#039;idItem&#039;&#039;, &#039;&#039;idLight&#039;&#039;, &#039;&#039;idListener&#039;&#039;, &#039;&#039;idMoveable&#039;&#039;, &#039;&#039;idMover&#039;&#039;, &#039;&#039;idMover_Binary&#039;&#039;, &#039;&#039;idPhantomObjects&#039;&#039;, &#039;&#039;idPlayerStart&#039;&#039;, &#039;&#039;idPortalSky&#039;&#039;, &#039;&#039;idRiser&#039;&#039;, &#039;&#039;idRotater&#039;&#039;, &#039;&#039;idShaking&#039;&#039;, &#039;&#039;idSound&#039;&#039;, &#039;&#039;idStaticEntity&#039;&#039;, &#039;&#039;idTarget_CallObjectFunction&#039;&#039;, &#039;&#039;idTarget_Damage&#039;&#039;, &#039;&#039;idTarget_EnableLevelWeapons&#039;&#039;, &#039;&#039;idTarget_EndLevel&#039;&#039;, &#039;&#039;idTarget_FadeEntity&#039;&#039;, &#039;&#039;idTarget_FadeSoundClass&#039;&#039;, &#039;&#039;idTarget_Give&#039;&#039;, &#039;&#039;idTarget_LightFadeIn&#039;&#039;, &#039;&#039;idTarget_LightFadeOut&#039;&#039;, &#039;&#039;idTarget_PostScriptEvent&#039;&#039;, &#039;&#039;idTarget_Remove&#039;&#039;, &#039;&#039;idTarget_RemoveWeapons&#039;&#039;, &#039;&#039;idTarget_SessionCommand&#039;&#039;, &#039;&#039;idTarget_SetFov&#039;&#039;, &#039;&#039;idTarget_SetGlobalShaderTime&#039;&#039;, &#039;&#039;idTarget_SetInfluence&#039;&#039;, &#039;&#039;idTarget_SetKeyVal&#039;&#039;, &#039;&#039;idTarget_SetModel&#039;&#039;, &#039;&#039;idTarget_SetShaderParm&#039;&#039;, &#039;&#039;idTarget_SetShaderTime&#039;&#039;, &#039;&#039;idTarget_Show&#039;&#039;, &#039;&#039;idTarget_WaitForButton&#039;&#039;, &#039;&#039;idTrigger_Count&#039;&#039;, &#039;&#039;idTrigger_EntityName&#039;&#039;, &#039;&#039;idTrigger_Fade&#039;&#039;, &#039;&#039;idTrigger_Hurt&#039;&#039;, &#039;&#039;idTrigger_Multi&#039;&#039;, &#039;&#039;idTrigger_Timer&#039;&#039;, &#039;&#039;idTrigger_Touch&#039;&#039;, &#039;&#039;idVacuumSeparatorEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activateContacts&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Activate objects sitting on this object.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activateTargets&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Causes this entity to activate all it&#039;s targets. Similar to how a trigger activates entities.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addDescendant&#039;&#039;&#039;(entity vine); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmVine&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addInvItem&#039;&#039;&#039;(entity inv_item); ====&lt;br /&gt;
&lt;br /&gt;
:Adds the given item to the inventory. Depending on the type the passed entity will be removed from the game (as for loot items) or hidden.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addItemToInv&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Adds the entity to the given entity&#039;s inventory. Depending on the type the entity will be removed from the game (as for loot items) or hidden. Example: $book-&amp;gt;addItemToInv($player1);&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addTarget&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Add a target to this entity.&lt;br /&gt;
::&#039;&#039;target&#039;&#039;: the entity to add as target&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addToClip&#039;&#039;&#039;(float amount); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;alert&#039;&#039;&#039;(string type, float val); ====&lt;br /&gt;
&lt;br /&gt;
:ai generalized alerts&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;alertAI&#039;&#039;&#039;(string type, float amount, entity actor); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
::&#039;&#039;type&#039;&#039;: alert type&lt;br /&gt;
::&#039;&#039;amount&#039;&#039;: alert amount&lt;br /&gt;
::&#039;&#039;actor&#039;&#039;: actor causing alert&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowDamage&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:The AI can take damage again.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowDrop&#039;&#039;&#039;(float allow); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowHiddenMovement&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:Normally, when hidden, monsters do not run physics. This enables physics when hidden.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowMovement&#039;&#039;&#039;(float allow); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;ammoAvailable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Number of shots left in inventory&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;ammoInClip&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;angToForward&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a forward vector for the given Euler angles.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;angToRight&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a right vector for the given Euler angles.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;angToUp&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns an up vector for the given Euler angles.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animDistance&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the distance that the anim travels. If the entity has multiple anims with animName, the distance may not match the anim that is played. Use chooseAnim to get a non-random anim and pass that string into animDistance.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animDone&#039;&#039;&#039;(float channel, float blendOutFrames); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the animation playing on the given channel is completed considering a number of blend frames.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animIsPaused&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Return whether the given anim channel is paused&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animLength&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the length of the anim in seconds. If the entity has multiple anims with animName, length may not match the anim that is played. Use chooseAnim to get a non-random anim and pass that string into animLength.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;animState&#039;&#039;&#039;(float channel, string stateFunction, float blendFrame); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a new animation state script function for the given channel.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;animTurn&#039;&#039;&#039;(float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Enable/disable animation controlled turning.&lt;br /&gt;
::&#039;&#039;angle&#039;&#039;: Pass in the maximum # of degrees the animation turns. Use an amount of 0 to disable.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;applyImpulse&#039;&#039;&#039;(entity source, float bodyid, vector point, vector impulse); ====&lt;br /&gt;
&lt;br /&gt;
:Applies an impulse to the entity. Example: entity.applyImpulse($player1, 0, entity.getOrigin(), &#039;0 0 2&#039;);&lt;br /&gt;
::&#039;&#039;source&#039;&#039;: Pass $null_entity or the entity that applies the impulse&lt;br /&gt;
::&#039;&#039;bodyid&#039;&#039;: For articulated figures, ID of the body, 0 for the first (main) body. Otherwise use 0.&lt;br /&gt;
::&#039;&#039;point&#039;&#039;: Point on the body where the impulse is applied to&lt;br /&gt;
::&#039;&#039;impulse&#039;&#039;: Vector of the impulse&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;asin&#039;&#039;&#039;(float sine); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the angle in degrees with the given sine.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;assert&#039;&#039;&#039;(float condition); ====&lt;br /&gt;
&lt;br /&gt;
:Breaks if the condition is zero. (Only works in debug builds.)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attach&#039;&#039;&#039;(entity ent, string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Attach an entity to the AI. Entity spawnArgs checked for attachments are:  - &amp;quot;origin&amp;quot;, &amp;quot;angles&amp;quot;, and &amp;quot;joint&amp;quot;. These must be set prior to calling attach.&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the desired name of the attachment, e.g., &#039;melee_weapon&#039;&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attachToPos&#039;&#039;&#039;(entity ent, string position, string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Attach an entity to the AI, using a named attachment position&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the desired name of the attachment, e.g., &#039;melee_weapon&#039;&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attackBegin&#039;&#039;&#039;(string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attackEnd&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;attackMelee&#039;&#039;&#039;(string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the attack hit&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;attackMissile&#039;&#039;&#039;(string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:returns projectile fired&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bark&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Let the AI bark a certain sound.&lt;br /&gt;
::&#039;&#039;sound&#039;&#039;: sound name, e.g. &#039;snd_warn_response&#039;&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;becomeNonSolid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Makes the moveable non-solid for other entities.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;, &#039;&#039;idMoveable&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;becomeRagdoll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:enables the ragdoll if the entity has one&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;becomeSolid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bind&#039;&#039;&#039;(entity master); ====&lt;br /&gt;
&lt;br /&gt;
:Fixes this entity&#039;s position and orientation relative to another entity, such that when the master entity moves, so does this entity.&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: the entity to bind to&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bindPosition&#039;&#039;&#039;(entity master); ====&lt;br /&gt;
&lt;br /&gt;
:Fixes this entity&#039;s position (but not orientation) relative to another entity, such that when the master entity moves, so does this entity.&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: the entity to bind to&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bindToBody&#039;&#039;&#039;(entity master, float bodyID, float orientated); ====&lt;br /&gt;
&lt;br /&gt;
:Bind to AF body&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: entity to bind to&lt;br /&gt;
::&#039;&#039;bodyID&#039;&#039;: AF body ID to bind to&lt;br /&gt;
::&#039;&#039;orientated&#039;&#039;: binds the orientation as well as position, if set to 1&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bindToJoint&#039;&#039;&#039;(entity master, string boneName, float rotateWithMaster); ====&lt;br /&gt;
&lt;br /&gt;
:Fixes this entity&#039;s position and orientation relative to a bone on another entity, such that when the master&#039;s bone moves, so does this entity.&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: the entity to bind to&lt;br /&gt;
::&#039;&#039;boneName&#039;&#039;: the bone name&lt;br /&gt;
::&#039;&#039;rotateWithMaster&#039;&#039;: -&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bob&#039;&#039;&#039;(float speed, float phase, vector distance); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation back and forth along the given vector with the given speed and phase.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;burn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;cacheSoundShader&#039;&#039;&#039;(string shaderName); ====&lt;br /&gt;
&lt;br /&gt;
:Ensure the specified sound shader is loaded by the system. Prevents cache misses when playing sound shaders.&lt;br /&gt;
::&#039;&#039;shaderName&#039;&#039;: the sound shader to cache&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;, &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;callFunction&#039;&#039;&#039;(string functionName); ====&lt;br /&gt;
&lt;br /&gt;
:Calls a function on an entity&#039;s script object. See also callGlobalFunction().&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;callGlobalFunction&#039;&#039;&#039;(string functionName, entity other); ====&lt;br /&gt;
&lt;br /&gt;
:calls a global function and passes the other entity along as the first argument calls the function in a new thread, so it continues executing in the current thread right away (unlike entity.callFunction( &amp;quot;blah&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;callGui&#039;&#039;&#039;(float handle, string namedEvent); ====&lt;br /&gt;
&lt;br /&gt;
:Calls a named event in a GUI.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canBecomeSolid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canBeUsedBy&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the entity can be used by the argument entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canHitEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canHitEnemyFromAnim&#039;&#039;&#039;(string anim); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canHitEnemyFromJoint&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canPlant&#039;&#039;&#039;(vector traceStart, vector traceEnd, entity ignore, entity vine); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canReachEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if character can walk to enemy&#039;s position. For walking monsters, enemy should be near the floor.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canReachEntity&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if character can walk to entity&#039;s position. For walking monsters, entity should be near the floor.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canReachPosition&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if character can walk to specified position. For walking monsters, position should be near the floor.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSee&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;, &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSeeEntity&#039;&#039;&#039;(entity target, float useLighting); ====&lt;br /&gt;
&lt;br /&gt;
:This is a general version of idAI::canSee, that can be used by all entities. It doesn&#039;t regard FOV, it just performs a trace to check whether the target is occluded by world geometry. Is probably useful for stim/response as well Pass useLighting = true to take the lighting of the target entity into account. Use &amp;quot;isEntityHidden&amp;quot; as a script event with a threshold. The constant threshold value for useLighting is defined within the SDK in game/entity.h.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSeeExt&#039;&#039;&#039;(entity ent, float b_useFOV, float b_useLighting); ====&lt;br /&gt;
&lt;br /&gt;
:This is an alternate version of canSee that can optionally choose to use field of vision and lighting calculations.&lt;br /&gt;
::&#039;&#039;b_useFOV&#039;&#039;: If 0 the entity will be visible even if the AI&#039;s back is turned to it&lt;br /&gt;
::&#039;&#039;b_useLighting&#039;&#039;: If b_useLighting is 0 the entity will be visible in complete darkness. If it is 1, the entity will only be visible if there is light shining on it, but the slightest light is enought. Use &amp;quot;isEntityHidden&amp;quot; as a script event with a threshold instead.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSeePositionExt&#039;&#039;&#039;(vector position, float b_useFOV, float b_useLighting); ====&lt;br /&gt;
&lt;br /&gt;
:This is an alternate version of canSeeExt that tests a location rather than an entity. Note that any actor at the position may make it not seeable from a distance.&lt;br /&gt;
::&#039;&#039;b_useFOV&#039;&#039;: If 0 the entity will be visible even if the AI&#039;s back is turned to it&lt;br /&gt;
::&#039;&#039;b_useLighting&#039;&#039;: If 0 the entity will be visible in complete darkness&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canWater&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmVine&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;ceil&#039;&#039;&#039;(float x); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the smallest integer that is greater than or equal to the given value.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeEntityRelation&#039;&#039;&#039;(entity ent, float relationChange); ====&lt;br /&gt;
&lt;br /&gt;
:This changes the current relation to an entity by adding the new amount.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeInvIcon&#039;&#039;&#039;(string name, string category, string icon); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the inventory icon of the given item in the given category to &amp;lt;icon&amp;gt;.&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: name of the item&lt;br /&gt;
::&#039;&#039;category&#039;&#039;: the item&#039;s category&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeInvItemCount&#039;&#039;&#039;(string name, string category, float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Decreases the inventory item stack count by amount. The item is addressed using the name and category of the item. These are usually defined on the inventory item entity (&amp;quot;inv_name&amp;quot;, &amp;quot;inv_category&amp;quot;)  Amount can be both negative and positive.&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: name of the item&lt;br /&gt;
::&#039;&#039;category&#039;&#039;: the item&#039;s category&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeInvLightgemModifier&#039;&#039;&#039;(string name, string category, float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the lightgem modifier value of the given item. Valid arguments are between 0 and 32 (which is the maximum lightgem value).&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: name of the item&lt;br /&gt;
::&#039;&#039;category&#039;&#039;: the item&#039;s category&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;changeLootAmount&#039;&#039;&#039;(float type, float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Changes the loot amount of the given Type (e.g. GOODS) by &amp;lt;amount&amp;gt;.  The mission statisic for loot found gets changed too.  The new value of the changed type is returned (e.g. the new GOODS value if this has been changed).  Note: The LOOT_TOTAL type can&#039;t be changed and 0 is returned.&lt;br /&gt;
::&#039;&#039;type&#039;&#039;: one of: LOOT_GOLD, LOOT_GOODS, LOOT_JEWELRY&lt;br /&gt;
::&#039;&#039;amount&#039;&#039;: can be negative&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeWeaponName&#039;&#039;&#039;(string weaponName, string displayName); ====&lt;br /&gt;
&lt;br /&gt;
:Changes the display name of the given weapon item to something different. Pass an empty string to reset the display name to the definition as found in the weaponDef.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeWeaponProjectile&#039;&#039;&#039;(string weaponName, string projectileDefName); ====&lt;br /&gt;
&lt;br /&gt;
:Changes the projectile entityDef name of the given weapon (e.g. &amp;quot;broadhead&amp;quot;) to the specified entityDef (e.g. &amp;quot;atdm:projectile_broadhead&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;chargeAttack&#039;&#039;&#039;(string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;checkAAS&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;checkAbsence&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:description missing&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;checkAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Ensures that the animation exists and causes an error if it doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;chooseAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Chooses a random anim and returns the name. Useful for doing move tests on anims.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearActiveInventoryMap&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clear the active inventory map entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearActiveInventoryMapEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clear the active inventory map entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearAllJoints&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Removes any custom transforms on all joints.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimatedEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearBurn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearController&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Need separate clearController because scripting doesn&#039;t like passing in $null_entity? (greebo: one could remove this function and set the argument type of setController to &#039;E&#039;.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CAIVehicle&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clears the enemy entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearFlyOffset&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the preferred height relative to the player&#039;s view height to fly at to the value set in the def file.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearJoint&#039;&#039;&#039;(float jointnum); ====&lt;br /&gt;
&lt;br /&gt;
:Removes any custom transforms on the specified joint.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimatedEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearMouseDeadTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearPersistantArgs&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clears data that persists between maps.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearSignal&#039;&#039;&#039;(float signalNum); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the callback function on the specified signal.&lt;br /&gt;
::&#039;&#039;signalNum&#039;&#039;: signal number&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearSignalThread&#039;&#039;&#039;(float signalNum, entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Clears the script callback function set for when the given signal is raised on the given entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearWatered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmVine&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;clipSize&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Close&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Closes the frobmover, regardless of its previous state. Mover must be open, otherwise nothing happens.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;closePortal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Closes the renderer portal associated with this mover.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;, &#039;&#039;idMover_Binary&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;closestEnemyToPoint&#039;&#039;&#039;(vector point); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the enemy closest to the given location.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;closestReachableEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Used for determining tactile alert targets&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;closestReachableEnemyOfEntity&#039;&#039;&#039;(entity team_mate); ====&lt;br /&gt;
&lt;br /&gt;
:Finds another character&#039;s closest reachable enemy&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;copyBind&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:copy bind information of other to this entity (i.e., bind this entity to the same entity that other is bound to)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;copySpawnArgs&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:copies the spawn args from an entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;cos&#039;&#039;&#039;(float degrees); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the cosine of the given angle in degrees.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;createMissile&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:returns projectile created&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;createMissileFromDef&#039;&#039;&#039;(string defName, string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;createOverlay&#039;&#039;&#039;(string guiFile, float layer); ====&lt;br /&gt;
&lt;br /&gt;
:Creates a GUI overlay. (must be used on the player)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;createProjectile&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;CreateTimer&#039;&#039;&#039;(float stimId, float hour, float minutes, float seconds, float milliseconds); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;CrossProduct&#039;&#039;&#039;(vector vec1, vector vec2); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the cross product of the two vectors.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;cullAll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cull (remove from world) all entities.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;Seed&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;customDeath&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;damage&#039;&#039;&#039;(entity inflictor, entity attacker, vector dir, string damageDefName, float damageScale); ====&lt;br /&gt;
&lt;br /&gt;
:Deals damage to this entity (gets translated into the idEntity::Damage() method within the SDK).&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: the entity causing the damage (maybe a projectile)&lt;br /&gt;
::&#039;&#039;attacker&#039;&#039;: the &amp;quot;parent&amp;quot; entity of the inflictor, the one that is responsible for the inflictor (can be the same)&lt;br /&gt;
::&#039;&#039;dir&#039;&#039;: the direction the attack is coming from.&lt;br /&gt;
::&#039;&#039;damageDefName&#039;&#039;: the name of the damage entityDef to know what damage is being dealt to &amp;lt;self&amp;gt; (e.g. &amp;quot;damage_lava&amp;quot;)&lt;br /&gt;
::&#039;&#039;damageScale&#039;&#039;: the scale of the damage (pass 1.0 as default, this should be ok).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dampenSound&#039;&#039;&#039;(float dampen); ====&lt;br /&gt;
&lt;br /&gt;
:Toggle whether the shattering sound is dampened on the window, e.g., when covered by moss.&lt;br /&gt;
::&#039;&#039;dampen&#039;&#039;: 1 = dampened, 0 = not dampened&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idBrittleFracture&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;deathMenu&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debug_tdm_material&#039;&#039;&#039;(string file); ====&lt;br /&gt;
&lt;br /&gt;
:For temporary debuging purposes only. Should be removed eventually.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugArrow&#039;&#039;&#039;(vector color, vector start, vector end, float size, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugBounds&#039;&#039;&#039;(vector color, vector mins, vector maxs, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugCircle&#039;&#039;&#039;(vector color, vector origin, vector dir, float radius, float numSteps, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugLine&#039;&#039;&#039;(vector color, vector start, vector end, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;decelSound&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound to be played when the mover decelerates.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;decelTime&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the deceleration time. Set this deceleration time before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;decelTo&#039;&#039;&#039;(float speed, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a deceleration to the given speed over the given time in seconds.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;destroyOverlay&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Destroys a GUI overlay. (must be used on the player)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;directDamage&#039;&#039;&#039;(entity damageTarget, string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;Seed&#039;&#039;, &#039;&#039;idMover_Binary&#039;&#039;, &#039;&#039;idTrigger&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableAFPush&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableAnimchannel&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Used to disable a certain animchannel (for example if the ai is dead)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableClip&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableEyeFocus&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables eye focus.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableGravity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;DisableLegIK&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:disables leg IK&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disablePain&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables pain animations.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableSplineAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables aligning the mover with the spline direction.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;DisableWalkIK&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:disables walk IK&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Lowers and disables the player weapon.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;distanceTo&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the distance of this entity to another entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;distanceToPoint&#039;&#039;&#039;(vector point); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the distance of this entity to a point.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;DotProduct&#039;&#039;&#039;(vector vec1, vector vec2); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the dot product of the two vectors.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;drawText&#039;&#039;&#039;(string text, vector origin, float scale, vector color, float align, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:text drawing for debugging. lifetime of 0 == 1 frame.&lt;br /&gt;
::&#039;&#039;align&#039;&#039;: 0 = left, 1 = center, 2 = right&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dropAttachment&#039;&#039;&#039;(string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Drop the attachment for the given attachment name.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dropAttachmentInd&#039;&#039;&#039;(float index); ====&lt;br /&gt;
&lt;br /&gt;
:Drop the attachment for the given index.&lt;br /&gt;
::&#039;&#039;index&#039;&#039;: starts at 0&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dropTorch&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ejectBrass&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;emitParticle&#039;&#039;&#039;(string particle, float startTime, float diversity, vector origin, vector angle); ====&lt;br /&gt;
&lt;br /&gt;
:Start a particle effect in the world without using an entity emitter. Will emit one quad per particle stage when first called with sys.getTime() as the start time. Designed to be called once per frame with the same startTime each call to achieve a normal particle effect, or on demand with sys.getTime() as the startTime for finer grained control, 1 quad at a time. Returns True (1) if there are more particles to be emitted from the stage, False (0) if the stage has released all its quads.&lt;br /&gt;
::&#039;&#039;particle&#039;&#039;: String: name of particle effect.&lt;br /&gt;
::&#039;&#039;startTime&#039;&#039;: Game seconds since map start: use sys.getTime() for the first call unless you want to back-date the particle so that it starts part way through its cycle.&lt;br /&gt;
::&#039;&#039;diversity&#039;&#039;: Randomizer value between 0 and 1. All particles with the same diversity will have the same path and rotation. Use sys.random(1) for a random path.&lt;br /&gt;
::&#039;&#039;origin&#039;&#039;: Origin of the particle effect.&lt;br /&gt;
::&#039;&#039;angle&#039;&#039;: Axis for the particle effect. Use $&amp;lt;entityname&amp;gt;.getAngles() to align the particle to an entity. use &#039;0 0 0&#039; for an upright (world-aligned) particle effect.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;emitterAddModel&#039;&#039;&#039;(string modelName, vector modelOffset); ====&lt;br /&gt;
&lt;br /&gt;
:Adds a new particle (or regular, if you wish) model to the emitter, located at modelOffset units away from the emitter&#039;s origin.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idFuncEmitter&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;emitterGetNumModels&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of models/particles this emitter has. Always &amp;gt;= 1.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idFuncEmitter&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;emptyHand&#039;&#039;&#039;(string hand); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;Seed&#039;&#039;, &#039;&#039;idMover_Binary&#039;&#039;, &#039;&#039;idTrigger&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableAFPush&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableAnim&#039;&#039;&#039;(float channel, float blendFrames); ====&lt;br /&gt;
&lt;br /&gt;
:Enables animation on the given channel.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableClip&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableDamage&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:enable/disable damage&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMoveable&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableEyeFocus&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables eye focus.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableGravity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;EnableLegIK&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:enables leg IK&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enablePain&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables pain animations.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableSplineAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables aligning the mover with the spline direction.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;EnableWalkIK&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:enables walk IK&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables the player weapon.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;endState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Ends the current state with the given name, returns TRUE if more than one state is remaining.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;endZoom&#039;&#039;&#039;(float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Starts the zoom out event, which performs a gradual transition back to the default FOV. May be called during a transition as well to intercept a pending zoom in transition.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: duration of the transition in msec&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyInCombatCone&#039;&#039;&#039;(entity combatNode, float use_current_enemy_location); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyPositionValid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyRange&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyRange2D&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;entityInAttackCone&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;error&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Issues an error.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;exitTeleporter&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;extinguishLights&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Extinguishes all lights (i.e. the &amp;lt;self&amp;gt; entity plus all bound lights)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;faceEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;faceEntity&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;facingIdeal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeIn&#039;&#039;&#039;(vector color, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades towards the given color over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeInLight&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the light on over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeOut&#039;&#039;&#039;(vector color, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades from the given color over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeOutLight&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the light out over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeSound&#039;&#039;&#039;(float channel, float newLevel, float fadeTime); ====&lt;br /&gt;
&lt;br /&gt;
:Fades the sound on this entity to a new level over a period of time.  Use SND_CHANNEL_ANY for all currently playing sounds.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeTo&#039;&#039;&#039;(vector color, float alpha, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades to the given color up to the given alpha over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeToLight&#039;&#039;&#039;(vector color, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades the light to the given color over a given time.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findActorsInBounds&#039;&#039;&#039;(vector mins, vector maxs); ====&lt;br /&gt;
&lt;br /&gt;
:Returns an entity within the bounds specified&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findEnemy&#039;&#039;&#039;(float onlyInFov); ====&lt;br /&gt;
&lt;br /&gt;
:Finds enemy player in PVS&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findEnemyAI&#039;&#039;&#039;(float onlyInFov); ====&lt;br /&gt;
&lt;br /&gt;
:Finds enemy monster in PVS&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findEnemyInCombatNodes&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Finds enemy player in attack cones&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findFriendlyAI&#039;&#039;&#039;(float team); ====&lt;br /&gt;
&lt;br /&gt;
:Use this to find a visible AI friendly to ourselves. It basically iterates over all active entities in the map and looks for friendly actors. The pythagorean distance is taken to evaluate the distance.  Don&#039;t call this every frame, this might get expensive in larger maps. Returns the nearest visible actor entity or the $null_entity, if none was found.&lt;br /&gt;
::&#039;&#039;team&#039;&#039;: used to constrain the search to a given team. Set this to -1 to let the code ignore this argument&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;finishAction&#039;&#039;&#039;(string action); ====&lt;br /&gt;
&lt;br /&gt;
:Finishes the given wait action.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;finishChannelAction&#039;&#039;&#039;(float channel, string animname); ====&lt;br /&gt;
&lt;br /&gt;
:Overloaded finishAction function for setting the waitstate on each channel separately&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;fireMissileAtTarget&#039;&#039;&#039;(string jointname, string targetname); ====&lt;br /&gt;
&lt;br /&gt;
:Launches a missile at entity specified by &#039;attack_target&#039;.  returns projectile fired&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;firstPerson&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns view control to the player entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;flashlight&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;flee&#039;&#039;&#039;(entity entToFleeFrom, float algorithm, float distanceOption); ====&lt;br /&gt;
&lt;br /&gt;
:Flee from the given entity. Pass the escape point lookup algorithm (e.g. EP_FIND_GUARDED) and the distanceOption (e.g. EP_DIST_NEAREST) to specify how the best escape point can be found. Refer to the tdm_defs.script file to see all the constants.  When algorithm is set to EP_FIND_AAS_AREA_FAR_FROM_THREAT, the distanceOption is interpreted as minimum threat distance. Returns FALSE if no escape point could be found.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;floor&#039;&#039;&#039;(float x); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the largest integer that is less than or equal to the given value.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;footstep&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idAnimated&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;foundBody&#039;&#039;&#039;(entity body); ====&lt;br /&gt;
&lt;br /&gt;
:Objective callback for when an AI finds a body.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;frob&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Frobs the entity (i.e. simulates a frob action performed by the player). Returns TRUE if the entity is frobable, FALSE otherwise.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;frobHilight&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:ishtvan: Tries to make the entity frobhilight or not&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;frobRidable&#039;&#039;&#039;(entity playerController); ====&lt;br /&gt;
&lt;br /&gt;
:Called when a player directly mounts or dismounts a ridable AI.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CAIVehicle&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Gas_Knockout&#039;&#039;&#039;(entity inflictor); ====&lt;br /&gt;
&lt;br /&gt;
:AI knockout&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: the entity causing the knockout, can be the $null_entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getActualStruckEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAcuity&#039;&#039;&#039;(string type); ====&lt;br /&gt;
&lt;br /&gt;
:ai generalized alerts&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAlertActor&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the actor that alerted the AI in this frame.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAlertLevelOfOtherAI&#039;&#039;&#039;(entity otherEntity); ====&lt;br /&gt;
&lt;br /&gt;
:This event gets the alert number of another AI (AI_AlertLevel variable value) Returns the alert number of the other AI, 0.0 if its not an AI or is NULL&lt;br /&gt;
::&#039;&#039;otherEntity&#039;&#039;: the other AI entity who&#039;s alert number is being queried&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current orientation of this entity (relative to bind parent if any).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAngularVelocity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current angular velocity of this entity. The angular velocity of a physics object is a vector that passes through the center of mass. The direction of this vector defines the axis of rotation and the magnitude defines the rate of rotation about the axis in radians per second.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAngularVelocityB&#039;&#039;&#039;(float id); ====&lt;br /&gt;
&lt;br /&gt;
:Get the angular velocitiy of a particular body Returns (0,0,0) if the body ID is invalid.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Base&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getAnimState&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the current animation state script function used for the given channel.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAttachment&#039;&#039;&#039;(string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Get the attached entity with the given attachment name Will be NULL if the name is invalid or if the entity no longer exists&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAttachmentInd&#039;&#039;&#039;(float index); ====&lt;br /&gt;
&lt;br /&gt;
:Get the attached entity at the given index. Will be NULL if the index is invalid or the entity no longer exists&lt;br /&gt;
::&#039;&#039;index&#039;&#039;: starts at 0&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAttacker&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the attacking entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAttackFlag&#039;&#039;&#039;(float combatType); ====&lt;br /&gt;
&lt;br /&gt;
:Returns 1 if the given attack flag is activated.&lt;br /&gt;
::&#039;&#039;combatType&#039;&#039;: see tdm_defs.script for possible enum values&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAudThresh&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAxialDir&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getBindChild&#039;&#039;&#039;(float ind); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the ind_th bind child of this entity or NULL if index is invalid. NOTE: indices start at zero&lt;br /&gt;
::&#039;&#039;ind&#039;&#039;: child index&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getBindMaster&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity&#039;s bindmaster&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getBlendFrames&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of frames to blend between animations on the given channel.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getBoolKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the boolean value of a specific spawn arg, defaulting to false.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getButtons&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the button state from the current user command.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getCalibratedLightgemValue&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the calibrated light gem value.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getClipMask&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the clipmask of the physics object.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getClosestHiddenTarget&#039;&#039;&#039;(string entity_type); ====&lt;br /&gt;
&lt;br /&gt;
:Finds the closest targeted entity of the specified type.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getColor&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the color of this entity (shader parms Parm0, Parm1, Parm2).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getCombatNode&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getContents&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the contents of the physics object.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvCategory&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the currently highlighted inventory category.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvIcon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the icon of the currently highlighted inventory item.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getCurInvItemEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently highlighted inventory item entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvItemId&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the currently highlighted inventory item (the one defined in &amp;quot;inv_item_id&amp;quot;). Most items will return an empty string, unless the &amp;quot;inv_item_id&amp;quot; is set on purpose.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvItemName&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the currently highlighted inventory item (the one defined in &amp;quot;inv_name&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getCurrentMissionNum&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of the current mission (0-based, the first mission has number 0).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurrentWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns weaponX where X is the number of the weapon the player is currently holding.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getCurrentYaw&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurWeaponName&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the current weapon, as defined by &amp;quot;inv_weapon_name&amp;quot; in the weaponDef.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getcvar&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string for a cvar.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getDifficultyLevel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns 0 (Easy), 1 (Medium) or 2 (Hard), depending on the difficulty level of the current mission.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getDifficultyName&#039;&#039;&#039;(float difficultyLevel); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the (translated) name of the difficulty level passed as the argument.&lt;br /&gt;
::&#039;&#039;difficultyLevel&#039;&#039;: 0 (Easy), 1 (Medium), 2 (Hard)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetDoor&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the associated door entity for this handle.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CFrobDoorHandle&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetDoorhandle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the handle entity of this door. Can return NULL (== $null_entity)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CFrobDoor&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getDragged&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently dragged body. Returns $null_entity if the body is shouldered, the player has nothing in his hands, or he has a non-AF entity in his hands. See also getShouldered(), getGrabbed() and getFrobbed().&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;, &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getEnemyEyePos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getEnemyPos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getEntity&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a reference to the entity with the specified name.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getEntityFlag&#039;&#039;&#039;(string flagName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the value of the specified entity flag.&lt;br /&gt;
::&#039;&#039;flagName&#039;&#039;: Can be one of (case insensitive):	&lt;br /&gt;
:notarget: if true never attack or target this entity 	&lt;br /&gt;
:noknockback: if true no knockback from hits 	&lt;br /&gt;
:takedamage: if true this entity can be damaged 	&lt;br /&gt;
:hidden: if true this entity is not visible 	&lt;br /&gt;
:bindOrientated: if true both the master orientation is used for binding 	&lt;br /&gt;
:solidForTeam: if true this entity is considered solid when a physics team mate pushes entities 	&lt;br /&gt;
:forcePhysicsUpdate: if true always update from the physics whether the object moved or not 	&lt;br /&gt;
:selected: if true the entity is selected for editing 	&lt;br /&gt;
:neverDormant: if true the entity never goes dormant 	&lt;br /&gt;
:isDormant: if true the entity is dormant 	&lt;br /&gt;
:hasAwakened: before a monster has been awakened the first time, use full PVS for dormant instead of area-connected 	&lt;br /&gt;
:invisible: if true this entity cannot be seen 	&lt;br /&gt;
:inaudible: if true this entity cannot be heard &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getEntityKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the entity specified by the spawn arg.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getEyePos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get eye position of the player and the AI&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getFinalAngVel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getFinalVel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getFloatKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the floating point value of a specific spawn arg, defaulting to 0.0f.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getFov&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:This returns the current FOV of the player. You can modify the current FOV with startZoom() and endZoom().&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;GetFractionalPosition&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a fraction between 0.00 (closed) and 1.00 (open).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getFrameTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:returns the length of time between game frames.  this is not related to renderer frame rate.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getFrobbed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently frobhilighted entity. This includes entities the player has in his hands. Sets &amp;quot;frob only used by&amp;quot; mode&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getGrabbed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently entity in the players hands. Returns $null_entity if the player has nothing in his hands Dragging or shouldering a body counts as grabbing it. See also getDragged(), getShouldered(), getFrobbed().&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getGui&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the file currently loaded by a GUI.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getGuiFloat&#039;&#039;&#039;(float handle, string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getGuiInt&#039;&#039;&#039;(float handle, string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getGuiString&#039;&#039;&#039;(float handle, string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getHead&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity used for the character&#039;s head, if it has one.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getHealth&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current health.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getHinderance&#039;&#039;&#039;(string source); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get hinderance from a source.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getIdealWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getImmobilization&#039;&#039;&#039;(string source); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get immobilization from a source. Warning: Not a finalized version. It&#039;s subject to change, so use it at your own risk.)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getIncidenceAngle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getIntKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the integer value of a specific spawn arg, defaulting to 0.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getInventoryOverlay&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the default inventory overlay for the player. All other entities will return an invalid value.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getJointAngle&#039;&#039;&#039;(float jointnum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the angular orientation of the joint in world space.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimatedEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getJointHandle&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:Looks up the number of the specified joint. Returns INVALID_JOINT if the joint is not found.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimatedEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getJointPos&#039;&#039;&#039;(float jointnum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the position of the joint in world space.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimatedEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getJumpVelocity&#039;&#039;&#039;(vector pos, float speed, float max_jump_height); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the value of a specific spawn arg, defaulting to &#039;&#039;.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLightInPVS&#039;&#039;&#039;(float falloff, float scaling); ====&lt;br /&gt;
&lt;br /&gt;
:Computes the sum of all light in the PVS of the entity you call this on, and returns a vector with the sum.&lt;br /&gt;
::&#039;&#039;falloff&#039;&#039;: 0: no falloff with distance  0.5: sqrt(linear) falloff	(dist 100 =&amp;gt; 1/10)  1: linear falloff			(dist 100 =&amp;gt; 1/100)  2: square falloff			(dist 100 =&amp;gt; 1/10000) &lt;br /&gt;
::&#039;&#039;scaling&#039;&#039;: factor to scale the distance, can be used to lower/raise distance factor  after the linear or square scaling has been used good looking values are approx: sqrt(linear): 0.01, linear: 0.1, square 1.0&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getLightLevel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get level (intensity) of a light, &amp;lt;= 0.0 indicates it is off&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLightOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the light origin (independent of its visual model)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getLightParm&#039;&#039;&#039;(float parmNum); ====&lt;br /&gt;
&lt;br /&gt;
:Gets a shader parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLinearVelocity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current linear velocity of this entity. The linear velocity of a physics object is a vector that defines the translation of the center of mass in units per second.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLinearVelocityB&#039;&#039;&#039;(float id); ====&lt;br /&gt;
&lt;br /&gt;
:Get the linear velocitiy of a particular body Returns (0,0,0) if the body ID is invalid.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Base&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getLocation&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the idLocation entity corresponding to the entity&#039;s current location. This was player-specific before, but is now available to all entities.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getLocationPoint&#039;&#039;&#039;(vector point); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the idLocation entity corresponding to the specified point&#039;s location.&lt;br /&gt;
::&#039;&#039;point&#039;&#039;: point whose location to check&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetLock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the associated lock of this handle.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CFrobLockHandle&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getLootAmount&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the amount of loot for the given type (e.g. LOOT_GOODS). Pass LOOT_TOTAL to return the sum of all loot types.&lt;br /&gt;
::&#039;&#039;type&#039;&#039;: one of: LOOT_GOLD, LOOT_GOODS, LOOT_JEWELRY, LOOT_TOTAL&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getMainAmbientLight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity of the main ambient light.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMass&#039;&#039;&#039;(float body); ====&lt;br /&gt;
&lt;br /&gt;
:Gets mass of a body for an entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getMaxs&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the maximum corner of this entity&#039;s bounding box.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeActPhase&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current melee action phase (holding,recovering,etc).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeActState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current melee action state (attacking/defending).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeActType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current melee action type (overhead,thrust,etc.).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeLastActTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the melee type of the last attack to hit this actor. Defaults to MELEETYPE_UNBLOCKABLE if we were not hit before.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeLastHitByType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the game time that the most recent melee action ended (in ms)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeResult&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the result of the last melee action Follows MELEERESULT_* enum defined in tdm_defs.script&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getMins&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the minimum corner of this entity&#039;s bounding box.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMissionStatistic&#039;&#039;&#039;(string statisticName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns current mission statistic.&lt;br /&gt;
::&#039;&#039;statisticName&#039;&#039;: Can be one of (case insensitive): 	gamePlayTime: gameplay time in seconds 	damageDealt: damage dealt to enemies 	damageReceived: damage received by player 	healthReceived: health received by player 	pocketsPicked: pockets picked by player 	foundLoot: loot found by player 	missionLoot: total loot available in mission 	totalTimePlayerSeen: total time the player was seen by enemies in seconds. Updates only when AI lose sight of player 	numberTimesPlayerSeen: number of times player was seen by enemies 	numberTimesAISuspicious: number of times AI was &#039;observant&#039; or &#039;suspicious&#039;. A single AI passing through both alert levels will add 2 to the score. 	numberTimesAISearched: number of times AI was &#039;investigating&#039; or &#039;searching&#039;. A single AI passing through both alert levels will add 2 to the score. 	sightingScore: sighting score (number of times player was seen * weight) 	stealthScore: stealth score (sighting score + alerts * weights) 	killedByPlayer: number of enemies killed by player 	knockedOutByPlayer: number of enemies knocked out by player 	bodiesFound: number of times enemies have spotted a body 	secretsFound: number of secrets found by the player 	secretsTotal: total number of secrets in the mission &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMouseGesture&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the results of the last mouse gesture in enum form. (see the definition for MOUSEDIR_* for which numbers correspond to which directions)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the movement relative to the player&#039;s view angles from the current user command. vector_x = forward, vector_y = right, vector_z = up&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getMoveAnim&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the player-requested movement anim for a player controlled AI vehicle&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CAIVehicle&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMoveSpeed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the movement speed.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMoveTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the movement time.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMoveType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current movetype&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getName&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of this entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getNextEntity&#039;&#039;&#039;(string key, string value, entity lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Discover all entities in the map. Returns $null_entity when no more found.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: Optional string: prefix for spawnarg key match. E.g. &amp;quot;target&amp;quot; will match &amp;quot;target&amp;quot;, &amp;quot;target1&amp;quot; etc.&lt;br /&gt;
::&#039;&#039;value&#039;&#039;: Optional string: spawnarg value to match. Can be used independently of &#039;&#039;key&#039;&#039;. If &#039;&#039;key&#039;&#039; is not set, all spawnargs will be checked for the value.&lt;br /&gt;
::&#039;&#039;lastMatch&#039;&#039;: Last match: search will start after this entity. Use $null_entity or pass an uninitialized entity variable to start a new search.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextHinderance&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get the next hinderance from a source.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextIdleAnim&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:This returns the name of the next idle anim to be played on this AI (used by AnimState scripts).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextImmobilization&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get immobilization from a source. Warning: Not a finalized version. It&#039;s subject to change, so use it at your own risk.)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getNextInvItem&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cycles the standard cursor to the next inventory item. Returns the item entity pointed to after the operation is complete.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextKey&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Searches for the name of a spawn arg that matches the prefix.  For example, passing in &amp;quot;attack_target&amp;quot; matches &amp;quot;attack_target1&amp;quot;, &amp;quot;attack_targetx&amp;quot;, &amp;quot;attack_target_enemy&amp;quot;,  etc. The returned string is the name of the key which can then be passed into functions like getKey() to lookup the value of that spawn arg.  This is useful for when you have multiple values to look up, like when you target multiple objects.  To find the next matching key, pass in the previous result and the next key returned will be the first one that matches after the previous result. Pass in &amp;quot;&amp;quot; to get the first match. Passing in a non-existent key is the same as passing in &amp;quot;&amp;quot;. Returns &amp;quot;&amp;quot; when no  more keys match.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextTurnHinderance&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Get the next hinderance on the view turning from a source&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumAttachments&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Return the number of attachments on an AI. Used to iterate through the attachments if desired.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumBodies&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of bodies in the AF. If the AF physics pointer is NULL, it returns 0.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Base&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumMeleeWeapons&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of melee weapons attached to an actor. This refers to the TDM-style attachments with the spawnarg &#039;is_weapon_melee&#039; set to &#039;1&#039;.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumRangedWeapons&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of ranged weapons attached to an actor. This refers to the TDM-style attachments with the spawnarg &#039;is_weapon_ranged&#039; set to &#039;1&#039;.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getObjectiveComp&#039;&#039;&#039;(float ObjNum, float CompNum); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get the state of custom objective components&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
::&#039;&#039;CompNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getObjectiveState&#039;&#039;&#039;(float ObjNum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current state of the objective with the number ObjNum.  State is one of the following: OBJ_INCOMPLETE = 0, OBJ_COMPLETE = 1, OBJ_INVALID = 2, OBJ_FAILED = 3&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getObjectiveVisible&#039;&#039;&#039;(float ObjNum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current visibility of the objective with the number ObjNum.&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getObservationPosition&#039;&#039;&#039;(vector targetPoint, float visualAcuityZeroToOne); ====&lt;br /&gt;
&lt;br /&gt;
:This event is used to get a position that the AI can move to observe a  given position.  It is useful for looking at hiding spots that can&#039;t be reached, and performing other investigation functions.  Returns a world position from which the observation can take place. Returns the current AI origin if no such point is found.  @sideEffect This uses the AI_DEST_UNREACHABLE flag variable  to indicate if a point was found. It will be true if none was found, false if one was found.&lt;br /&gt;
::&#039;&#039;targetPoint&#039;&#039;: the world position to be observed&lt;br /&gt;
::&#039;&#039;visualAcuityZeroToOne&#039;&#039;: the visual acuity of the AI on a scale of 0.0 to 1.0 where 0.0 is blind and 1.0 is perfect vision.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getObstacle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the obstacle in the character&#039;s path&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current position of this entity (relative to bind parent if any).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getOwner&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the owning entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getPainAnim&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the pain animation.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPersistantFloat&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the floating point value for the given persistent arg&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getPersistantString&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string for the given persistent arg&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getPersistantVector&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the vector for the given persistent arg&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortAISoundLoss&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:AI sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortalHandle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the portal handle.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPortalEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortPlayerSoundLoss&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Player sound loss  scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortSoundLoss&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getPrevInvItem&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cycles the standard cursor to the previous inventory item. Returns the item entity pointed to after the operation is complete.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getPreviousWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns weaponX where X is the number of the weapon the player was previously holding.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getPrime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmVine&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getProjectileState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current state of the projectile. States are defined in tdm_defs.script&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idProjectile&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getProjMass&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getRadius&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the light radius.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getRandomTarget&#039;&#039;&#039;(string entity_type); ====&lt;br /&gt;
&lt;br /&gt;
:Finds a random targeted entity of the specified type.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getReachableEntityPosition&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the position of the entity within the AAS if possible, otherwise just the entity position.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getRelation&#039;&#039;&#039;(float team1, float team2); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getRelationEnt&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetResponseEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity which should take the response. Some entities like AI heads are not responding themselves to stims, but relay it to another entity (i.e. the bodies they&#039;re attached to).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getSecurityCameraState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the security camera&#039;s state. 1 = unalerted, 2 = suspicious, 3 = fully alerted, 4 = inactive, 5 = destroyed.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getShader&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the shader name used by the light.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getShaderParm&#039;&#039;&#039;(float parm); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the value of the specified shader parm.&lt;br /&gt;
::&#039;&#039;parm&#039;&#039;: shader parm index&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getShouldered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently shouldered body, otherwise $null_entity. See also getDragged(), getGrabbed() and getFrobbed().&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getSize&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the size of this entity&#039;s bounding box.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getSndDir&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:ai hearing of sound &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getSoundLoss&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the sound loss value (dB).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPortalEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getSoundVolume&#039;&#039;&#039;(string soundName); ====&lt;br /&gt;
&lt;br /&gt;
:Get the volume of the sound to play.&lt;br /&gt;
::&#039;&#039;soundName&#039;&#039;: the name of the sound&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getSpotLight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the spotlight used by the camera. Returns null_entity if none is used.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current state.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getStruckEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getSurfNormal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getSurfType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTactEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:ai sense of touch&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTalkTarget&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity (player) trying to talk to the character&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTarget&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the requested target entity.&lt;br /&gt;
::&#039;&#039;num&#039;&#039;: The target number. Starts at 0.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTDMVersion&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the current TDM version as integer. The value will be 108 for v1.08, 109 for v1.09 and 200 for v2.00 etc.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTeam&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current team number.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTicsPerSecond&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:returns the number of game frames per second.  this is not related to renderer frame rate.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current game time in seconds.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getTraceBody&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of the body part of the entity which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getTraceEndPos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the position the trace stopped due to a collision with solid geometry during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTraceEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a reference to the entity which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTraceFraction&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the fraction of movement completed during the last call to trace or tracePoint.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getTraceJoint&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of the skeletal joint closest to the location on the entity which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getTraceNormal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the normal of the hit plane during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getTraceSurfType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the type of the surface (i.e. metal, snow) which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTurnDelta&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getTurnHinderance&#039;&#039;&#039;(string source); ====&lt;br /&gt;
&lt;br /&gt;
:* Get the hinderance on the view turning from a source&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTurnRate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the rate the character turns.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVectorKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the vector value of a specific spawn arg, defaulting to &#039;0 0 0&#039;.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVectorToIdealOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the vector from where the AI is to where he ideally should be&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getViewAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the player view angles.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVinePlantLoc&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event important to the growing of vines from vine arrows&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVinePlantNormal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event important to the growing of vines from vine arrows&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVisDir&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns position of the last visual alert.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getWeaponEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity for the player&#039;s weapon&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getWorldModel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity that controls the world model&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getWorldOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current world-space position of this entity (regardless of any bind parent).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;gib&#039;&#039;&#039;(string damageDefName); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Gibbable&#039;&#039;, &#039;&#039;idMoveableItem&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;giveHealthPool&#039;&#039;&#039;(float amount); ====&lt;br /&gt;
&lt;br /&gt;
:This increases/decreases the healthpool of the player by the given amount. The healthpool is gradually decreased over time, healing (damaging?) the player.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;handleMissionEvent&#039;&#039;&#039;(entity objEnt, float eventType, string argument); ====&lt;br /&gt;
&lt;br /&gt;
:Generic interface for passing on mission events from scripts to the SDK. Available since TDM 1.02&lt;br /&gt;
::&#039;&#039;objEnt&#039;&#039;: the entity that triggered this event (e.g. a readable)&lt;br /&gt;
::&#039;&#039;eventType&#039;&#039;: a numeric identifier (enumerated both in MissionData.h and tdm_defs.script) specifying the type of event&lt;br /&gt;
::&#039;&#039;argument&#039;&#039;: an optional string parameter, eventtype-specific.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true when an entity has a specific animation.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasEnemies&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the actor has one or more enemies.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasFunction&#039;&#039;&#039;(string functionName); ====&lt;br /&gt;
&lt;br /&gt;
:checks if an entity&#039;s script object has a specific function&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasSeenEvidence&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:This returns 1 when the AI has seen evidence of intruders before (an enemy, a body...)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;heal&#039;&#039;&#039;(string healDefName, float healScale); ====&lt;br /&gt;
&lt;br /&gt;
:Heals the entity this is called on using the specified healing entityDef. Returns 1 if the entity could be healed, 0 otherwise (if the entity is already at full health, for ex.)&lt;br /&gt;
::&#039;&#039;healDefName&#039;&#039;: the name of the entityDef containing the healing information (e.g. &amp;quot;heal_potion&amp;quot;)&lt;br /&gt;
::&#039;&#039;healScale&#039;&#039;: the scaling value to be applied to the healAmount found in the healEntityDef&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;heldEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity currently being held, or $null_entity if the player&#039;s hands are empty.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;hide&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Makes this entity invisible.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;hideByLODBias&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;holdEntity&#039;&#039;&#039;(entity entity); ====&lt;br /&gt;
&lt;br /&gt;
:Forces the player to hold an entity (e.g. puts it into the grabber). Drops whatever is in the player&#039;s hands if $null_entity is passed to it. Returns 1 if successful, 0 if not.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;idleAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Plays the given idle animation on the given channel.  Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ignoreDamage&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:The AI can no longer take damage.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;inAnimState&#039;&#039;&#039;(float channel, string stateFunc); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given animation state script function is currently used for the given channel.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;influenceActive&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Checks if an influence is active&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;inPVS&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns non-zero if this entity is in PVS. For lights, it will return true when the light&#039;s bounding box is in PVS, even though the light may not actually be in PVS. (an unmoved shadowcasting light may not be visible to PVS areas its bounding box intersects with)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isAtRest&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if object is not moving&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMoveable&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isDroppable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get whether an item may be dropped from the inventory&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isEnemy&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given entity is an enemy.&lt;br /&gt;
::&#039;&#039;ent&#039;&#039;: The entity in question&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isEntityHidden&#039;&#039;&#039;(entity ent, float f_sightThreshold); ====&lt;br /&gt;
&lt;br /&gt;
:This is an alternate version of canSee, using FOV, distance and lighting.&lt;br /&gt;
::&#039;&#039;f_sightThreshold&#039;&#039;: goes from 0.0 (entity visible in complete darkness) to 1.0 (entity only visible if completely lit up).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isFriend&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given entity is a friend.&lt;br /&gt;
::&#039;&#039;ent&#039;&#039;: The entity in question&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isFrobable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get whether the entity is frobable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isHidden&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:checks if the entity&#039;s model is invisible.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isHilighted&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if entity is currently frobhilighted.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isInLiquid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns 1 if the entity is in or touching a liquid.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isInvisible&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isLeaning&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get whether the player is leaning&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isLight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;IsLocked&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true (nonzero) if the mover is currently locked.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isMoving&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if a mover is moving&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isNeutral&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given entity is neutral.&lt;br /&gt;
::&#039;&#039;ent&#039;&#039;: The entity in question&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;IsOpen&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true (nonzero) if the mover is open, which is basically the same as &amp;quot;not closed&amp;quot;. A mover is considered closed when it is at its close position.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;IsPickable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true (nonzero) if this frobmover is pickable.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isPlayerResponsibleForDeath&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the player was responsible for the AI&#039;s caller&#039;s death.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isRotating&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if a mover is rotating&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isType&#039;&#039;&#039;(string spawnclass); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if this entity is of the given type.&lt;br /&gt;
::&#039;&#039;spawnclass&#039;&#039;: spawn class name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isVineFriendly&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Vine-arrow event&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;kickObstacles&#039;&#039;&#039;(entity kickEnt, float force); ====&lt;br /&gt;
&lt;br /&gt;
:Kicks any obstacle in the character&#039;s path.&lt;br /&gt;
::&#039;&#039;kickEnt&#039;&#039;: pass in $null_entity if you don&#039;t have a specific entity to kick&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;kill&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Kills the monster.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;killthread&#039;&#039;&#039;(string threadName); ====&lt;br /&gt;
&lt;br /&gt;
:Kills all threads with the specified name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;KO_Knockout&#039;&#039;&#039;(entity inflictor); ====&lt;br /&gt;
&lt;br /&gt;
:AI knockout&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: is the entity causing the knockout, can be the $null_entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;launch&#039;&#039;&#039;(vector start, vector dir, vector velocity); ====&lt;br /&gt;
&lt;br /&gt;
:Launches the projectile from &amp;lt;start&amp;gt; in direction &amp;lt;dir&amp;gt; with the given &amp;lt;velocity&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idProjectile&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;launchMissile&#039;&#039;&#039;(vector origin, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the projectile entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;launchMissiles&#039;&#039;&#039;(string projectilename, string sound, string launchbone, string targetbone, float numshots, float framedelay); ====&lt;br /&gt;
&lt;br /&gt;
:Launches a projectile.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimated&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;launchProjectiles&#039;&#039;&#039;(float num_projectiles, float spread, float fuseOffset, float launchPower, float dmgPower); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;leftFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to left foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idAnimated&#039;&#039;, &#039;&#039;idTestModel&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;loadExternalData&#039;&#039;&#039;(string declFile, string prefix); ====&lt;br /&gt;
&lt;br /&gt;
:Load an external xdata declaration.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;locateEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Updates the last known position of the enemy independent from whether or not the enemy is visible.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Lock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Locks the mover. Calls to Open() will not succeed after this call. &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;log&#039;&#039;&#039;(float x); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the log of the given argument.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;logString&#039;&#039;&#039;(float logClass, float logType, string output); ====&lt;br /&gt;
&lt;br /&gt;
:This is the script counterpart to DM_LOG&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAt&#039;&#039;&#039;(entity focusEntity, float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Aims the character&#039;s eyes and head toward an entity for a period of time.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAtAngles&#039;&#039;&#039;(float yawAngleClockwise, float pitchAngleUp, float rollAngle, float durationInSeconds); ====&lt;br /&gt;
&lt;br /&gt;
:A look at event that just looks at a set of angles relative  to the current body facing of the AI. This method is just like the vanilla Doom3 lookAt and lookAtEnemy methods, but it looks at the specified angles from the current body facing of the AI.&lt;br /&gt;
::&#039;&#039;yawAngleClockwise&#039;&#039;: Negative angles are to the left of  the AIs body and positive angles are to the right.&lt;br /&gt;
::&#039;&#039;pitchAngleUp&#039;&#039;: Negative values are down and positive values are up  where down and up are defined by the body axis.&lt;br /&gt;
::&#039;&#039;rollAngle&#039;&#039;: This is currently unused and does nothing.&lt;br /&gt;
::&#039;&#039;durationInSeconds&#039;&#039;: The duration to look in seconds.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAtEnemy&#039;&#039;&#039;(float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Aims the character&#039;s eyes and head toward the current enemy for a period of time.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAtPosition&#039;&#039;&#039;(vector lookAtWorldPosition, float durationInSeconds); ====&lt;br /&gt;
&lt;br /&gt;
:This method is just like the vanilla Doom3 lookAt and lookAtEnemy methods, but instead of looking at an entity, it looks at a position in worldspace.  That is, it turns the head of the AI to look at the position.&lt;br /&gt;
::&#039;&#039;lookAtWorldPosition&#039;&#039;: position in space to look at&lt;br /&gt;
::&#039;&#039;durationInSeconds&#039;&#039;: duration to look in seconds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;lookupReplacementAnim&#039;&#039;&#039;(string anim); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current replacement animation for &amp;quot;anim&amp;quot;. Returns empty if no replacement anim &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;markUsed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the combat node if &amp;quot;use_once&amp;quot; is set on the entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idCombatNode&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;melee&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeActionFinished&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Called when the animation for the melee action has finished.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeActionHeld&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Called when the melee action reaches the &amp;quot;hold&amp;quot; point.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeActionReleased&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Called when the melee action is released from the hold point.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeAttackStarted&#039;&#039;&#039;(float attType); ====&lt;br /&gt;
&lt;br /&gt;
:Registers the start of a given melee attack Intended to be called from a script that also starts the animation&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;meleeAttackToJoint&#039;&#039;&#039;(string joint, string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;meleeBestParry&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the melee type integer of the best parry given the enemy attacks at the time If no attacking enemy is found, returns default of MELEETYPE_RL Follows MELEETYPE_* enum defined in tdm_defs.script&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;meleeNameForNum&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:Converts a melee type integer to a string name suffix Used for finding the right animation for a given type, etc. Possible names are, in order: &amp;quot;Over, LR, RL, Thrust, General&amp;quot; Where general blocks all attacks types except unblockable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeParryStarted&#039;&#039;&#039;(float parType); ====&lt;br /&gt;
&lt;br /&gt;
:Registers the start of a given melee parry Intended to be called from a script that also starts the animation&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;missionFailed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;missionSuccess&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;mouseGestureFinished&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the player is not currently doing a mouse gesture.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;move&#039;&#039;&#039;(float angle, float distance); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation with the given distance in the given yaw direction. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveOutOfRange&#039;&#039;&#039;(entity ent, float range); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveSound&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound to be played when the moving.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;moveStatus&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveTo&#039;&#039;&#039;(entity targetEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation to the position of an entity. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToAttackPosition&#039;&#039;&#039;(entity ent, string attack_anim); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToCover&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToCoverFrom&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToEnemyHeight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToEntity&#039;&#039;&#039;(entity destination); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToPos&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation to an absolute position. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToPosition&#039;&#039;&#039;(vector position); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;music&#039;&#039;&#039;(string shaderName); ====&lt;br /&gt;
&lt;br /&gt;
:Starts playing background music.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;muzzleFlash&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;netEndReload&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;netReload&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;nextEnemy&#039;&#039;&#039;(entity lastEnemy); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the next enemy the actor has acquired.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;nextWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;noShadows&#039;&#039;&#039;(float noShadows); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the noShadow property on the entity to true/false, turning shadowcasting on or off for this entity.&lt;br /&gt;
::&#039;&#039;noShadows&#039;&#039;: 1 = disable shadows, 0 = enable shadows&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;noShadowsDelayed&#039;&#039;&#039;(float noShadows, float delay); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the noShadow property on the entity to true/false after delay in ms, turning shadows cast by this entity on or off.&lt;br /&gt;
::&#039;&#039;noShadows&#039;&#039;: 1 = disable shadows, 0 = enable shadows&lt;br /&gt;
::&#039;&#039;delay&#039;&#039;: delay in ms&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;numBindChildren&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of bound entities lower down in the bind chain than this entity, but be sure to give it the topmost bindmaster&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;numSmokeEmitters&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the # of emitters defined by &#039;smokeParticleSystem&#039; in the entitydef&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;numTargets&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of entities this entity has targeted.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;objectiveCompUnlatch&#039;&#039;&#039;(float ObjNum, float CompNum); ====&lt;br /&gt;
&lt;br /&gt;
:Unlatch an irreversible objective component that has latched into a state&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;objectiveUnlatch&#039;&#039;&#039;(float ObjNum); ====&lt;br /&gt;
&lt;br /&gt;
:Unlatch an irreversible objective that has latched into a state&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Off&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity off.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;, &#039;&#039;idSecurityCamera&#039;&#039;, &#039;&#039;idSound&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;offsetRelation&#039;&#039;&#039;(float team1, float team2, float val); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;On&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity on.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;, &#039;&#039;idSecurityCamera&#039;&#039;, &#039;&#039;idSound&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;onSignal&#039;&#039;&#039;(float signalNum, entity ent, string functionName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a script callback function for when the given signal is raised on the given entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Open&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Opens the frobmover, regardless of its previous state. The mover will not move when it&#039;s locked. &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;, &#039;&#039;CFrobLock&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;OpenDoor&#039;&#039;&#039;(float master); ====&lt;br /&gt;
&lt;br /&gt;
:The OpenDoor method is necessary to give the FrobDoorHandles a  &amp;quot;low level&amp;quot; open routine. The CFrobDoor::Open() call is re-routed to the FrobDoorHandle::Tap() method, so there must be a way to actually let the door open. Which is what this method does.  Note: Shouldn&#039;t be called directly by scripters, call handle-&amp;gt;Tap() instead. Unless you know what you&#039;re doing.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CFrobDoor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;openPortal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Opens the renderer portal associated with this mover.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;, &#039;&#039;idMover_Binary&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Operate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Call this to operate this entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CFrobButton&#039;&#039;, &#039;&#039;CFrobLever&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;overrideAnim&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the animation currently playing on the given channel and syncs the animation with the animation of the nearest animating channel.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pause&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Pauses the current thread.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pauseAnim&#039;&#039;&#039;(float channel, float bPause); ====&lt;br /&gt;
&lt;br /&gt;
:Pause all animations playing on the given channel. NOTE: Can also be used used by idWeapons&lt;br /&gt;
::&#039;&#039;bPause&#039;&#039;: true = pause, false = unpause&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pauseGame&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Pauses the game. This should only be called for threads that are explicitly maintained by a special SDK method, because ordinary threads won&#039;t get executed during g_stopTime == true. Note: This is used by the objective GUI threads. Note: Must be called on the player entity, not the sys entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;performRelight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Deal with doused lights.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playAndLipSync&#039;&#039;&#039;(string soundName, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Play the given sound, using the given lipsync animation. The lipsync animation should just be a simple non-loopable animation of the mouth opening in a linear fashion. The code will select individual frames from this to construct a simple lipsyncing effect which is in time with the sound.  Returns the length of the played sound in seconds.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Do not use, this is part of TDM&#039;s internal mechanics. Use playCustomAnim() on AI.in scripts instead of this. Plays the given animation on the given channel. Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playCustomAnim&#039;&#039;&#039;(string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Plays the given animation on legs and torso. Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playCycle&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Continuously repeats the given animation on the given channel.  Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;playStartSound&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;pointInLiquid&#039;&#039;&#039;(vector point, entity ignoreEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Checks if a point is in a liquid, returns 1 if this is the case.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;pointIsInBounds&#039;&#039;&#039;(vector point, vector mins, vector maxs); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the point is within the bounds specified.&lt;br /&gt;
::&#039;&#039;point&#039;&#039;: test whether this point is in the bounds&lt;br /&gt;
::&#039;&#039;mins&#039;&#039;: minimal corner of the bounds&lt;br /&gt;
::&#039;&#039;maxs&#039;&#039;: maximal corner of the bounds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;pow&#039;&#039;&#039;(float x, float y); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the power of x to y.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;preBurn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;predictEnemyPos&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Tries to predict the player&#039;s movement based on the AAS and his direction of movement.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;preventPain&#039;&#039;&#039;(float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Prevents any pain animation from being played for the given time in seconds.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: time in seconds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;print&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Prints the given string to the console.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;println&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Prints the given line to the console.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;processBlindStim&#039;&#039;&#039;(entity stimSource, float skipVisibilityCheck); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;processVisualStim&#039;&#039;&#039;(entity stimSource); ====&lt;br /&gt;
&lt;br /&gt;
:Use this call to let the AI react to a visual stim (coming from the source entity).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;projectDecal&#039;&#039;&#039;(vector traceOrigin, vector traceEnd, entity passEntity, string decal, float decalSize, float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Performs a trace from the specified origin and end positions, then projects a decal in that direction.&lt;br /&gt;
::&#039;&#039;traceOrigin&#039;&#039;: Start of the trace.&lt;br /&gt;
::&#039;&#039;traceEnd&#039;&#039;: End of the trace.&lt;br /&gt;
::&#039;&#039;passEntity&#039;&#039;: This entity will be considered non-solid by the trace.&lt;br /&gt;
::&#039;&#039;decal&#039;&#039;: Decal to be projected.&lt;br /&gt;
::&#039;&#039;decalSize&#039;&#039;: Size of the decal quad.&lt;br /&gt;
::&#039;&#039;angle&#039;&#039;: Angle of the decal quad.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;propagateSound&#039;&#039;&#039;(string soundName, float propVolMod, float msgTag); ====&lt;br /&gt;
&lt;br /&gt;
:Generates a propagated sound&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;propSound&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Sound propagation scriptfunctions on all entities propagate a sound directly without playing an audible sound&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;propSoundMod&#039;&#039;&#039;(string name, float volMod); ====&lt;br /&gt;
&lt;br /&gt;
:propagate a sound directly with a volume modifier&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;pushPointIntoAAS&#039;&#039;&#039;(vector post); ====&lt;br /&gt;
&lt;br /&gt;
:Tries to push the point into a valid AAS area&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pushState&#039;&#039;&#039;(string stateName); ====&lt;br /&gt;
&lt;br /&gt;
:Pushes the state with the given name, current one is postponed.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;radiusDamage&#039;&#039;&#039;(vector origin, entity inflictor, entity attacker, entity ignore, string damageDefName, float dmgPower); ====&lt;br /&gt;
&lt;br /&gt;
:damages entities within a radius defined by the damageDef.  inflictor is the entity  causing the damage and can be the same as the attacker (in the case   of projectiles, the projectile is the inflictor, while the attacker is the character  that fired the projectile).&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: the entity causing the damage&lt;br /&gt;
::&#039;&#039;ignore&#039;&#039;: an entity to not cause damage to&lt;br /&gt;
::&#039;&#039;dmgPower&#039;&#039;: scales the damage (for cases where damage is dependent on time)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;radiusDamageFromJoint&#039;&#039;&#039;(string jointname, string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;random&#039;&#039;&#039;(float range); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a random value X where 0 &amp;lt;= X &amp;lt; range.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;randomPath&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;, &#039;&#039;idPathCorner&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;randomTarget&#039;&#039;&#039;(string ignoreName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a random targeted entity. Pass in an entity name to skip that entity.&lt;br /&gt;
::&#039;&#039;ignoreName&#039;&#039;: the name of an entity to ignore&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;rangedThreatTo&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Could this entity threaten the given (target) entity from a distance?&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;readLightgemModifierFromWorldspawn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reAttachToCoords&#039;&#039;&#039;(string attName, string joint, vector offset, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Reattach an existing attachment&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the name of the attachment we want to reattach. &lt;br /&gt;
::&#039;&#039;joint&#039;&#039;: the name of the joint to attach to&lt;br /&gt;
::&#039;&#039;offset&#039;&#039;: the translation offset from joint&lt;br /&gt;
::&#039;&#039;angles&#039;&#039;: a (pitch, yaw, roll) angle vector that defines the rotation  of the attachment relative to the joint&#039;s orientation&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reAttachToPos&#039;&#039;&#039;(string attName, string position); ====&lt;br /&gt;
&lt;br /&gt;
:Reattach an existing attachment to a named attachment position. Example: reAttachToPos( melee_weapon, right_hand_held )&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the name of the attachment we want to reattach.&lt;br /&gt;
::&#039;&#039;position&#039;&#039;: the new position we want to attach it to.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reloadTorchReplacementAnims&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:If actor has a torch, reload the torch&#039;s replacement anims.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;remove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Removes the entity from the game. For AI, use kill() instead.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idClass&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeBinds&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Removes all attached entities from the game&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeInitialSplineAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Subtracts the initial spline angles to maintain the initial orientation of the mover.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Removes a key from an object&#039;s spawnargs, so things like getNextKey() don&#039;t retrieve it.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: the spawnarg to remove&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeReplacementAnim&#039;&#039;&#039;(string anim); ====&lt;br /&gt;
&lt;br /&gt;
:Removes the replacement for the given &amp;quot;anim&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeTarget&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Remove a target from this entity.&lt;br /&gt;
::&#039;&#039;target&#039;&#039;: the entity to remove from the targets&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;replaceInvItem&#039;&#039;&#039;(entity oldItem, entity newItem); ====&lt;br /&gt;
&lt;br /&gt;
:Replaces the entity &amp;lt;oldItem&amp;gt; with &amp;lt;newItem&amp;gt; in the inventory, while keeping &amp;lt;oldItem&amp;gt;&#039;s inventory position intact.  Note: The position guarantee only applies if &amp;lt;oldItem&amp;gt; and newItem  share the same category. If the categories are different, the position of &amp;lt;newItem&amp;gt; is likely to be different than the one of &amp;lt;oldItem&amp;gt;.  Note that &amp;lt;oldItem&amp;gt; will be removed from the inventory.  If &amp;lt;newItem&amp;gt; is the $null_entity, &amp;lt;oldItem&amp;gt; is just removed and no replacement happens.  Returns 1 if the operation was successful, 0 otherwise.&lt;br /&gt;
::&#039;&#039;newItem&#039;&#039;: can be $null_entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResetTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;resetWeaponProjectile&#039;&#039;&#039;(string weaponName); ====&lt;br /&gt;
&lt;br /&gt;
:Reloads the original projectile def name from the weaponDef. Used to revert a change made by the event changeWeaponProjectile().&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;resetZoom&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cancels any pending zoom transitions and resets the FOV to normal.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reskinCollisionModel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:For use after setSkin() on moveables and static models, if the CM needs to be refreshed to update surface properties after a skin change. CM will be regenerated from the original model file with the new skin.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;respawn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Respawn&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idItem&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseAdd&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseAllow&#039;&#039;&#039;(float type, entity responder); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseEnable&#039;&#039;&#039;(float type, float state); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 0 = disabled, 1 = enabled&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseIgnore&#039;&#039;&#039;(float type, entity responder); ====&lt;br /&gt;
&lt;br /&gt;
:This functions must be called on the stim entity. It will add the response to the ignore list, so that subsequent stims, should not trigger the stim anymore.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseRemove&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseSetAction&#039;&#039;&#039;(float type, string action); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseTrigger&#039;&#039;&#039;(entity source, float stimType); ====&lt;br /&gt;
&lt;br /&gt;
:Fires a response on this entity, without a stim (a stand-alone response, so to say)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restartPatrol&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;RestartTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restoreAddedEnts&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Base&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restoreMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restorePosition&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns this entity to the position stored in the &amp;quot;origin&amp;quot; spawn arg. This is the position the entity was spawned in unless the &amp;quot;origin&amp;quot; key is changed. Note that there is no guarantee that the entity won&#039;t be stuck in another entity when moved, so care should be taken to make sure that isn&#039;t possible.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rightFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to right foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idAnimated&#039;&#039;, &#039;&#039;idTestModel&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ropeRemovalCleanup&#039;&#039;&#039;(entity ropeEnt); ====&lt;br /&gt;
&lt;br /&gt;
:Called when rope arrow ropes are removed, removes stale pointers on the player object.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotate&#039;&#039;&#039;(vector angleSpeed); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation with the given angular speed. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateDownTo&#039;&#039;&#039;(float axis, float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation about the given axis by decreasing the current angle towards the given angle. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateOnce&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation towards the current angles plus the given Euler angles. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateTo&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation towards the given Euler angles. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateUpTo&#039;&#039;&#039;(float axis, float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation about the given axis by increasing the current angle towards the given angle. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;saveConDump&#039;&#039;&#039;(string cmd, string cmd); ====&lt;br /&gt;
&lt;br /&gt;
:Saves condump into FM directory; first argument is appended to dump filename, everything before last occurence of second argument is removed&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;saveGame&#039;&#039;&#039;(string filename); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;saveMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;say&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Multiplayer - Print this line on the network&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;scaleVine&#039;&#039;&#039;(float factor); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmVine&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;selectWeapon&#039;&#039;&#039;(string weapon); ====&lt;br /&gt;
&lt;br /&gt;
:Selects the weapon the player is holding.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;sessionCommand&#039;&#039;&#039;(string cmd); ====&lt;br /&gt;
&lt;br /&gt;
:Sends the sessioncommand to the game&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setActiveInventoryMapEnt&#039;&#039;&#039;(entity mapEnt); ====&lt;br /&gt;
&lt;br /&gt;
:Notify the player about a new active map entity. This clears out any previously active maps.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAcuity&#039;&#039;&#039;(string type, float val); ====&lt;br /&gt;
&lt;br /&gt;
:ai generalized alerts&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAlertGracePeriod&#039;&#039;&#039;(float frac, float duration, float count); ====&lt;br /&gt;
&lt;br /&gt;
:This starts the alert grace period for an AI. Should be called in the same frame as the alert that pushes them into a higher state.&lt;br /&gt;
::&#039;&#039;frac&#039;&#039;: the fraction of the alert below which they should ignore alerts during the grace period.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: the duration of the period in seconds&lt;br /&gt;
::&#039;&#039;count&#039;&#039;: the number of alerts ignored above which the grace period is invalid&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAlertLevel&#039;&#039;&#039;(float newLevel); ====&lt;br /&gt;
&lt;br /&gt;
:Set the alert level (AI_AlertLevel). This should always be called instead of setting AI_AlertLevel directly.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAngles&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current orientation of this entity (relative to bind parent if any)&lt;br /&gt;
::&#039;&#039;angles&#039;&#039;: the new orientation&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAngularVelocity&#039;&#039;&#039;(vector velocity); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current angular velocity of this entity. The angular velocity of a physics object is a vector that passes through the center of mass. The direction of this vector defines the axis of rotation and the magnitude defines the rate of rotation about the axis in radians per second.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAngularVelocityB&#039;&#039;&#039;(vector velocity, float id); ====&lt;br /&gt;
&lt;br /&gt;
:Set the angular velocity of a particular body&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Base&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAnimPrefix&#039;&#039;&#039;(string prefix); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a string which is placed in front of any animation names.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAttackFlag&#039;&#039;&#039;(float combatType, float enabled); ====&lt;br /&gt;
&lt;br /&gt;
:Activate or deactivate the given attack flag&lt;br /&gt;
::&#039;&#039;combatType&#039;&#039;: see tdm_defs.script for possible enum values&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAudThresh&#039;&#039;&#039;(float val); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setBlendFrames&#039;&#039;&#039;(float channel, float blendFrame); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the number of frames to blend between animations on the given channel.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setBoneMod&#039;&#039;&#039;(float allowBoneMod); ====&lt;br /&gt;
&lt;br /&gt;
:Enables or disables head looking (may be obsolete).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setCamera&#039;&#039;&#039;(entity cameraEnt); ====&lt;br /&gt;
&lt;br /&gt;
:Turns over view control to the given camera entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setClipMask&#039;&#039;&#039;(float clipMask); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the clipmask of the physics object.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setColor&#039;&#039;&#039;(float parm0, float parm1, float parm2); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the RGB color of this entity (shader parms Parm0, Parm1, Parm2).&lt;br /&gt;
::&#039;&#039;parm0&#039;&#039;: red&lt;br /&gt;
::&#039;&#039;parm1&#039;&#039;: green&lt;br /&gt;
::&#039;&#039;parm2&#039;&#039;: blue&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;SetConstraintPosition&#039;&#039;&#039;(string constraintName, vector position); ====&lt;br /&gt;
&lt;br /&gt;
:Moves the constraint with the given name that binds this entity to another entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Base&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setContents&#039;&#039;&#039;(float contents); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the contents of the physics object.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setController&#039;&#039;&#039;(entity playerController); ====&lt;br /&gt;
&lt;br /&gt;
:Let a player assume movement control of an AI vehicle (may be remote control as in a player on a coach pulled by a horse)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CAIVehicle&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;setCurInvCategory&#039;&#039;&#039;(string categoryName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the inventory cursor to the first item of the named category. Returns 1 on success, 0 on failure (e.g. wrong category name)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;setCurInvItem&#039;&#039;&#039;(string itemName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the inventory cursor to the named item. Returns: the item entity of the newly selected item (can be $null_entity).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setcvar&#039;&#039;&#039;(string name, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a cvar.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setDroppable&#039;&#039;&#039;(float droppable); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether an item may be dropped from the inventory. &lt;br /&gt;
::&#039;&#039;droppable&#039;&#039;: if non-zero the item becomes droppable, when called with 0 the item becomes non-droppable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setEnemy&#039;&#039;&#039;(entity enemy); ====&lt;br /&gt;
&lt;br /&gt;
:Make the given entity an enemy.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setEntityRelation&#039;&#039;&#039;(entity ent, float relation); ====&lt;br /&gt;
&lt;br /&gt;
:Set a relation to another entity, this can be friendly (&amp;gt;0), neutral(0) or hostile (&amp;lt;0)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFlyOffset&#039;&#039;&#039;(float offset); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the preferred height relative to the player&#039;s view height to fly at.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFlySpeed&#039;&#039;&#039;(float speed); ====&lt;br /&gt;
&lt;br /&gt;
:Set the speed flying creatures move at. Also sets speed for moveTypeSlide.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFrobable&#039;&#039;&#039;(float frobable); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the entity is frobable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFrobOnlyUsedByInv&#039;&#039;&#039;(float OnOff); ====&lt;br /&gt;
&lt;br /&gt;
:Engages or disengages a mode where we only frobhilight entities that can be used by our current inventory item. This also disables general frobactions and only allows &amp;quot;used by&amp;quot; frob actions.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGui&#039;&#039;&#039;(float handle, string guiFile); ====&lt;br /&gt;
&lt;br /&gt;
:Loads a new file into an existing GUI.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiFloat&#039;&#039;&#039;(float handle, string key, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiInt&#039;&#039;&#039;(float handle, string key, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiString&#039;&#039;&#039;(float handle, string key, string val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiStringFromKey&#039;&#039;&#039;(float handle, string key, entity src, string srcKey); ====&lt;br /&gt;
&lt;br /&gt;
:This is a kludge. It is equivelant to: setGuiString( handle, key, src.getKey(srcKey) ) However, it&#039;s used to bypass the 127 char size limit on script strings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setHealth&#039;&#039;&#039;(float health); ====&lt;br /&gt;
&lt;br /&gt;
:Use these to set the health of AI or players (this also updates the AI_DEAD flag)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setHinderance&#039;&#039;&#039;(string source, float mCap, float fCap); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set hinderance from a source.&lt;br /&gt;
::&#039;&#039;mCap&#039;&#039;: mCap values from all sources are multiplied together to define a cap&lt;br /&gt;
::&#039;&#039;fCap&#039;&#039;: fCap values are not additive, the smallest one among all the sources is used&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setImmobilization&#039;&#039;&#039;(string source, float type); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set immobilization from a source. Warning: Not a finalized version. It&#039;s subject to change, so use it at your own risk.)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setJointAngle&#039;&#039;&#039;(float jointnum, float transform_type, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Modifies the orientation of the joint based on the transform type.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimatedEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setJointPos&#039;&#039;&#039;(float jointnum, float transform_type, vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Modifies the position of the joint based on the transform type.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimatedEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setKey&#039;&#039;&#039;(string key, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a key on this entity&#039;s spawn args. Note that most spawn args are evaluated when this entity spawns in, so this will not change the entity&#039;s behavior in most cases. This is chiefly for saving data the script needs in an entity for later retrieval.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: the spawnarg to set&lt;br /&gt;
::&#039;&#039;value&#039;&#039;: the value to store&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightgemModifier&#039;&#039;&#039;(string modifierName, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the named lightgem modifier to a certain value. An example would be the player lantern: setLightgemModifier(&amp;quot;lantern&amp;quot;, 32). This way multiple modifiers can be set by concurrent script threads.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightOrigin&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Set origin of lights independent of model origin&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightParm&#039;&#039;&#039;(float parmNum, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a shader parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightParms&#039;&#039;&#039;(float parm0, float parm1, float parm2, float parm3); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the red/green/blue/alpha shader parms on the light and the model.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLinearVelocity&#039;&#039;&#039;(vector velocity); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current linear velocity of this entity in units per second. The linear velocity of a physics object is a vector that defines the translation of the center of mass in units per second.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLinearVelocityB&#039;&#039;&#039;(vector velocity, float id); ====&lt;br /&gt;
&lt;br /&gt;
:Set the linear velocity of a particular body&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Base&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setModel&#039;&#039;&#039;(string modelName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the model this entity uses&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setMoveType&#039;&#039;&#039;(float movetype); ====&lt;br /&gt;
&lt;br /&gt;
:Set the current movetype.  movetypes are defined in tdm_ai.script&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setName&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the name of this entity.&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: the new name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setNeverDormant&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:enables or prevents an entity from going dormant&lt;br /&gt;
::&#039;&#039;enable&#039;&#039;: 1 = enable, 0 = disable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setNextState&#039;&#039;&#039;(string stateFunc); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the next state and waits until thread exits, or a frame delay before calling it. Handy for setting the state in the constructor.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveComp&#039;&#039;&#039;(float ObjNum, float CompNum, float state); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set the state of custom objective components&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: objective number. Starts counting at 1&lt;br /&gt;
::&#039;&#039;CompNum&#039;&#039;: component number. Starts counting at 1&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 1 or 0 for true or false&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveEnabling&#039;&#039;&#039;(float ObjNum, string strIn); ====&lt;br /&gt;
&lt;br /&gt;
:Set an objective&#039;s enabling objectives (objectives that must be completed before that objective may be completed).&lt;br /&gt;
::&#039;&#039;strIn&#039;&#039;: takes the form of a string that is a space-delimited list of integer objectives representing the new enabling objectives. E.g. : &#039;1 2 3 4&#039;&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveOngoing&#039;&#039;&#039;(float ObjNum, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets objective ongoing.&lt;br /&gt;
::&#039;&#039;val&#039;&#039;: 1 for true, 0 for false&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveOptional&#039;&#039;&#039;(float ObjNum, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets objective mandatory.&lt;br /&gt;
::&#039;&#039;val&#039;&#039;: 1 for true, 0 for false&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveState&#039;&#039;&#039;(float ObjNum, float State); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set the state of objectives from the script. For example, use this to invalidate an objective when something happens in your mission. The first argument is the numerical index of the objective (taking &#039;user&#039; objective indices, starting at 1). Choose from the following for the second argument: OBJ_INCOMPLETE, OBJ_COMPLETE, OBJ_INVALID, OBJ_FAILED. Use this on $player1 like $player1.setObjectiveState(1, OBJ_COMPLETE);&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveText&#039;&#039;&#039;(float ObjNum, string newText); ====&lt;br /&gt;
&lt;br /&gt;
:Modify the displayed text for an objective. Can also be a string template like #str_20000&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveVisible&#039;&#039;&#039;(float ObjNum, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets objective visibility.&lt;br /&gt;
::&#039;&#039;val&#039;&#039;: 1 for true, 0 for false&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setOrigin&#039;&#039;&#039;(vector origin); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current position of this entity (relative to it&#039;s bind parent if any)&lt;br /&gt;
::&#039;&#039;origin&#039;&#039;: the new origin&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setOwner&#039;&#039;&#039;(entity owner); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the owner of this entity. Entities will never collide with their owner.&lt;br /&gt;
::&#039;&#039;owner&#039;&#039;: the entity which will be made owner of this entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPeekOverlayBackground&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the background overlay for peeking, depending on aspect ratio.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPeekView&#039;&#039;&#039;(float OnOff, vector origin); ====&lt;br /&gt;
&lt;br /&gt;
:Toggle whether we should use a view from a peek entity as the player&#039;s view&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPersistantArg&#039;&#039;&#039;(string key, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a key/value pair that persists between maps&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPortAISoundLoss&#039;&#039;&#039;(float handle, float value); ====&lt;br /&gt;
&lt;br /&gt;
:AI sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPortPlayerSoundLoss&#039;&#039;&#039;(float handle, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Player sound loss scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPortSoundLoss&#039;&#039;&#039;(float handle, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPrime&#039;&#039;&#039;(entity vine); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmVine&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setRadius&#039;&#039;&#039;(float radius); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the size of the bounding box, x=y=z=radius.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setRadiusXYZ&#039;&#039;&#039;(float x, float y, float z); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the width/length/height of the light bounding box.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setRelation&#039;&#039;&#039;(float team1, float team2, float val); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setReplacementAnim&#039;&#039;&#039;(string animToReplace, string replacement); ====&lt;br /&gt;
&lt;br /&gt;
:Replaces the animation &amp;quot;animToReplace&amp;quot; with &amp;quot;replacement&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSavePermissions&#039;&#039;&#039;(float permission); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
::&#039;&#039;permission&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSecretsFound&#039;&#039;&#039;(float secrets); ====&lt;br /&gt;
&lt;br /&gt;
:Set how many secrets the player has found. Use getMissionStatistic() for getting the current value.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSecretsTotal&#039;&#039;&#039;(float secrets); ====&lt;br /&gt;
&lt;br /&gt;
:Set how many secrets exist in the map in total. Use getMissionStatistic() for getting the current value.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setShader&#039;&#039;&#039;(string shader); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the shader to be used for the light.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setShaderParm&#039;&#039;&#039;(float parm, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the value of the specified shader parm.&lt;br /&gt;
::&#039;&#039;parm&#039;&#039;: shader parm index&lt;br /&gt;
::&#039;&#039;value&#039;&#039;: new value&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;, &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setShaderParms&#039;&#039;&#039;(float parm0, float parm1, float parm2, float parm3); ====&lt;br /&gt;
&lt;br /&gt;
:Sets shader parms Parm0, Parm1, Parm2, and Parm3 (red, green, blue, and alpha respectively).&lt;br /&gt;
::&#039;&#039;parm0&#039;&#039;: red&lt;br /&gt;
::&#039;&#039;parm1&#039;&#039;: green&lt;br /&gt;
::&#039;&#039;parm2&#039;&#039;: blue&lt;br /&gt;
::&#039;&#039;parm3&#039;&#039;: alpha&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSightThreshold&#039;&#039;&#039;(float sightThreshold); ====&lt;br /&gt;
&lt;br /&gt;
:Set the sight threshold of the security camera: how lit up the player&#039;s lightgem needs to be in order to be seen. 0.0 to 1.0&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSize&#039;&#039;&#039;(vector min, vector max); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the size of this entity&#039;s bounding box.&lt;br /&gt;
::&#039;&#039;min&#039;&#039;: minimum corner coordinates&lt;br /&gt;
::&#039;&#039;max&#039;&#039;: maximum corner coordinates&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSkin&#039;&#039;&#039;(string skinName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the skin this entity uses.  Set to &amp;quot;&amp;quot; to turn off the skin.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSmokeVisibility&#039;&#039;&#039;(float particle_num, float on); ====&lt;br /&gt;
&lt;br /&gt;
:enables/disables smoke particles on bones.  pass in the particle #, or ALL_PARTICLES for turning on/off all particle systems. particles are spawned in the order they appear in the entityDef&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSolid&#039;&#039;&#039;(float solidity); ====&lt;br /&gt;
&lt;br /&gt;
:Set the solidity of the entity. If the entity has never been solid before it will be assigned solid and opaque contents/clip masks.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSoundLoss&#039;&#039;&#039;(float loss); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound loss value (dB).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPortalEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSoundVolume&#039;&#039;&#039;(float newLevel); ====&lt;br /&gt;
&lt;br /&gt;
:Set the volume of the sound to play, must be issued before startSoundShader.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSpawnArg&#039;&#039;&#039;(string key, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a key/value pair to be used when a new entity is spawned.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSpyglassOverlayBackground&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the background overlay for the spyglass, depending on aspect ratio.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setStartedOff&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setState&#039;&#039;&#039;(string stateFunc); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the next state and goes to it immediately&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSyncedAnimWeight&#039;&#039;&#039;(float channel, float animindex, float weight); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the blend amount on multi-point anims.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTalkState&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:Sets whether the player can talk to this character or not.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTalkTarget&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the entity (player) trying to talk to the character&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTeam&#039;&#039;&#039;(float newTeam); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the team number of this entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;SetTimerState&#039;&#039;&#039;(float stimId, float state); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTurnHinderance&#039;&#039;&#039;(string source, float mCap, float fCap); ====&lt;br /&gt;
&lt;br /&gt;
:Set the hinderance on the view turning from a source&lt;br /&gt;
::&#039;&#039;mCap&#039;&#039;: mCap values from all sources are multiplied together to define a cap&lt;br /&gt;
::&#039;&#039;fCap&#039;&#039;: fCap values are not additive, the smallest one among all the sources is used&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTurnRate&#039;&#039;&#039;(float rate); ====&lt;br /&gt;
&lt;br /&gt;
:Set the rate the character turns at&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setViewAngles&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the player view angles, e.g. make the player facing this direction. 0 0 0 is east (along the X axis in DR), 0 90 0 north (along the Y axis in DR) 0 180 0 west, 0 270 0 south.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setWatered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmVine&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setWorldOrigin&#039;&#039;&#039;(vector origin); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current position of this entity (regardless of any bind parent).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shooterFireProjectile&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Fires a projectile.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmFuncShooter&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;shooterGetAmmo&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the ammonition&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmFuncShooter&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;shooterGetState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current state of this shooter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmFuncShooter&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shooterSetAmmo&#039;&#039;&#039;(float newAmmo); ====&lt;br /&gt;
&lt;br /&gt;
:Set the ammonition&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmFuncShooter&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shooterSetState&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:Activates / deactivates the shooter entity.&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 1 = active, 0 = inactive&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmFuncShooter&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;show&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Makes this entity visible if it has a model.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;showAttachment&#039;&#039;&#039;(string attName, float show); ====&lt;br /&gt;
&lt;br /&gt;
:Show or hide an attachment.&lt;br /&gt;
::&#039;&#039;show&#039;&#039;: 1 shows attachment, 0 hides it.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;showAttachmentInd&#039;&#039;&#039;(float index, float show); ====&lt;br /&gt;
&lt;br /&gt;
:Show or hide an attachment by array index.&lt;br /&gt;
::&#039;&#039;index&#039;&#039;: starts at 0&lt;br /&gt;
::&#039;&#039;show&#039;&#039;: 1 shows attachment, 0 hides it.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shrivel&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;sin&#039;&#039;&#039;(float degrees); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the sine of the given angle in degrees.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;slideTo&#039;&#039;&#039;(vector position, float time); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;smoking&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:flame is now smoking (1), or not (0)&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 1 = smoking, 0 = not smoking&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;spawn&#039;&#039;&#039;(string classname); ====&lt;br /&gt;
&lt;br /&gt;
:Creates an entity of the specified classname and returns a reference to the entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;SpawnFloat&#039;&#039;&#039;(string key, float default); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the floating point value for the given spawn argument.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;SpawnString&#039;&#039;&#039;(string key, string default); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string for the given spawn argument.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;spawnThrowableProjectile&#039;&#039;&#039;(string projectileName, string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:This method spawns a projectile of the type named by the caller and attaches it to the joint given by the caller.  The projectile becomes the AI&#039;s firable projectile. Returns a pointer to a projectile entity that can be  thrown by the AI. You can use AI_LaunchMissle (e* = launchMissle(v,v) ) to throw the stone.&lt;br /&gt;
::&#039;&#039;projectileName&#039;&#039;: The name of the projectile to spawn (as seen in a .def file) Must be descended from idProjectile&lt;br /&gt;
::&#039;&#039;jointName&#039;&#039;: The name of the joint on the model to which the particle should be attached for throwing. If this is NULL or the empty string, then it is attached to the model center.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;SpawnVector&#039;&#039;&#039;(string key, vector default); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the vector for the given spawn argument.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;speed&#039;&#039;&#039;(float speed); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the movement speed. Set this speed before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;sqrt&#039;&#039;&#039;(float square); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the square root of the given number.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;start&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Starts a spline or anim camera moving.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idCameraAnim&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startFx&#039;&#039;&#039;(string fx); ====&lt;br /&gt;
&lt;br /&gt;
:Starts an FX on this entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startGamePlayTimer&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Resets the game play timer to zero and (re)starts it.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startMouseGesture&#039;&#039;&#039;(float key, float thresh, float test, float inverted, float turnHinderance, float decideTime, float deadTime); ====&lt;br /&gt;
&lt;br /&gt;
:Start tracking a mouse gesture that started when the key impulse was pressed. Discretizes analog mouse movement into a few different gesture possibilities. Impulse arg can also be a button, see the UB_* enum in usercmdgen.h. For now, only one mouse gesture check at a time.&lt;br /&gt;
::&#039;&#039;thresh&#039;&#039;: Waits until the threshold mouse input thresh is reached before deciding.&lt;br /&gt;
::&#039;&#039;test&#039;&#039;: determines which test to do (0 = up/down, 1 = left/right, 2 = 4 directions, 3 = 8 directions).&lt;br /&gt;
::&#039;&#039;inverted&#039;&#039;: inverts the movement if set to 1, does not if 0&lt;br /&gt;
::&#039;&#039;turnHinderance&#039;&#039;: Sets the max player view turn rate when checking this mouse gesture (0 =&amp;gt; player view locked, 1.0 =&amp;gt; no effect on view turning)&lt;br /&gt;
::&#039;&#039;decideTime&#039;&#039;: time in milliseconds after which the mouse gesture is auto-decided, in the event that the mouse movement threshold was not reached. A DecideTime of -1 means wait forever until the button is released.&lt;br /&gt;
::&#039;&#039;deadTime&#039;&#039;: how long after attack is pressed that mouse control remains dampened by the fraction turnHinderance.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startRagdoll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Switches to a ragdoll taking over the animation.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimated&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;startSound&#039;&#039;&#039;(string sound, float channel, float netSync); ====&lt;br /&gt;
&lt;br /&gt;
:Plays the sound specified by the snd_* key/value pair on the channel and returns the length of the sound in seconds. This is the preferred method for playing sounds on an entity since it ensures that the sound is precached.&lt;br /&gt;
::&#039;&#039;sound&#039;&#039;: the spawnarg to reference, e.g. &#039;snd_move&#039;&lt;br /&gt;
::&#039;&#039;channel&#039;&#039;: the channel to play on&lt;br /&gt;
::&#039;&#039;netSync&#039;&#039;: -&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;startSoundShader&#039;&#039;&#039;(string shaderName, float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Plays a specific sound shader on the channel and returns the length of the sound in seconds. This is not the preferred method of playing a sound since you must ensure that the sound is loaded.&lt;br /&gt;
::&#039;&#039;shaderName&#039;&#039;: the sound shader to play&lt;br /&gt;
::&#039;&#039;channel&#039;&#039;: the channel to play the sound on&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startSpline&#039;&#039;&#039;(entity spline); ====&lt;br /&gt;
&lt;br /&gt;
:Starts moving along a spline stored on the given entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StartTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startZoom&#039;&#039;&#039;(float duration, float startFOV, float endFOV); ====&lt;br /&gt;
&lt;br /&gt;
:Call this to start the zoom in event. The player FOV is gradually zoomed in until over the given timespan.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: duration of the transition in msec&lt;br /&gt;
::&#039;&#039;startFOV&#039;&#039;: The start FOV, this is clamped to [1..179]&lt;br /&gt;
::&#039;&#039;endFOV&#039;&#039;: The end FOV, this is clamped to [1..179]&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_light&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Switches the spotlight on or off. Respects the security camera&#039;s power state.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_AI&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see AIs.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_animals&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see animals. Checked after seeAI or seeBodies.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_bodies&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see bodies.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_player&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see the player.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_sweep&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Enables or disables the camera&#039;s sweeping.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimAdd&#039;&#039;&#039;(float type, float radius); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimClearIgnoreList&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:This clears the ignore list for the stim of the given type It can be used if an entity changes state in some way that it would no longer be ignored&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimEnable&#039;&#039;&#039;(float type, float state); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 0 = disabled, 1 = enabled&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimRemove&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stop&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops a spline or anim camera moving.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idCameraAnim&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopAnim&#039;&#039;&#039;(float channel, float frames); ====&lt;br /&gt;
&lt;br /&gt;
:Stops the animation currently playing on the given channel over the given number of frames.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopFxFov&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopMouseGesture&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopMoving&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops any translational movement.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopPatrol&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops an AI from patrolling&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopRagdoll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:turns off the ragdoll&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopRotating&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops any rotational movement.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopSound&#039;&#039;&#039;(float channel, float netSync); ====&lt;br /&gt;
&lt;br /&gt;
:Stops a specific sound shader on the channel.&lt;br /&gt;
::&#039;&#039;channel&#039;&#039;: the channel to stop playback on&lt;br /&gt;
::&#039;&#039;netSync&#039;&#039;: -&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopSpline&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops moving along a spline.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopThinking&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StopTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strFind&#039;&#039;&#039;(string text, string find, float casesensitive, float start, float end); ====&lt;br /&gt;
&lt;br /&gt;
:Return the position of the given substring, counting from 0, or -1 if not found.&lt;br /&gt;
::&#039;&#039;casesensitive&#039;&#039;: 0&lt;br /&gt;
::&#039;&#039;start&#039;&#039;: 0&lt;br /&gt;
::&#039;&#039;end&#039;&#039;: -1&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strLeft&#039;&#039;&#039;(string text, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a string composed of the first num characters&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strLength&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of characters in the string&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strMid&#039;&#039;&#039;(string text, float start, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a string composed of the characters from start to start + num&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strRemove&#039;&#039;&#039;(string text, string remove); ====&lt;br /&gt;
&lt;br /&gt;
:Replace all occurances of the given substring with &amp;quot;&amp;quot;. Example: StrRemove(&amp;quot;abba&amp;quot;,&amp;quot;bb&amp;quot;) results in &amp;quot;aa&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strReplace&#039;&#039;&#039;(string text, string remove, string replace); ====&lt;br /&gt;
&lt;br /&gt;
:Replace all occurances of the given string with the replacement string. Example: StrRemove(&amp;quot;abba&amp;quot;,&amp;quot;bb&amp;quot;,&amp;quot;ccc&amp;quot;) results in &amp;quot;accca&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strRight&#039;&#039;&#039;(string text, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a string composed of the last num characters&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strSkip&#039;&#039;&#039;(string text, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string following the first num characters&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strToFloat&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the numeric value of the given string.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strToInt&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the integer value of the given string.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;sway&#039;&#039;&#039;(float speed, float phase, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation back and forth along the given angles with the given speed and phase.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Switch&#039;&#039;&#039;(float newState); ====&lt;br /&gt;
&lt;br /&gt;
:Move the lever to the on or off position (0 = off).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CFrobLever&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;switchState&#039;&#039;&#039;(string stateName); ====&lt;br /&gt;
&lt;br /&gt;
:Switches to the state with the given name, current one is ended.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;syncAnimChannels&#039;&#039;&#039;(float fromChannel, float toChannel, float blendFrames); ====&lt;br /&gt;
&lt;br /&gt;
:Synchronises the channels&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Tap&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Operates this handle.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CFrobHandle&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;TDM_Lock_OnLockPicked&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;, &#039;&#039;CFrobLock&#039;&#039;, &#039;&#039;idProjectile&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;TDM_Lock_StatusUpdate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;, &#039;&#039;CFrobLock&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;teleportTo&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:Teleports the entity to the position of the other entity, plus a possible offset and random offset (defined on the spawnargs of the entity to be teleported)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;terminate&#039;&#039;&#039;(float threadNumber); ====&lt;br /&gt;
&lt;br /&gt;
:Terminates a thread.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testAnimAttack&#039;&#039;&#039;(string animname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testAnimMove&#039;&#039;&#039;(string animname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testAnimMoveTowardEnemy&#039;&#039;&#039;(string animname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testChargeAttack&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testEvent1&#039;&#039;&#039;(float float_pi, float int_beef, float float_exp, string string_tdm, float float_exp10, float int_food); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;testEvent2&#039;&#039;&#039;(float int_prevres, vector vec_123, float int_food, entity ent_player, entity ent_null, float float_pi, float float_exp); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;testEvent3&#039;&#039;&#039;(entity ent_prevres, vector vec_123, float float_pi, entity ent_player); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testMeleeAttack&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testMoveToPosition&#039;&#039;&#039;(vector position); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;threadname&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the name of the current thread.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;throwAF&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;throwMoveable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;time&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the movement time. Set this time before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Toggle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the forcefield on and off.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idForceField&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_light&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the spotlight on/off.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_AI&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see AIs.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_animals&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see bodies. Checked after seeAI or seeBodies.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_bodies&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see bodies.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_player&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see the player.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_sweep&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the camera sweep.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ToggleLock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the lock state. Unlocked movers will be locked and vice versa. The notes above concerning Unlock() still apply if this call unlocks the mover. &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ToggleOpen&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the mover state. Closes when fully open, opens when fully closed. If the mover is &amp;quot;interrupted&amp;quot; (e.g. when the player frobbed the mover in between), the move direction depends on the state of the internal &amp;quot;intent_open&amp;quot; flag. &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;totalAmmoCount&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Amount of ammo in inventory. since each shot may use more than 1 ammo, this is different than ammoAvailable()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;touches&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if this entity touches the other entity.&lt;br /&gt;
::&#039;&#039;other&#039;&#039;: the entity to check against&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;trace&#039;&#039;&#039;(vector start, vector end, vector mins, vector maxs, float contents_mask, entity passEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the fraction of movement completed before the box from &#039;mins&#039; to &#039;maxs&#039; hits solid geometry when moving from &#039;start&#039; to &#039;end&#039;. The &#039;passEntity&#039; is considered non-solid during the move.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;tracePoint&#039;&#039;&#039;(vector start, vector end, float contents_mask, entity passEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the fraction of movement completed before the trace hits solid geometry when moving from &#039;start&#039; to &#039;end&#039;. The &#039;passEntity&#039; is considered non-solid during the move.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;translate&#039;&#039;&#039;(string input); ====&lt;br /&gt;
&lt;br /&gt;
:Translates a string (like #str_12345) into the current language&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceBetweenEntities&#039;&#039;&#039;(entity source, entity dest); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance between two entities.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceBetweenPoints&#039;&#039;&#039;(vector source, vector dest); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance between two points.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceToEntity&#039;&#039;&#039;(entity destination); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance to entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceToPoint&#039;&#039;&#039;(vector destination); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance to point.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;trigger&#039;&#039;&#039;(entity entityToTrigger); ====&lt;br /&gt;
&lt;br /&gt;
:Triggers the given entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;triggerMissionEnd&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;triggerParticles&#039;&#039;&#039;(string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;turnTo&#039;&#039;&#039;(float yaw); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;turnToEntity&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;turnToPos&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;unbind&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Detaches this entity from its master.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Unlock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Unlocks the mover. Calls to Open() will succeed after this call. Depending on the value of the spawnarg &amp;quot;open_on_unlock&amp;quot; the mover might automatically open after this call. &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;unpauseGame&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Unpauses the game. Most scripts are not executed during g_stopTime == true and won&#039;t get into the position of calling this.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;useAmmo&#039;&#039;&#039;(float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Eats the specified amount of ammo&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;vecLength&#039;&#039;&#039;(vector vec); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the length of the given vector.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;vecNormalize&#039;&#039;&#039;(vector vec); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the normalized version of the given vector.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;VecRotate&#039;&#039;&#039;(vector vector, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Rotates a vector by the specified angles.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;VecToAngles&#039;&#039;&#039;(vector vec); ====&lt;br /&gt;
&lt;br /&gt;
:Returns Euler angles for the given direction.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;visScan&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Checks for enemies or player in the AI&#039;s FOV, using light level and distance. For now the check is only done on the player.  Returns a reference to the sighted actor.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;wait&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends execution of the current thread for the given number of seconds.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;, &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitAction&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitFor&#039;&#039;&#039;(entity mover); ====&lt;br /&gt;
&lt;br /&gt;
:Waits for the given entity to complete its move.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitForRender&#039;&#039;&#039;(entity e); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends the current thread until &#039;e&#039; might have been rendered. It&#039;s event based, so it doesn&#039;t waste CPU repeatedly checking inPVS(). e.inPVS() will very likely be true when the thread resumes. If e.inPVS() is true, calling waitForRender() will probably just wait a frame, unless D3 can figure out that the entity doesn&#039;t need to be rendered. Optimizations regarding shadowcasting lights may not apply to this function - it is based purely off whether or not the entity&#039;s bounding box is visible.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitForThread&#039;&#039;&#039;(float threadNumber); ====&lt;br /&gt;
&lt;br /&gt;
:Waits for the given thread to terminate.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitFrame&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends execution of current thread for one game frame.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;, &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;wakeOnFlashlight&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:Tells the monster to activate when flashlight shines on them.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;wander&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;warning&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Issues a warning.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;wasDamaged&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Check if the player was damaged this frame.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponHolstered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponLowering&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponOutOfAmmo&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponReady&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponReloading&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponRising&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponState&#039;&#039;&#039;(string stateFunction, float blendFrames); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Events by Spawnclass / Entity Type ==&lt;br /&gt;
=== idClass ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;remove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Removes the entity from the game. For AI, use kill() instead.&lt;br /&gt;
&lt;br /&gt;
=== idActor ===&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animDistance&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the distance that the anim travels. If the entity has multiple anims with animName, the distance may not match the anim that is played. Use chooseAnim to get a non-random anim and pass that string into animDistance.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animDone&#039;&#039;&#039;(float channel, float blendOutFrames); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the animation playing on the given channel is completed considering a number of blend frames.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animIsPaused&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Return whether the given anim channel is paused&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animLength&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the length of the anim in seconds. If the entity has multiple anims with animName, length may not match the anim that is played. Use chooseAnim to get a non-random anim and pass that string into animLength.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;animState&#039;&#039;&#039;(float channel, string stateFunction, float blendFrame); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a new animation state script function for the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attach&#039;&#039;&#039;(entity ent, string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Attach an entity to the AI. Entity spawnArgs checked for attachments are:  - &amp;quot;origin&amp;quot;, &amp;quot;angles&amp;quot;, and &amp;quot;joint&amp;quot;. These must be set prior to calling attach.&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the desired name of the attachment, e.g., &#039;melee_weapon&#039;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attachToPos&#039;&#039;&#039;(entity ent, string position, string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Attach an entity to the AI, using a named attachment position&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the desired name of the attachment, e.g., &#039;melee_weapon&#039;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;checkAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Ensures that the animation exists and causes an error if it doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;chooseAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Chooses a random anim and returns the name. Useful for doing move tests on anims.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;closestEnemyToPoint&#039;&#039;&#039;(vector point); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the enemy closest to the given location.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableAnimchannel&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Used to disable a certain animchannel (for example if the ai is dead)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableEyeFocus&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables eye focus.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;DisableLegIK&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:disables leg IK&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disablePain&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables pain animations.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;DisableWalkIK&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:disables walk IK&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dropAttachment&#039;&#039;&#039;(string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Drop the attachment for the given attachment name.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dropAttachmentInd&#039;&#039;&#039;(float index); ====&lt;br /&gt;
&lt;br /&gt;
:Drop the attachment for the given index.&lt;br /&gt;
::&#039;&#039;index&#039;&#039;: starts at 0&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableAnim&#039;&#039;&#039;(float channel, float blendFrames); ====&lt;br /&gt;
&lt;br /&gt;
:Enables animation on the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableEyeFocus&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables eye focus.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;EnableLegIK&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:enables leg IK&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enablePain&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables pain animations.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;EnableWalkIK&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:enables walk IK&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;finishAction&#039;&#039;&#039;(string action); ====&lt;br /&gt;
&lt;br /&gt;
:Finishes the given wait action.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;finishChannelAction&#039;&#039;&#039;(float channel, string animname); ====&lt;br /&gt;
&lt;br /&gt;
:Overloaded finishAction function for setting the waitstate on each channel separately&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;footstep&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getAnimState&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the current animation state script function used for the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAttachment&#039;&#039;&#039;(string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Get the attached entity with the given attachment name Will be NULL if the name is invalid or if the entity no longer exists&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAttachmentInd&#039;&#039;&#039;(float index); ====&lt;br /&gt;
&lt;br /&gt;
:Get the attached entity at the given index. Will be NULL if the index is invalid or the entity no longer exists&lt;br /&gt;
::&#039;&#039;index&#039;&#039;: starts at 0&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAttackFlag&#039;&#039;&#039;(float combatType); ====&lt;br /&gt;
&lt;br /&gt;
:Returns 1 if the given attack flag is activated.&lt;br /&gt;
::&#039;&#039;combatType&#039;&#039;: see tdm_defs.script for possible enum values&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getBlendFrames&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of frames to blend between animations on the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getEyePos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get eye position of the player and the AI&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getHead&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity used for the character&#039;s head, if it has one.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeActPhase&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current melee action phase (holding,recovering,etc).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeActState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current melee action state (attacking/defending).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeActType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current melee action type (overhead,thrust,etc.).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeLastActTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the melee type of the last attack to hit this actor. Defaults to MELEETYPE_UNBLOCKABLE if we were not hit before.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeLastHitByType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the game time that the most recent melee action ended (in ms)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeResult&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the result of the last melee action Follows MELEERESULT_* enum defined in tdm_defs.script&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumAttachments&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Return the number of attachments on an AI. Used to iterate through the attachments if desired.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumMeleeWeapons&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of melee weapons attached to an actor. This refers to the TDM-style attachments with the spawnarg &#039;is_weapon_melee&#039; set to &#039;1&#039;.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumRangedWeapons&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of ranged weapons attached to an actor. This refers to the TDM-style attachments with the spawnarg &#039;is_weapon_ranged&#039; set to &#039;1&#039;.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getPainAnim&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the pain animation.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current state.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true when an entity has a specific animation.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasEnemies&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the actor has one or more enemies.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;idleAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Plays the given idle animation on the given channel.  Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;inAnimState&#039;&#039;&#039;(float channel, string stateFunc); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given animation state script function is currently used for the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;leftFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to left foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;lookupReplacementAnim&#039;&#039;&#039;(string anim); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current replacement animation for &amp;quot;anim&amp;quot;. Returns empty if no replacement anim &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeActionFinished&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Called when the animation for the melee action has finished.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeActionHeld&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Called when the melee action reaches the &amp;quot;hold&amp;quot; point.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeActionReleased&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Called when the melee action is released from the hold point.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeAttackStarted&#039;&#039;&#039;(float attType); ====&lt;br /&gt;
&lt;br /&gt;
:Registers the start of a given melee attack Intended to be called from a script that also starts the animation&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;meleeBestParry&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the melee type integer of the best parry given the enemy attacks at the time If no attacking enemy is found, returns default of MELEETYPE_RL Follows MELEETYPE_* enum defined in tdm_defs.script&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;meleeNameForNum&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:Converts a melee type integer to a string name suffix Used for finding the right animation for a given type, etc. Possible names are, in order: &amp;quot;Over, LR, RL, Thrust, General&amp;quot; Where general blocks all attacks types except unblockable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeParryStarted&#039;&#039;&#039;(float parType); ====&lt;br /&gt;
&lt;br /&gt;
:Registers the start of a given melee parry Intended to be called from a script that also starts the animation&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;nextEnemy&#039;&#039;&#039;(entity lastEnemy); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the next enemy the actor has acquired.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;overrideAnim&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the animation currently playing on the given channel and syncs the animation with the animation of the nearest animating channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pauseAnim&#039;&#039;&#039;(float channel, float bPause); ====&lt;br /&gt;
&lt;br /&gt;
:Pause all animations playing on the given channel. NOTE: Can also be used used by idWeapons&lt;br /&gt;
::&#039;&#039;bPause&#039;&#039;: true = pause, false = unpause&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Do not use, this is part of TDM&#039;s internal mechanics. Use playCustomAnim() on AI.in scripts instead of this. Plays the given animation on the given channel. Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playCycle&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Continuously repeats the given animation on the given channel.  Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;preventPain&#039;&#039;&#039;(float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Prevents any pain animation from being played for the given time in seconds.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: time in seconds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reAttachToCoords&#039;&#039;&#039;(string attName, string joint, vector offset, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Reattach an existing attachment&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the name of the attachment we want to reattach. &lt;br /&gt;
::&#039;&#039;joint&#039;&#039;: the name of the joint to attach to&lt;br /&gt;
::&#039;&#039;offset&#039;&#039;: the translation offset from joint&lt;br /&gt;
::&#039;&#039;angles&#039;&#039;: a (pitch, yaw, roll) angle vector that defines the rotation  of the attachment relative to the joint&#039;s orientation&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reAttachToPos&#039;&#039;&#039;(string attName, string position); ====&lt;br /&gt;
&lt;br /&gt;
:Reattach an existing attachment to a named attachment position. Example: reAttachToPos( melee_weapon, right_hand_held )&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the name of the attachment we want to reattach.&lt;br /&gt;
::&#039;&#039;position&#039;&#039;: the new position we want to attach it to.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reloadTorchReplacementAnims&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:If actor has a torch, reload the torch&#039;s replacement anims.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeReplacementAnim&#039;&#039;&#039;(string anim); ====&lt;br /&gt;
&lt;br /&gt;
:Removes the replacement for the given &amp;quot;anim&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rightFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to right foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAnimPrefix&#039;&#039;&#039;(string prefix); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a string which is placed in front of any animation names.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAttackFlag&#039;&#039;&#039;(float combatType, float enabled); ====&lt;br /&gt;
&lt;br /&gt;
:Activate or deactivate the given attack flag&lt;br /&gt;
::&#039;&#039;combatType&#039;&#039;: see tdm_defs.script for possible enum values&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setBlendFrames&#039;&#039;&#039;(float channel, float blendFrame); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the number of frames to blend between animations on the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setNextState&#039;&#039;&#039;(string stateFunc); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the next state and waits until thread exits, or a frame delay before calling it. Handy for setting the state in the constructor.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setReplacementAnim&#039;&#039;&#039;(string animToReplace, string replacement); ====&lt;br /&gt;
&lt;br /&gt;
:Replaces the animation &amp;quot;animToReplace&amp;quot; with &amp;quot;replacement&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setState&#039;&#039;&#039;(string stateFunc); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the next state and goes to it immediately&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSyncedAnimWeight&#039;&#039;&#039;(float channel, float animindex, float weight); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the blend amount on multi-point anims.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;showAttachment&#039;&#039;&#039;(string attName, float show); ====&lt;br /&gt;
&lt;br /&gt;
:Show or hide an attachment.&lt;br /&gt;
::&#039;&#039;show&#039;&#039;: 1 shows attachment, 0 hides it.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;showAttachmentInd&#039;&#039;&#039;(float index, float show); ====&lt;br /&gt;
&lt;br /&gt;
:Show or hide an attachment by array index.&lt;br /&gt;
::&#039;&#039;index&#039;&#039;: starts at 0&lt;br /&gt;
::&#039;&#039;show&#039;&#039;: 1 shows attachment, 0 hides it.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopAnim&#039;&#039;&#039;(float channel, float frames); ====&lt;br /&gt;
&lt;br /&gt;
:Stops the animation currently playing on the given channel over the given number of frames.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;syncAnimChannels&#039;&#039;&#039;(float fromChannel, float toChannel, float blendFrames); ====&lt;br /&gt;
&lt;br /&gt;
:Synchronises the channels&lt;br /&gt;
&lt;br /&gt;
=== idAFEntity_Base ===&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAngularVelocityB&#039;&#039;&#039;(float id); ====&lt;br /&gt;
&lt;br /&gt;
:Get the angular velocitiy of a particular body Returns (0,0,0) if the body ID is invalid.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLinearVelocityB&#039;&#039;&#039;(float id); ====&lt;br /&gt;
&lt;br /&gt;
:Get the linear velocitiy of a particular body Returns (0,0,0) if the body ID is invalid.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumBodies&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of bodies in the AF. If the AF physics pointer is NULL, it returns 0.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restoreAddedEnts&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAngularVelocityB&#039;&#039;&#039;(vector velocity, float id); ====&lt;br /&gt;
&lt;br /&gt;
:Set the angular velocity of a particular body&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;SetConstraintPosition&#039;&#039;&#039;(string constraintName, vector position); ====&lt;br /&gt;
&lt;br /&gt;
:Moves the constraint with the given name that binds this entity to another entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLinearVelocityB&#039;&#039;&#039;(vector velocity, float id); ====&lt;br /&gt;
&lt;br /&gt;
:Set the linear velocity of a particular body&lt;br /&gt;
&lt;br /&gt;
=== idAFEntity_Gibbable ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;gib&#039;&#039;&#039;(string damageDefName); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
=== idAFEntity_Generic ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idAFEntity_WithAttachedHead ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CAIVehicle ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearController&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Need separate clearController because scripting doesn&#039;t like passing in $null_entity? (greebo: one could remove this function and set the argument type of setController to &#039;E&#039;.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;frobRidable&#039;&#039;&#039;(entity playerController); ====&lt;br /&gt;
&lt;br /&gt;
:Called when a player directly mounts or dismounts a ridable AI.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getMoveAnim&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the player-requested movement anim for a player controlled AI vehicle&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setController&#039;&#039;&#039;(entity playerController); ====&lt;br /&gt;
&lt;br /&gt;
:Let a player assume movement control of an AI vehicle (may be remote control as in a player on a coach pulled by a horse)&lt;br /&gt;
&lt;br /&gt;
=== idCombatNode ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;markUsed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the combat node if &amp;quot;use_once&amp;quot; is set on the entity.&lt;br /&gt;
&lt;br /&gt;
=== idAI ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;alert&#039;&#039;&#039;(string type, float val); ====&lt;br /&gt;
&lt;br /&gt;
:ai generalized alerts&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;alertAI&#039;&#039;&#039;(string type, float amount, entity actor); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
::&#039;&#039;type&#039;&#039;: alert type&lt;br /&gt;
::&#039;&#039;amount&#039;&#039;: alert amount&lt;br /&gt;
::&#039;&#039;actor&#039;&#039;: actor causing alert&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowDamage&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:The AI can take damage again.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowHiddenMovement&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:Normally, when hidden, monsters do not run physics. This enables physics when hidden.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowMovement&#039;&#039;&#039;(float allow); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;animTurn&#039;&#039;&#039;(float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Enable/disable animation controlled turning.&lt;br /&gt;
::&#039;&#039;angle&#039;&#039;: Pass in the maximum # of degrees the animation turns. Use an amount of 0 to disable.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attackBegin&#039;&#039;&#039;(string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attackEnd&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;attackMelee&#039;&#039;&#039;(string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the attack hit&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;attackMissile&#039;&#039;&#039;(string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:returns projectile fired&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bark&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Let the AI bark a certain sound.&lt;br /&gt;
::&#039;&#039;sound&#039;&#039;: sound name, e.g. &#039;snd_warn_response&#039;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;becomeNonSolid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Makes the moveable non-solid for other entities.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;becomeRagdoll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:enables the ragdoll if the entity has one&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;becomeSolid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;burn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canBecomeSolid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canHitEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canHitEnemyFromAnim&#039;&#039;&#039;(string anim); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canHitEnemyFromJoint&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canReachEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if character can walk to enemy&#039;s position. For walking monsters, enemy should be near the floor.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canReachEntity&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if character can walk to entity&#039;s position. For walking monsters, entity should be near the floor.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canReachPosition&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if character can walk to specified position. For walking monsters, position should be near the floor.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSee&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSeeExt&#039;&#039;&#039;(entity ent, float b_useFOV, float b_useLighting); ====&lt;br /&gt;
&lt;br /&gt;
:This is an alternate version of canSee that can optionally choose to use field of vision and lighting calculations.&lt;br /&gt;
::&#039;&#039;b_useFOV&#039;&#039;: If 0 the entity will be visible even if the AI&#039;s back is turned to it&lt;br /&gt;
::&#039;&#039;b_useLighting&#039;&#039;: If b_useLighting is 0 the entity will be visible in complete darkness. If it is 1, the entity will only be visible if there is light shining on it, but the slightest light is enought. Use &amp;quot;isEntityHidden&amp;quot; as a script event with a threshold instead.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSeePositionExt&#039;&#039;&#039;(vector position, float b_useFOV, float b_useLighting); ====&lt;br /&gt;
&lt;br /&gt;
:This is an alternate version of canSeeExt that tests a location rather than an entity. Note that any actor at the position may make it not seeable from a distance.&lt;br /&gt;
::&#039;&#039;b_useFOV&#039;&#039;: If 0 the entity will be visible even if the AI&#039;s back is turned to it&lt;br /&gt;
::&#039;&#039;b_useLighting&#039;&#039;: If 0 the entity will be visible in complete darkness&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;chargeAttack&#039;&#039;&#039;(string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearBurn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clears the enemy entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearFlyOffset&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the preferred height relative to the player&#039;s view height to fly at to the value set in the def file.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;closestReachableEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Used for determining tactile alert targets&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;closestReachableEnemyOfEntity&#039;&#039;&#039;(entity team_mate); ====&lt;br /&gt;
&lt;br /&gt;
:Finds another character&#039;s closest reachable enemy&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;createMissile&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:returns projectile created&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;createMissileFromDef&#039;&#039;&#039;(string defName, string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;directDamage&#039;&#039;&#039;(entity damageTarget, string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableAFPush&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableClip&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableGravity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dropTorch&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;emptyHand&#039;&#039;&#039;(string hand); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableAFPush&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableClip&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableGravity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;endState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Ends the current state with the given name, returns TRUE if more than one state is remaining.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyInCombatCone&#039;&#039;&#039;(entity combatNode, float use_current_enemy_location); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyPositionValid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyRange&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyRange2D&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;entityInAttackCone&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;faceEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;faceEntity&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;facingIdeal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findActorsInBounds&#039;&#039;&#039;(vector mins, vector maxs); ====&lt;br /&gt;
&lt;br /&gt;
:Returns an entity within the bounds specified&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findEnemy&#039;&#039;&#039;(float onlyInFov); ====&lt;br /&gt;
&lt;br /&gt;
:Finds enemy player in PVS&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findEnemyAI&#039;&#039;&#039;(float onlyInFov); ====&lt;br /&gt;
&lt;br /&gt;
:Finds enemy monster in PVS&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findEnemyInCombatNodes&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Finds enemy player in attack cones&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findFriendlyAI&#039;&#039;&#039;(float team); ====&lt;br /&gt;
&lt;br /&gt;
:Use this to find a visible AI friendly to ourselves. It basically iterates over all active entities in the map and looks for friendly actors. The pythagorean distance is taken to evaluate the distance.  Don&#039;t call this every frame, this might get expensive in larger maps. Returns the nearest visible actor entity or the $null_entity, if none was found.&lt;br /&gt;
::&#039;&#039;team&#039;&#039;: used to constrain the search to a given team. Set this to -1 to let the code ignore this argument&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;fireMissileAtTarget&#039;&#039;&#039;(string jointname, string targetname); ====&lt;br /&gt;
&lt;br /&gt;
:Launches a missile at entity specified by &#039;attack_target&#039;.  returns projectile fired&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;flee&#039;&#039;&#039;(entity entToFleeFrom, float algorithm, float distanceOption); ====&lt;br /&gt;
&lt;br /&gt;
:Flee from the given entity. Pass the escape point lookup algorithm (e.g. EP_FIND_GUARDED) and the distanceOption (e.g. EP_DIST_NEAREST) to specify how the best escape point can be found. Refer to the tdm_defs.script file to see all the constants.  When algorithm is set to EP_FIND_AAS_AREA_FAR_FROM_THREAT, the distanceOption is interpreted as minimum threat distance. Returns FALSE if no escape point could be found.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;foundBody&#039;&#039;&#039;(entity body); ====&lt;br /&gt;
&lt;br /&gt;
:Objective callback for when an AI finds a body.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Gas_Knockout&#039;&#039;&#039;(entity inflictor); ====&lt;br /&gt;
&lt;br /&gt;
:AI knockout&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: the entity causing the knockout, can be the $null_entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAcuity&#039;&#039;&#039;(string type); ====&lt;br /&gt;
&lt;br /&gt;
:ai generalized alerts&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAlertActor&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the actor that alerted the AI in this frame.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAlertLevelOfOtherAI&#039;&#039;&#039;(entity otherEntity); ====&lt;br /&gt;
&lt;br /&gt;
:This event gets the alert number of another AI (AI_AlertLevel variable value) Returns the alert number of the other AI, 0.0 if its not an AI or is NULL&lt;br /&gt;
::&#039;&#039;otherEntity&#039;&#039;: the other AI entity who&#039;s alert number is being queried&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAttacker&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the attacking entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAudThresh&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getClosestHiddenTarget&#039;&#039;&#039;(string entity_type); ====&lt;br /&gt;
&lt;br /&gt;
:Finds the closest targeted entity of the specified type.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getCombatNode&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getCurrentYaw&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getEnemyEyePos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getEnemyPos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getJumpVelocity&#039;&#039;&#039;(vector pos, float speed, float max_jump_height); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMoveType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current movetype&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextIdleAnim&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:This returns the name of the next idle anim to be played on this AI (used by AnimState scripts).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getObservationPosition&#039;&#039;&#039;(vector targetPoint, float visualAcuityZeroToOne); ====&lt;br /&gt;
&lt;br /&gt;
:This event is used to get a position that the AI can move to observe a  given position.  It is useful for looking at hiding spots that can&#039;t be reached, and performing other investigation functions.  Returns a world position from which the observation can take place. Returns the current AI origin if no such point is found.  @sideEffect This uses the AI_DEST_UNREACHABLE flag variable  to indicate if a point was found. It will be true if none was found, false if one was found.&lt;br /&gt;
::&#039;&#039;targetPoint&#039;&#039;: the world position to be observed&lt;br /&gt;
::&#039;&#039;visualAcuityZeroToOne&#039;&#039;: the visual acuity of the AI on a scale of 0.0 to 1.0 where 0.0 is blind and 1.0 is perfect vision.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getObstacle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the obstacle in the character&#039;s path&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getRandomTarget&#039;&#039;&#039;(string entity_type); ====&lt;br /&gt;
&lt;br /&gt;
:Finds a random targeted entity of the specified type.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getReachableEntityPosition&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the position of the entity within the AAS if possible, otherwise just the entity position.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getRelationEnt&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getSndDir&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:ai hearing of sound &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTactEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:ai sense of touch&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTalkTarget&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity (player) trying to talk to the character&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTurnDelta&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTurnRate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the rate the character turns.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVectorToIdealOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the vector from where the AI is to where he ideally should be&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVisDir&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns position of the last visual alert.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasSeenEvidence&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:This returns 1 when the AI has seen evidence of intruders before (an enemy, a body...)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ignoreDamage&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:The AI can no longer take damage.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isEntityHidden&#039;&#039;&#039;(entity ent, float f_sightThreshold); ====&lt;br /&gt;
&lt;br /&gt;
:This is an alternate version of canSee, using FOV, distance and lighting.&lt;br /&gt;
::&#039;&#039;f_sightThreshold&#039;&#039;: goes from 0.0 (entity visible in complete darkness) to 1.0 (entity only visible if completely lit up).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isPlayerResponsibleForDeath&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the player was responsible for the AI&#039;s caller&#039;s death.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;kickObstacles&#039;&#039;&#039;(entity kickEnt, float force); ====&lt;br /&gt;
&lt;br /&gt;
:Kicks any obstacle in the character&#039;s path.&lt;br /&gt;
::&#039;&#039;kickEnt&#039;&#039;: pass in $null_entity if you don&#039;t have a specific entity to kick&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;kill&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Kills the monster.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;KO_Knockout&#039;&#039;&#039;(entity inflictor); ====&lt;br /&gt;
&lt;br /&gt;
:AI knockout&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: is the entity causing the knockout, can be the $null_entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;launchMissile&#039;&#039;&#039;(vector origin, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the projectile entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;locateEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Updates the last known position of the enemy independent from whether or not the enemy is visible.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAt&#039;&#039;&#039;(entity focusEntity, float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Aims the character&#039;s eyes and head toward an entity for a period of time.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAtAngles&#039;&#039;&#039;(float yawAngleClockwise, float pitchAngleUp, float rollAngle, float durationInSeconds); ====&lt;br /&gt;
&lt;br /&gt;
:A look at event that just looks at a set of angles relative  to the current body facing of the AI. This method is just like the vanilla Doom3 lookAt and lookAtEnemy methods, but it looks at the specified angles from the current body facing of the AI.&lt;br /&gt;
::&#039;&#039;yawAngleClockwise&#039;&#039;: Negative angles are to the left of  the AIs body and positive angles are to the right.&lt;br /&gt;
::&#039;&#039;pitchAngleUp&#039;&#039;: Negative values are down and positive values are up  where down and up are defined by the body axis.&lt;br /&gt;
::&#039;&#039;rollAngle&#039;&#039;: This is currently unused and does nothing.&lt;br /&gt;
::&#039;&#039;durationInSeconds&#039;&#039;: The duration to look in seconds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAtEnemy&#039;&#039;&#039;(float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Aims the character&#039;s eyes and head toward the current enemy for a period of time.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAtPosition&#039;&#039;&#039;(vector lookAtWorldPosition, float durationInSeconds); ====&lt;br /&gt;
&lt;br /&gt;
:This method is just like the vanilla Doom3 lookAt and lookAtEnemy methods, but instead of looking at an entity, it looks at a position in worldspace.  That is, it turns the head of the AI to look at the position.&lt;br /&gt;
::&#039;&#039;lookAtWorldPosition&#039;&#039;: position in space to look at&lt;br /&gt;
::&#039;&#039;durationInSeconds&#039;&#039;: duration to look in seconds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;meleeAttackToJoint&#039;&#039;&#039;(string joint, string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveOutOfRange&#039;&#039;&#039;(entity ent, float range); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;moveStatus&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToAttackPosition&#039;&#039;&#039;(entity ent, string attack_anim); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToCover&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToCoverFrom&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToEnemyHeight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToEntity&#039;&#039;&#039;(entity destination); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToPosition&#039;&#039;&#039;(vector position); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;muzzleFlash&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;numSmokeEmitters&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the # of emitters defined by &#039;smokeParticleSystem&#039; in the entitydef&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;performRelight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Deal with doused lights.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playAndLipSync&#039;&#039;&#039;(string soundName, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Play the given sound, using the given lipsync animation. The lipsync animation should just be a simple non-loopable animation of the mouth opening in a linear fashion. The code will select individual frames from this to construct a simple lipsyncing effect which is in time with the sound.  Returns the length of the played sound in seconds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playCustomAnim&#039;&#039;&#039;(string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Plays the given animation on legs and torso. Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;preBurn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;predictEnemyPos&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Tries to predict the player&#039;s movement based on the AAS and his direction of movement.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;processBlindStim&#039;&#039;&#039;(entity stimSource, float skipVisibilityCheck); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;processVisualStim&#039;&#039;&#039;(entity stimSource); ====&lt;br /&gt;
&lt;br /&gt;
:Use this call to let the AI react to a visual stim (coming from the source entity).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;pushPointIntoAAS&#039;&#039;&#039;(vector post); ====&lt;br /&gt;
&lt;br /&gt;
:Tries to push the point into a valid AAS area&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pushState&#039;&#039;&#039;(string stateName); ====&lt;br /&gt;
&lt;br /&gt;
:Pushes the state with the given name, current one is postponed.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;radiusDamageFromJoint&#039;&#039;&#039;(string jointname, string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;randomPath&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restartPatrol&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restoreMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;saveMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAcuity&#039;&#039;&#039;(string type, float val); ====&lt;br /&gt;
&lt;br /&gt;
:ai generalized alerts&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAlertGracePeriod&#039;&#039;&#039;(float frac, float duration, float count); ====&lt;br /&gt;
&lt;br /&gt;
:This starts the alert grace period for an AI. Should be called in the same frame as the alert that pushes them into a higher state.&lt;br /&gt;
::&#039;&#039;frac&#039;&#039;: the fraction of the alert below which they should ignore alerts during the grace period.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: the duration of the period in seconds&lt;br /&gt;
::&#039;&#039;count&#039;&#039;: the number of alerts ignored above which the grace period is invalid&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAlertLevel&#039;&#039;&#039;(float newLevel); ====&lt;br /&gt;
&lt;br /&gt;
:Set the alert level (AI_AlertLevel). This should always be called instead of setting AI_AlertLevel directly.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAudThresh&#039;&#039;&#039;(float val); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setBoneMod&#039;&#039;&#039;(float allowBoneMod); ====&lt;br /&gt;
&lt;br /&gt;
:Enables or disables head looking (may be obsolete).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setEnemy&#039;&#039;&#039;(entity enemy); ====&lt;br /&gt;
&lt;br /&gt;
:Make the given entity an enemy.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFlyOffset&#039;&#039;&#039;(float offset); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the preferred height relative to the player&#039;s view height to fly at.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFlySpeed&#039;&#039;&#039;(float speed); ====&lt;br /&gt;
&lt;br /&gt;
:Set the speed flying creatures move at. Also sets speed for moveTypeSlide.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setMoveType&#039;&#039;&#039;(float movetype); ====&lt;br /&gt;
&lt;br /&gt;
:Set the current movetype.  movetypes are defined in tdm_ai.script&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSmokeVisibility&#039;&#039;&#039;(float particle_num, float on); ====&lt;br /&gt;
&lt;br /&gt;
:enables/disables smoke particles on bones.  pass in the particle #, or ALL_PARTICLES for turning on/off all particle systems. particles are spawned in the order they appear in the entityDef&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTalkState&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:Sets whether the player can talk to this character or not.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTalkTarget&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the entity (player) trying to talk to the character&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTurnRate&#039;&#039;&#039;(float rate); ====&lt;br /&gt;
&lt;br /&gt;
:Set the rate the character turns at&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shrivel&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;slideTo&#039;&#039;&#039;(vector position, float time); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;spawnThrowableProjectile&#039;&#039;&#039;(string projectileName, string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:This method spawns a projectile of the type named by the caller and attaches it to the joint given by the caller.  The projectile becomes the AI&#039;s firable projectile. Returns a pointer to a projectile entity that can be  thrown by the AI. You can use AI_LaunchMissle (e* = launchMissle(v,v) ) to throw the stone.&lt;br /&gt;
::&#039;&#039;projectileName&#039;&#039;: The name of the projectile to spawn (as seen in a .def file) Must be descended from idProjectile&lt;br /&gt;
::&#039;&#039;jointName&#039;&#039;: The name of the joint on the model to which the particle should be attached for throwing. If this is NULL or the empty string, then it is attached to the model center.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopPatrol&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops an AI from patrolling&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopRagdoll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:turns off the ragdoll&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopThinking&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;switchState&#039;&#039;&#039;(string stateName); ====&lt;br /&gt;
&lt;br /&gt;
:Switches to the state with the given name, current one is ended.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testAnimAttack&#039;&#039;&#039;(string animname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testAnimMove&#039;&#039;&#039;(string animname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testAnimMoveTowardEnemy&#039;&#039;&#039;(string animname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testChargeAttack&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testMeleeAttack&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testMoveToPosition&#039;&#039;&#039;(vector position); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;throwAF&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;throwMoveable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceBetweenEntities&#039;&#039;&#039;(entity source, entity dest); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance between two entities.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceBetweenPoints&#039;&#039;&#039;(vector source, vector dest); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance between two points.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceToEntity&#039;&#039;&#039;(entity destination); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance to entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceToPoint&#039;&#039;&#039;(vector destination); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance to point.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;triggerParticles&#039;&#039;&#039;(string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;turnTo&#039;&#039;&#039;(float yaw); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;turnToEntity&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;turnToPos&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;visScan&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Checks for enemies or player in the AI&#039;s FOV, using light level and distance. For now the check is only done on the player.  Returns a reference to the sighted actor.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitAction&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;wakeOnFlashlight&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:Tells the monster to activate when flashlight shines on them.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;wander&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
=== idTestModel ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;leftFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to left foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rightFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to right foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
=== CBinaryFrobMover ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Close&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Closes the frobmover, regardless of its previous state. Mover must be open, otherwise nothing happens.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;GetFractionalPosition&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a fraction between 0.00 (closed) and 1.00 (open).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;IsLocked&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true (nonzero) if the mover is currently locked.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;IsOpen&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true (nonzero) if the mover is open, which is basically the same as &amp;quot;not closed&amp;quot;. A mover is considered closed when it is at its close position.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;IsPickable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true (nonzero) if this frobmover is pickable.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Lock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Locks the mover. Calls to Open() will not succeed after this call. &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Open&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Opens the frobmover, regardless of its previous state. The mover will not move when it&#039;s locked. &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;TDM_Lock_OnLockPicked&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;TDM_Lock_StatusUpdate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ToggleLock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the lock state. Unlocked movers will be locked and vice versa. The notes above concerning Unlock() still apply if this call unlocks the mover. &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ToggleOpen&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the mover state. Closes when fully open, opens when fully closed. If the mover is &amp;quot;interrupted&amp;quot; (e.g. when the player frobbed the mover in between), the move direction depends on the state of the internal &amp;quot;intent_open&amp;quot; flag. &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Unlock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Unlocks the mover. Calls to Open() will succeed after this call. Depending on the value of the spawnarg &amp;quot;open_on_unlock&amp;quot; the mover might automatically open after this call. &lt;br /&gt;
&lt;br /&gt;
=== idBrittleFracture ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dampenSound&#039;&#039;&#039;(float dampen); ====&lt;br /&gt;
&lt;br /&gt;
:Toggle whether the shattering sound is dampened on the window, e.g., when covered by moss.&lt;br /&gt;
::&#039;&#039;dampen&#039;&#039;: 1 = dampened, 0 = not dampened&lt;br /&gt;
&lt;br /&gt;
=== idCameraView ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idCameraAnim ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;start&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Starts a spline or anim camera moving.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stop&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops a spline or anim camera moving.&lt;br /&gt;
&lt;br /&gt;
=== idFuncEmitter ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;emitterAddModel&#039;&#039;&#039;(string modelName, vector modelOffset); ====&lt;br /&gt;
&lt;br /&gt;
:Adds a new particle (or regular, if you wish) model to the emitter, located at modelOffset units away from the emitter&#039;s origin.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;emitterGetNumModels&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of models/particles this emitter has. Always &amp;gt;= 1.&lt;br /&gt;
&lt;br /&gt;
=== idEntity ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activateContacts&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Activate objects sitting on this object.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activateTargets&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Causes this entity to activate all it&#039;s targets. Similar to how a trigger activates entities.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addInvItem&#039;&#039;&#039;(entity inv_item); ====&lt;br /&gt;
&lt;br /&gt;
:Adds the given item to the inventory. Depending on the type the passed entity will be removed from the game (as for loot items) or hidden.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addItemToInv&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Adds the entity to the given entity&#039;s inventory. Depending on the type the entity will be removed from the game (as for loot items) or hidden. Example: $book-&amp;gt;addItemToInv($player1);&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addTarget&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Add a target to this entity.&lt;br /&gt;
::&#039;&#039;target&#039;&#039;: the entity to add as target&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;applyImpulse&#039;&#039;&#039;(entity source, float bodyid, vector point, vector impulse); ====&lt;br /&gt;
&lt;br /&gt;
:Applies an impulse to the entity. Example: entity.applyImpulse($player1, 0, entity.getOrigin(), &#039;0 0 2&#039;);&lt;br /&gt;
::&#039;&#039;source&#039;&#039;: Pass $null_entity or the entity that applies the impulse&lt;br /&gt;
::&#039;&#039;bodyid&#039;&#039;: For articulated figures, ID of the body, 0 for the first (main) body. Otherwise use 0.&lt;br /&gt;
::&#039;&#039;point&#039;&#039;: Point on the body where the impulse is applied to&lt;br /&gt;
::&#039;&#039;impulse&#039;&#039;: Vector of the impulse&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bind&#039;&#039;&#039;(entity master); ====&lt;br /&gt;
&lt;br /&gt;
:Fixes this entity&#039;s position and orientation relative to another entity, such that when the master entity moves, so does this entity.&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: the entity to bind to&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bindPosition&#039;&#039;&#039;(entity master); ====&lt;br /&gt;
&lt;br /&gt;
:Fixes this entity&#039;s position (but not orientation) relative to another entity, such that when the master entity moves, so does this entity.&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: the entity to bind to&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bindToBody&#039;&#039;&#039;(entity master, float bodyID, float orientated); ====&lt;br /&gt;
&lt;br /&gt;
:Bind to AF body&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: entity to bind to&lt;br /&gt;
::&#039;&#039;bodyID&#039;&#039;: AF body ID to bind to&lt;br /&gt;
::&#039;&#039;orientated&#039;&#039;: binds the orientation as well as position, if set to 1&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bindToJoint&#039;&#039;&#039;(entity master, string boneName, float rotateWithMaster); ====&lt;br /&gt;
&lt;br /&gt;
:Fixes this entity&#039;s position and orientation relative to a bone on another entity, such that when the master&#039;s bone moves, so does this entity.&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: the entity to bind to&lt;br /&gt;
::&#039;&#039;boneName&#039;&#039;: the bone name&lt;br /&gt;
::&#039;&#039;rotateWithMaster&#039;&#039;: -&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;cacheSoundShader&#039;&#039;&#039;(string shaderName); ====&lt;br /&gt;
&lt;br /&gt;
:Ensure the specified sound shader is loaded by the system. Prevents cache misses when playing sound shaders.&lt;br /&gt;
::&#039;&#039;shaderName&#039;&#039;: the sound shader to cache&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;callFunction&#039;&#039;&#039;(string functionName); ====&lt;br /&gt;
&lt;br /&gt;
:Calls a function on an entity&#039;s script object. See also callGlobalFunction().&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;callGlobalFunction&#039;&#039;&#039;(string functionName, entity other); ====&lt;br /&gt;
&lt;br /&gt;
:calls a global function and passes the other entity along as the first argument calls the function in a new thread, so it continues executing in the current thread right away (unlike entity.callFunction( &amp;quot;blah&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;callGui&#039;&#039;&#039;(float handle, string namedEvent); ====&lt;br /&gt;
&lt;br /&gt;
:Calls a named event in a GUI.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canBeUsedBy&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the entity can be used by the argument entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSeeEntity&#039;&#039;&#039;(entity target, float useLighting); ====&lt;br /&gt;
&lt;br /&gt;
:This is a general version of idAI::canSee, that can be used by all entities. It doesn&#039;t regard FOV, it just performs a trace to check whether the target is occluded by world geometry. Is probably useful for stim/response as well Pass useLighting = true to take the lighting of the target entity into account. Use &amp;quot;isEntityHidden&amp;quot; as a script event with a threshold. The constant threshold value for useLighting is defined within the SDK in game/entity.h.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeEntityRelation&#039;&#039;&#039;(entity ent, float relationChange); ====&lt;br /&gt;
&lt;br /&gt;
:This changes the current relation to an entity by adding the new amount.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeInvIcon&#039;&#039;&#039;(string name, string category, string icon); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the inventory icon of the given item in the given category to &amp;lt;icon&amp;gt;.&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: name of the item&lt;br /&gt;
::&#039;&#039;category&#039;&#039;: the item&#039;s category&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeInvItemCount&#039;&#039;&#039;(string name, string category, float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Decreases the inventory item stack count by amount. The item is addressed using the name and category of the item. These are usually defined on the inventory item entity (&amp;quot;inv_name&amp;quot;, &amp;quot;inv_category&amp;quot;)  Amount can be both negative and positive.&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: name of the item&lt;br /&gt;
::&#039;&#039;category&#039;&#039;: the item&#039;s category&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeInvLightgemModifier&#039;&#039;&#039;(string name, string category, float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the lightgem modifier value of the given item. Valid arguments are between 0 and 32 (which is the maximum lightgem value).&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: name of the item&lt;br /&gt;
::&#039;&#039;category&#039;&#039;: the item&#039;s category&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;changeLootAmount&#039;&#039;&#039;(float type, float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Changes the loot amount of the given Type (e.g. GOODS) by &amp;lt;amount&amp;gt;.  The mission statisic for loot found gets changed too.  The new value of the changed type is returned (e.g. the new GOODS value if this has been changed).  Note: The LOOT_TOTAL type can&#039;t be changed and 0 is returned.&lt;br /&gt;
::&#039;&#039;type&#039;&#039;: one of: LOOT_GOLD, LOOT_GOODS, LOOT_JEWELRY&lt;br /&gt;
::&#039;&#039;amount&#039;&#039;: can be negative&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;checkAbsence&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:description missing&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;copyBind&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:copy bind information of other to this entity (i.e., bind this entity to the same entity that other is bound to)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;createOverlay&#039;&#039;&#039;(string guiFile, float layer); ====&lt;br /&gt;
&lt;br /&gt;
:Creates a GUI overlay. (must be used on the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;CreateTimer&#039;&#039;&#039;(float stimId, float hour, float minutes, float seconds, float milliseconds); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;damage&#039;&#039;&#039;(entity inflictor, entity attacker, vector dir, string damageDefName, float damageScale); ====&lt;br /&gt;
&lt;br /&gt;
:Deals damage to this entity (gets translated into the idEntity::Damage() method within the SDK).&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: the entity causing the damage (maybe a projectile)&lt;br /&gt;
::&#039;&#039;attacker&#039;&#039;: the &amp;quot;parent&amp;quot; entity of the inflictor, the one that is responsible for the inflictor (can be the same)&lt;br /&gt;
::&#039;&#039;dir&#039;&#039;: the direction the attack is coming from.&lt;br /&gt;
::&#039;&#039;damageDefName&#039;&#039;: the name of the damage entityDef to know what damage is being dealt to &amp;lt;self&amp;gt; (e.g. &amp;quot;damage_lava&amp;quot;)&lt;br /&gt;
::&#039;&#039;damageScale&#039;&#039;: the scale of the damage (pass 1.0 as default, this should be ok).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;destroyOverlay&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Destroys a GUI overlay. (must be used on the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;distanceTo&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the distance of this entity to another entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;distanceToPoint&#039;&#039;&#039;(vector point); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the distance of this entity to a point.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;extinguishLights&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Extinguishes all lights (i.e. the &amp;lt;self&amp;gt; entity plus all bound lights)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeSound&#039;&#039;&#039;(float channel, float newLevel, float fadeTime); ====&lt;br /&gt;
&lt;br /&gt;
:Fades the sound on this entity to a new level over a period of time.  Use SND_CHANNEL_ANY for all currently playing sounds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;frob&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Frobs the entity (i.e. simulates a frob action performed by the player). Returns TRUE if the entity is frobable, FALSE otherwise.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;frobHilight&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:ishtvan: Tries to make the entity frobhilight or not&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current orientation of this entity (relative to bind parent if any).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAngularVelocity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current angular velocity of this entity. The angular velocity of a physics object is a vector that passes through the center of mass. The direction of this vector defines the axis of rotation and the magnitude defines the rate of rotation about the axis in radians per second.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getBindChild&#039;&#039;&#039;(float ind); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the ind_th bind child of this entity or NULL if index is invalid. NOTE: indices start at zero&lt;br /&gt;
::&#039;&#039;ind&#039;&#039;: child index&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getBindMaster&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity&#039;s bindmaster&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getBoolKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the boolean value of a specific spawn arg, defaulting to false.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getClipMask&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the clipmask of the physics object.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getColor&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the color of this entity (shader parms Parm0, Parm1, Parm2).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getContents&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the contents of the physics object.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvCategory&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the currently highlighted inventory category.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvIcon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the icon of the currently highlighted inventory item.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getCurInvItemEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently highlighted inventory item entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvItemId&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the currently highlighted inventory item (the one defined in &amp;quot;inv_item_id&amp;quot;). Most items will return an empty string, unless the &amp;quot;inv_item_id&amp;quot; is set on purpose.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvItemName&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the currently highlighted inventory item (the one defined in &amp;quot;inv_name&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getEntityFlag&#039;&#039;&#039;(string flagName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the value of the specified entity flag.&lt;br /&gt;
::&#039;&#039;flagName&#039;&#039;: Can be one of (case insensitive):	&lt;br /&gt;
:notarget: if true never attack or target this entity 	&lt;br /&gt;
:noknockback: if true no knockback from hits 	&lt;br /&gt;
:takedamage: if true this entity can be damaged 	&lt;br /&gt;
:hidden: if true this entity is not visible 	&lt;br /&gt;
:bindOrientated: if true both the master orientation is used for binding 	&lt;br /&gt;
:solidForTeam: if true this entity is considered solid when a physics team mate pushes entities 	&lt;br /&gt;
:forcePhysicsUpdate: if true always update from the physics whether the object moved or not 	&lt;br /&gt;
:selected: if true the entity is selected for editing 	&lt;br /&gt;
:neverDormant: if true the entity never goes dormant 	&lt;br /&gt;
:isDormant: if true the entity is dormant 	&lt;br /&gt;
:hasAwakened: before a monster has been awakened the first time, use full PVS for dormant instead of area-connected 	&lt;br /&gt;
:invisible: if true this entity cannot be seen 	&lt;br /&gt;
:inaudible: if true this entity cannot be heard&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getEntityKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the entity specified by the spawn arg.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getFloatKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the floating point value of a specific spawn arg, defaulting to 0.0f.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getGui&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the file currently loaded by a GUI.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getGuiFloat&#039;&#039;&#039;(float handle, string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getGuiInt&#039;&#039;&#039;(float handle, string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getGuiString&#039;&#039;&#039;(float handle, string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getHealth&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current health.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getIntKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the integer value of a specific spawn arg, defaulting to 0.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the value of a specific spawn arg, defaulting to &#039;&#039;.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLightInPVS&#039;&#039;&#039;(float falloff, float scaling); ====&lt;br /&gt;
&lt;br /&gt;
:Computes the sum of all light in the PVS of the entity you call this on, and returns a vector with the sum.&lt;br /&gt;
::&#039;&#039;falloff&#039;&#039;: 0: no falloff with distance  0.5: sqrt(linear) falloff	(dist 100 =&amp;gt; 1/10)  1: linear falloff			(dist 100 =&amp;gt; 1/100)  2: square falloff			(dist 100 =&amp;gt; 1/10000) &lt;br /&gt;
::&#039;&#039;scaling&#039;&#039;: factor to scale the distance, can be used to lower/raise distance factor  after the linear or square scaling has been used good looking values are approx: sqrt(linear): 0.01, linear: 0.1, square 1.0&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLinearVelocity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current linear velocity of this entity. The linear velocity of a physics object is a vector that defines the translation of the center of mass in units per second.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getLocation&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the idLocation entity corresponding to the entity&#039;s current location. This was player-specific before, but is now available to all entities.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getLootAmount&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the amount of loot for the given type (e.g. LOOT_GOODS). Pass LOOT_TOTAL to return the sum of all loot types.&lt;br /&gt;
::&#039;&#039;type&#039;&#039;: one of: LOOT_GOLD, LOOT_GOODS, LOOT_JEWELRY, LOOT_TOTAL&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMass&#039;&#039;&#039;(float body); ====&lt;br /&gt;
&lt;br /&gt;
:Gets mass of a body for an entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getMaxs&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the maximum corner of this entity&#039;s bounding box.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getMins&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the minimum corner of this entity&#039;s bounding box.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getName&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of this entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getNextInvItem&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cycles the standard cursor to the next inventory item. Returns the item entity pointed to after the operation is complete.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextKey&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Searches for the name of a spawn arg that matches the prefix.  For example, passing in &amp;quot;attack_target&amp;quot; matches &amp;quot;attack_target1&amp;quot;, &amp;quot;attack_targetx&amp;quot;, &amp;quot;attack_target_enemy&amp;quot;,  etc. The returned string is the name of the key which can then be passed into functions like getKey() to lookup the value of that spawn arg.  This is useful for when you have multiple values to look up, like when you target multiple objects.  To find the next matching key, pass in the previous result and the next key returned will be the first one that matches after the previous result. Pass in &amp;quot;&amp;quot; to get the first match. Passing in a non-existent key is the same as passing in &amp;quot;&amp;quot;. Returns &amp;quot;&amp;quot; when no  more keys match.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current position of this entity (relative to bind parent if any).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getPrevInvItem&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cycles the standard cursor to the previous inventory item. Returns the item entity pointed to after the operation is complete.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetResponseEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity which should take the response. Some entities like AI heads are not responding themselves to stims, but relay it to another entity (i.e. the bodies they&#039;re attached to).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getShaderParm&#039;&#039;&#039;(float parm); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the value of the specified shader parm.&lt;br /&gt;
::&#039;&#039;parm&#039;&#039;: shader parm index&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getSize&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the size of this entity&#039;s bounding box.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getSoundVolume&#039;&#039;&#039;(string soundName); ====&lt;br /&gt;
&lt;br /&gt;
:Get the volume of the sound to play.&lt;br /&gt;
::&#039;&#039;soundName&#039;&#039;: the name of the sound&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTarget&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the requested target entity.&lt;br /&gt;
::&#039;&#039;num&#039;&#039;: The target number. Starts at 0.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTeam&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current team number.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVectorKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the vector value of a specific spawn arg, defaulting to &#039;0 0 0&#039;.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVinePlantLoc&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event important to the growing of vines from vine arrows&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVinePlantNormal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event important to the growing of vines from vine arrows&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getWorldOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current world-space position of this entity (regardless of any bind parent).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasFunction&#039;&#039;&#039;(string functionName); ====&lt;br /&gt;
&lt;br /&gt;
:checks if an entity&#039;s script object has a specific function&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;heal&#039;&#039;&#039;(string healDefName, float healScale); ====&lt;br /&gt;
&lt;br /&gt;
:Heals the entity this is called on using the specified healing entityDef. Returns 1 if the entity could be healed, 0 otherwise (if the entity is already at full health, for ex.)&lt;br /&gt;
::&#039;&#039;healDefName&#039;&#039;: the name of the entityDef containing the healing information (e.g. &amp;quot;heal_potion&amp;quot;)&lt;br /&gt;
::&#039;&#039;healScale&#039;&#039;: the scaling value to be applied to the healAmount found in the healEntityDef&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;hide&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Makes this entity invisible.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;hideByLODBias&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;inPVS&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns non-zero if this entity is in PVS. For lights, it will return true when the light&#039;s bounding box is in PVS, even though the light may not actually be in PVS. (an unmoved shadowcasting light may not be visible to PVS areas its bounding box intersects with)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isDroppable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get whether an item may be dropped from the inventory&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isEnemy&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given entity is an enemy.&lt;br /&gt;
::&#039;&#039;ent&#039;&#039;: The entity in question&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isFriend&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given entity is a friend.&lt;br /&gt;
::&#039;&#039;ent&#039;&#039;: The entity in question&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isFrobable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get whether the entity is frobable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isHidden&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:checks if the entity&#039;s model is invisible.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isHilighted&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if entity is currently frobhilighted.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isInLiquid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns 1 if the entity is in or touching a liquid.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isLight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isNeutral&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given entity is neutral.&lt;br /&gt;
::&#039;&#039;ent&#039;&#039;: The entity in question&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isType&#039;&#039;&#039;(string spawnclass); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if this entity is of the given type.&lt;br /&gt;
::&#039;&#039;spawnclass&#039;&#039;: spawn class name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;loadExternalData&#039;&#039;&#039;(string declFile, string prefix); ====&lt;br /&gt;
&lt;br /&gt;
:Load an external xdata declaration.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;noShadows&#039;&#039;&#039;(float noShadows); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the noShadow property on the entity to true/false, turning shadowcasting on or off for this entity.&lt;br /&gt;
::&#039;&#039;noShadows&#039;&#039;: 1 = disable shadows, 0 = enable shadows&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;noShadowsDelayed&#039;&#039;&#039;(float noShadows, float delay); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the noShadow property on the entity to true/false after delay in ms, turning shadows cast by this entity on or off.&lt;br /&gt;
::&#039;&#039;noShadows&#039;&#039;: 1 = disable shadows, 0 = enable shadows&lt;br /&gt;
::&#039;&#039;delay&#039;&#039;: delay in ms&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;numBindChildren&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of bound entities lower down in the bind chain than this entity, but be sure to give it the topmost bindmaster&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;numTargets&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of entities this entity has targeted.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;propagateSound&#039;&#039;&#039;(string soundName, float propVolMod, float msgTag); ====&lt;br /&gt;
&lt;br /&gt;
:Generates a propagated sound&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;propSound&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Sound propagation scriptfunctions on all entities propagate a sound directly without playing an audible sound&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;propSoundMod&#039;&#039;&#039;(string name, float volMod); ====&lt;br /&gt;
&lt;br /&gt;
:propagate a sound directly with a volume modifier&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;randomTarget&#039;&#039;&#039;(string ignoreName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a random targeted entity. Pass in an entity name to skip that entity.&lt;br /&gt;
::&#039;&#039;ignoreName&#039;&#039;: the name of an entity to ignore&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;rangedThreatTo&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Could this entity threaten the given (target) entity from a distance?&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeBinds&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Removes all attached entities from the game&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Removes a key from an object&#039;s spawnargs, so things like getNextKey() don&#039;t retrieve it.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: the spawnarg to remove&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeTarget&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Remove a target from this entity.&lt;br /&gt;
::&#039;&#039;target&#039;&#039;: the entity to remove from the targets&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;replaceInvItem&#039;&#039;&#039;(entity oldItem, entity newItem); ====&lt;br /&gt;
&lt;br /&gt;
:Replaces the entity &amp;lt;oldItem&amp;gt; with &amp;lt;newItem&amp;gt; in the inventory, while keeping &amp;lt;oldItem&amp;gt;&#039;s inventory position intact.  Note: The position guarantee only applies if &amp;lt;oldItem&amp;gt; and newItem  share the same category. If the categories are different, the position of &amp;lt;newItem&amp;gt; is likely to be different than the one of &amp;lt;oldItem&amp;gt;.  Note that &amp;lt;oldItem&amp;gt; will be removed from the inventory.  If &amp;lt;newItem&amp;gt; is the $null_entity, &amp;lt;oldItem&amp;gt; is just removed and no replacement happens.  Returns 1 if the operation was successful, 0 otherwise.&lt;br /&gt;
::&#039;&#039;newItem&#039;&#039;: can be $null_entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResetTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reskinCollisionModel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:For use after setSkin() on moveables and static models, if the CM needs to be refreshed to update surface properties after a skin change. CM will be regenerated from the original model file with the new skin.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseAdd&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseAllow&#039;&#039;&#039;(float type, entity responder); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseEnable&#039;&#039;&#039;(float type, float state); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 0 = disabled, 1 = enabled&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseIgnore&#039;&#039;&#039;(float type, entity responder); ====&lt;br /&gt;
&lt;br /&gt;
:This functions must be called on the stim entity. It will add the response to the ignore list, so that subsequent stims, should not trigger the stim anymore.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseRemove&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseSetAction&#039;&#039;&#039;(float type, string action); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseTrigger&#039;&#039;&#039;(entity source, float stimType); ====&lt;br /&gt;
&lt;br /&gt;
:Fires a response on this entity, without a stim (a stand-alone response, so to say)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;RestartTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restorePosition&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns this entity to the position stored in the &amp;quot;origin&amp;quot; spawn arg. This is the position the entity was spawned in unless the &amp;quot;origin&amp;quot; key is changed. Note that there is no guarantee that the entity won&#039;t be stuck in another entity when moved, so care should be taken to make sure that isn&#039;t possible.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAngles&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current orientation of this entity (relative to bind parent if any)&lt;br /&gt;
::&#039;&#039;angles&#039;&#039;: the new orientation&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAngularVelocity&#039;&#039;&#039;(vector velocity); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current angular velocity of this entity. The angular velocity of a physics object is a vector that passes through the center of mass. The direction of this vector defines the axis of rotation and the magnitude defines the rate of rotation about the axis in radians per second.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setClipMask&#039;&#039;&#039;(float clipMask); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the clipmask of the physics object.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setColor&#039;&#039;&#039;(float parm0, float parm1, float parm2); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the RGB color of this entity (shader parms Parm0, Parm1, Parm2).&lt;br /&gt;
::&#039;&#039;parm0&#039;&#039;: red&lt;br /&gt;
::&#039;&#039;parm1&#039;&#039;: green&lt;br /&gt;
::&#039;&#039;parm2&#039;&#039;: blue&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setContents&#039;&#039;&#039;(float contents); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the contents of the physics object.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;setCurInvCategory&#039;&#039;&#039;(string categoryName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the inventory cursor to the first item of the named category. Returns 1 on success, 0 on failure (e.g. wrong category name)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;setCurInvItem&#039;&#039;&#039;(string itemName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the inventory cursor to the named item. Returns: the item entity of the newly selected item (can be $null_entity).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setDroppable&#039;&#039;&#039;(float droppable); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether an item may be dropped from the inventory. &lt;br /&gt;
::&#039;&#039;droppable&#039;&#039;: if non-zero the item becomes droppable, when called with 0 the item becomes non-droppable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setEntityRelation&#039;&#039;&#039;(entity ent, float relation); ====&lt;br /&gt;
&lt;br /&gt;
:Set a relation to another entity, this can be friendly (&amp;gt;0), neutral(0) or hostile (&amp;lt;0)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFrobable&#039;&#039;&#039;(float frobable); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the entity is frobable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGui&#039;&#039;&#039;(float handle, string guiFile); ====&lt;br /&gt;
&lt;br /&gt;
:Loads a new file into an existing GUI.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiFloat&#039;&#039;&#039;(float handle, string key, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiInt&#039;&#039;&#039;(float handle, string key, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiString&#039;&#039;&#039;(float handle, string key, string val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiStringFromKey&#039;&#039;&#039;(float handle, string key, entity src, string srcKey); ====&lt;br /&gt;
&lt;br /&gt;
:This is a kludge. It is equivelant to: setGuiString( handle, key, src.getKey(srcKey) ) However, it&#039;s used to bypass the 127 char size limit on script strings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setHealth&#039;&#039;&#039;(float health); ====&lt;br /&gt;
&lt;br /&gt;
:Use these to set the health of AI or players (this also updates the AI_DEAD flag)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setKey&#039;&#039;&#039;(string key, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a key on this entity&#039;s spawn args. Note that most spawn args are evaluated when this entity spawns in, so this will not change the entity&#039;s behavior in most cases. This is chiefly for saving data the script needs in an entity for later retrieval.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: the spawnarg to set&lt;br /&gt;
::&#039;&#039;value&#039;&#039;: the value to store&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLinearVelocity&#039;&#039;&#039;(vector velocity); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current linear velocity of this entity in units per second. The linear velocity of a physics object is a vector that defines the translation of the center of mass in units per second.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setModel&#039;&#039;&#039;(string modelName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the model this entity uses&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setName&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the name of this entity.&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: the new name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setNeverDormant&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:enables or prevents an entity from going dormant&lt;br /&gt;
::&#039;&#039;enable&#039;&#039;: 1 = enable, 0 = disable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setOrigin&#039;&#039;&#039;(vector origin); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current position of this entity (relative to it&#039;s bind parent if any)&lt;br /&gt;
::&#039;&#039;origin&#039;&#039;: the new origin&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setOwner&#039;&#039;&#039;(entity owner); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the owner of this entity. Entities will never collide with their owner.&lt;br /&gt;
::&#039;&#039;owner&#039;&#039;: the entity which will be made owner of this entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setShaderParm&#039;&#039;&#039;(float parm, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the value of the specified shader parm.&lt;br /&gt;
::&#039;&#039;parm&#039;&#039;: shader parm index&lt;br /&gt;
::&#039;&#039;value&#039;&#039;: new value&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setShaderParms&#039;&#039;&#039;(float parm0, float parm1, float parm2, float parm3); ====&lt;br /&gt;
&lt;br /&gt;
:Sets shader parms Parm0, Parm1, Parm2, and Parm3 (red, green, blue, and alpha respectively).&lt;br /&gt;
::&#039;&#039;parm0&#039;&#039;: red&lt;br /&gt;
::&#039;&#039;parm1&#039;&#039;: green&lt;br /&gt;
::&#039;&#039;parm2&#039;&#039;: blue&lt;br /&gt;
::&#039;&#039;parm3&#039;&#039;: alpha&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSize&#039;&#039;&#039;(vector min, vector max); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the size of this entity&#039;s bounding box.&lt;br /&gt;
::&#039;&#039;min&#039;&#039;: minimum corner coordinates&lt;br /&gt;
::&#039;&#039;max&#039;&#039;: maximum corner coordinates&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSkin&#039;&#039;&#039;(string skinName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the skin this entity uses.  Set to &amp;quot;&amp;quot; to turn off the skin.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSolid&#039;&#039;&#039;(float solidity); ====&lt;br /&gt;
&lt;br /&gt;
:Set the solidity of the entity. If the entity has never been solid before it will be assigned solid and opaque contents/clip masks.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSoundVolume&#039;&#039;&#039;(float newLevel); ====&lt;br /&gt;
&lt;br /&gt;
:Set the volume of the sound to play, must be issued before startSoundShader.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTeam&#039;&#039;&#039;(float newTeam); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the team number of this entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;SetTimerState&#039;&#039;&#039;(float stimId, float state); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setWorldOrigin&#039;&#039;&#039;(vector origin); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current position of this entity (regardless of any bind parent).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;show&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Makes this entity visible if it has a model.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startFx&#039;&#039;&#039;(string fx); ====&lt;br /&gt;
&lt;br /&gt;
:Starts an FX on this entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;startSound&#039;&#039;&#039;(string sound, float channel, float netSync); ====&lt;br /&gt;
&lt;br /&gt;
:Plays the sound specified by the snd_* key/value pair on the channel and returns the length of the sound in seconds. This is the preferred method for playing sounds on an entity since it ensures that the sound is precached.&lt;br /&gt;
::&#039;&#039;sound&#039;&#039;: the spawnarg to reference, e.g. &#039;snd_move&#039;&lt;br /&gt;
::&#039;&#039;channel&#039;&#039;: the channel to play on&lt;br /&gt;
::&#039;&#039;netSync&#039;&#039;: -&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;startSoundShader&#039;&#039;&#039;(string shaderName, float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Plays a specific sound shader on the channel and returns the length of the sound in seconds. This is not the preferred method of playing a sound since you must ensure that the sound is loaded.&lt;br /&gt;
::&#039;&#039;shaderName&#039;&#039;: the sound shader to play&lt;br /&gt;
::&#039;&#039;channel&#039;&#039;: the channel to play the sound on&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StartTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimAdd&#039;&#039;&#039;(float type, float radius); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimClearIgnoreList&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:This clears the ignore list for the stim of the given type It can be used if an entity changes state in some way that it would no longer be ignored&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimEnable&#039;&#039;&#039;(float type, float state); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 0 = disabled, 1 = enabled&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimRemove&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopSound&#039;&#039;&#039;(float channel, float netSync); ====&lt;br /&gt;
&lt;br /&gt;
:Stops a specific sound shader on the channel.&lt;br /&gt;
::&#039;&#039;channel&#039;&#039;: the channel to stop playback on&lt;br /&gt;
::&#039;&#039;netSync&#039;&#039;: -&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StopTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;teleportTo&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:Teleports the entity to the position of the other entity, plus a possible offset and random offset (defined on the spawnargs of the entity to be teleported)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;touches&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if this entity touches the other entity.&lt;br /&gt;
::&#039;&#039;other&#039;&#039;: the entity to check against&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;unbind&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Detaches this entity from its master.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;wait&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends execution of the current thread for the given number of seconds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitFrame&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends execution of current thread for one game frame.&lt;br /&gt;
&lt;br /&gt;
=== idAnimatedEntity ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearAllJoints&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Removes any custom transforms on all joints.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearJoint&#039;&#039;&#039;(float jointnum); ====&lt;br /&gt;
&lt;br /&gt;
:Removes any custom transforms on the specified joint.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getJointAngle&#039;&#039;&#039;(float jointnum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the angular orientation of the joint in world space.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getJointHandle&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:Looks up the number of the specified joint. Returns INVALID_JOINT if the joint is not found.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getJointPos&#039;&#039;&#039;(float jointnum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the position of the joint in world space.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setJointAngle&#039;&#039;&#039;(float jointnum, float transform_type, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Modifies the orientation of the joint based on the transform type.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setJointPos&#039;&#039;&#039;(float jointnum, float transform_type, vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Modifies the position of the joint based on the transform type.&lt;br /&gt;
&lt;br /&gt;
=== CFrobButton ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Operate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Call this to operate this entity.&lt;br /&gt;
&lt;br /&gt;
=== CFrobDoor ===&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetDoorhandle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the handle entity of this door. Can return NULL (== $null_entity)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;OpenDoor&#039;&#039;&#039;(float master); ====&lt;br /&gt;
&lt;br /&gt;
:The OpenDoor method is necessary to give the FrobDoorHandles a  &amp;quot;low level&amp;quot; open routine. The CFrobDoor::Open() call is re-routed to the FrobDoorHandle::Tap() method, so there must be a way to actually let the door open. Which is what this method does.  Note: Shouldn&#039;t be called directly by scripters, call handle-&amp;gt;Tap() instead. Unless you know what you&#039;re doing.&lt;br /&gt;
&lt;br /&gt;
=== CFrobDoorHandle ===&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetDoor&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the associated door entity for this handle.&lt;br /&gt;
&lt;br /&gt;
=== CFrobHandle ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Tap&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Operates this handle.&lt;br /&gt;
&lt;br /&gt;
=== CFrobLever ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Operate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Call this to operate this entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Switch&#039;&#039;&#039;(float newState); ====&lt;br /&gt;
&lt;br /&gt;
:Move the lever to the on or off position (0 = off).&lt;br /&gt;
&lt;br /&gt;
=== CFrobLock ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Open&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Opens the frobmover, regardless of its previous state. The mover will not move when it&#039;s locked. &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;TDM_Lock_OnLockPicked&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;TDM_Lock_StatusUpdate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
=== CFrobLockHandle ===&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetLock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the associated lock of this handle.&lt;br /&gt;
&lt;br /&gt;
=== tdmFuncShooter ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shooterFireProjectile&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Fires a projectile.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;shooterGetAmmo&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the ammonition&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;shooterGetState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current state of this shooter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shooterSetAmmo&#039;&#039;&#039;(float newAmmo); ====&lt;br /&gt;
&lt;br /&gt;
:Set the ammonition&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shooterSetState&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:Activates / deactivates the shooter entity.&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 1 = active, 0 = inactive&lt;br /&gt;
&lt;br /&gt;
=== idEntityFx ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idItem ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;respawn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Respawn&lt;br /&gt;
&lt;br /&gt;
=== idMoveableItem ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;gib&#039;&#039;&#039;(string damageDefName); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
=== idLight ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeInLight&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the light on over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeOutLight&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the light out over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeToLight&#039;&#039;&#039;(vector color, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades the light to the given color over a given time.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getLightLevel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get level (intensity) of a light, &amp;lt;= 0.0 indicates it is off&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLightOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the light origin (independent of its visual model)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getLightParm&#039;&#039;&#039;(float parmNum); ====&lt;br /&gt;
&lt;br /&gt;
:Gets a shader parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getRadius&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the light radius.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getShader&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the shader name used by the light.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Off&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity off.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;On&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity on.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightOrigin&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Set origin of lights independent of model origin&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightParm&#039;&#039;&#039;(float parmNum, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a shader parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightParms&#039;&#039;&#039;(float parm0, float parm1, float parm2, float parm3); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the red/green/blue/alpha shader parms on the light and the model.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setRadius&#039;&#039;&#039;(float radius); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the size of the bounding box, x=y=z=radius.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setRadiusXYZ&#039;&#039;&#039;(float x, float y, float z); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the width/length/height of the light bounding box.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setShader&#039;&#039;&#039;(string shader); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the shader to be used for the light.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setStartedOff&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;smoking&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:flame is now smoking (1), or not (0)&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 1 = smoking, 0 = not smoking&lt;br /&gt;
&lt;br /&gt;
=== idListener ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idPlayerStart ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idActivator ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idPathCorner ===&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;randomPath&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
=== idDamagable ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idExplodable ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idForceField ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Toggle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the forcefield on and off.&lt;br /&gt;
&lt;br /&gt;
=== idAnimated ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;footstep&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;launchMissiles&#039;&#039;&#039;(string projectilename, string sound, string launchbone, string targetbone, float numshots, float framedelay); ====&lt;br /&gt;
&lt;br /&gt;
:Launches a projectile.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;leftFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to left foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rightFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to right foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startRagdoll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Switches to a ragdoll taking over the animation.&lt;br /&gt;
&lt;br /&gt;
=== idStaticEntity ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idFuncSmoke ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idVacuumSeparatorEntity ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idPortalEntity ===&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortalHandle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the portal handle.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getSoundLoss&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the sound loss value (dB).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSoundLoss&#039;&#039;&#039;(float loss); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound loss value (dB).&lt;br /&gt;
&lt;br /&gt;
=== idBeam ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idShaking ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idEarthQuake ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idFuncPortal ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idFuncAASPortal ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idFuncAASObstacle ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idPhantomObjects ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idPortalSky ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== tdmVine ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addDescendant&#039;&#039;&#039;(entity vine); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canWater&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearWatered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getPrime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;scaleVine&#039;&#039;&#039;(float factor); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPrime&#039;&#039;&#039;(entity vine); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setWatered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
=== idMoveable ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;becomeNonSolid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Makes the moveable non-solid for other entities.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableDamage&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:enable/disable damage&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isAtRest&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if object is not moving&lt;br /&gt;
&lt;br /&gt;
=== idMover ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;accelSound&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound to be played when the mover accelerates.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;accelTime&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the acceleration time. Set this acceleration time before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;accelTo&#039;&#039;&#039;(float speed, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates an acceleration to the given speed over the given time in seconds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bob&#039;&#039;&#039;(float speed, float phase, vector distance); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation back and forth along the given vector with the given speed and phase.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;closePortal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Closes the renderer portal associated with this mover.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;decelSound&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound to be played when the mover decelerates.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;decelTime&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the deceleration time. Set this deceleration time before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;decelTo&#039;&#039;&#039;(float speed, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a deceleration to the given speed over the given time in seconds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableSplineAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables aligning the mover with the spline direction.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableSplineAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables aligning the mover with the spline direction.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMoveSpeed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the movement speed.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMoveTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the movement time.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isMoving&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if a mover is moving&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isRotating&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if a mover is rotating&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;move&#039;&#039;&#039;(float angle, float distance); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation with the given distance in the given yaw direction. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveSound&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound to be played when the moving.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveTo&#039;&#039;&#039;(entity targetEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation to the position of an entity. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToPos&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation to an absolute position. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;openPortal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Opens the renderer portal associated with this mover.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeInitialSplineAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Subtracts the initial spline angles to maintain the initial orientation of the mover.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotate&#039;&#039;&#039;(vector angleSpeed); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation with the given angular speed. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateDownTo&#039;&#039;&#039;(float axis, float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation about the given axis by decreasing the current angle towards the given angle. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateOnce&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation towards the current angles plus the given Euler angles. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateTo&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation towards the given Euler angles. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateUpTo&#039;&#039;&#039;(float axis, float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation about the given axis by increasing the current angle towards the given angle. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;speed&#039;&#039;&#039;(float speed); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the movement speed. Set this speed before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startSpline&#039;&#039;&#039;(entity spline); ====&lt;br /&gt;
&lt;br /&gt;
:Starts moving along a spline stored on the given entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopMoving&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops any translational movement.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopRotating&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops any rotational movement.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopSpline&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops moving along a spline.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;sway&#039;&#039;&#039;(float speed, float phase, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation back and forth along the given angles with the given speed and phase.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;time&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the movement time. Set this time before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
=== idMover_Binary ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;closePortal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Closes the renderer portal associated with this mover.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;openPortal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Opens the renderer portal associated with this mover.&lt;br /&gt;
&lt;br /&gt;
=== idRotater ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idRiser ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idPlayer ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeWeaponName&#039;&#039;&#039;(string weaponName, string displayName); ====&lt;br /&gt;
&lt;br /&gt;
:Changes the display name of the given weapon item to something different. Pass an empty string to reset the display name to the definition as found in the weaponDef.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeWeaponProjectile&#039;&#039;&#039;(string weaponName, string projectileDefName); ====&lt;br /&gt;
&lt;br /&gt;
:Changes the projectile entityDef name of the given weapon (e.g. &amp;quot;broadhead&amp;quot;) to the specified entityDef (e.g. &amp;quot;atdm:projectile_broadhead&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;checkAAS&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearActiveInventoryMap&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clear the active inventory map entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearActiveInventoryMapEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clear the active inventory map entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearMouseDeadTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;customDeath&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;deathMenu&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Lowers and disables the player weapon.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables the player weapon.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;endZoom&#039;&#039;&#039;(float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Starts the zoom out event, which performs a gradual transition back to the default FOV. May be called during a transition as well to intercept a pending zoom in transition.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: duration of the transition in msec&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;exitTeleporter&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getButtons&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the button state from the current user command.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getCalibratedLightgemValue&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the calibrated light gem value.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurrentWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns weaponX where X is the number of the weapon the player is currently holding.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurWeaponName&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the current weapon, as defined by &amp;quot;inv_weapon_name&amp;quot; in the weaponDef.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getDragged&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently dragged body. Returns $null_entity if the body is shouldered, the player has nothing in his hands, or he has a non-AF entity in his hands. See also getShouldered(), getGrabbed() and getFrobbed().&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getFov&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:This returns the current FOV of the player. You can modify the current FOV with startZoom() and endZoom().&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getFrobbed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently frobhilighted entity. This includes entities the player has in his hands. Sets &amp;quot;frob only used by&amp;quot; mode&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getGrabbed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently entity in the players hands. Returns $null_entity if the player has nothing in his hands Dragging or shouldering a body counts as grabbing it. See also getDragged(), getShouldered(), getFrobbed().&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getHinderance&#039;&#039;&#039;(string source); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get hinderance from a source.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getImmobilization&#039;&#039;&#039;(string source); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get immobilization from a source. Warning: Not a finalized version. It&#039;s subject to change, so use it at your own risk.)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getInventoryOverlay&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the default inventory overlay for the player. All other entities will return an invalid value.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMouseGesture&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the results of the last mouse gesture in enum form. (see the definition for MOUSEDIR_* for which numbers correspond to which directions)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the movement relative to the player&#039;s view angles from the current user command. vector_x = forward, vector_y = right, vector_z = up&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextHinderance&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get the next hinderance from a source.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextImmobilization&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get immobilization from a source. Warning: Not a finalized version. It&#039;s subject to change, so use it at your own risk.)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextTurnHinderance&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Get the next hinderance on the view turning from a source&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getObjectiveComp&#039;&#039;&#039;(float ObjNum, float CompNum); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get the state of custom objective components&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
::&#039;&#039;CompNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getObjectiveState&#039;&#039;&#039;(float ObjNum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current state of the objective with the number ObjNum.  State is one of the following: OBJ_INCOMPLETE = 0, OBJ_COMPLETE = 1, OBJ_INVALID = 2, OBJ_FAILED = 3&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getObjectiveVisible&#039;&#039;&#039;(float ObjNum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current visibility of the objective with the number ObjNum.&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getPreviousWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns weaponX where X is the number of the weapon the player was previously holding.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getShouldered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently shouldered body, otherwise $null_entity. See also getDragged(), getGrabbed() and getFrobbed().&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getTurnHinderance&#039;&#039;&#039;(string source); ====&lt;br /&gt;
&lt;br /&gt;
:* Get the hinderance on the view turning from a source&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getViewAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the player view angles.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getWeaponEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity for the player&#039;s weapon&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;giveHealthPool&#039;&#039;&#039;(float amount); ====&lt;br /&gt;
&lt;br /&gt;
:This increases/decreases the healthpool of the player by the given amount. The healthpool is gradually decreased over time, healing (damaging?) the player.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;heldEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity currently being held, or $null_entity if the player&#039;s hands are empty.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;holdEntity&#039;&#039;&#039;(entity entity); ====&lt;br /&gt;
&lt;br /&gt;
:Forces the player to hold an entity (e.g. puts it into the grabber). Drops whatever is in the player&#039;s hands if $null_entity is passed to it. Returns 1 if successful, 0 if not.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isLeaning&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get whether the player is leaning&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;missionFailed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;missionSuccess&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;mouseGestureFinished&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the player is not currently doing a mouse gesture.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;objectiveCompUnlatch&#039;&#039;&#039;(float ObjNum, float CompNum); ====&lt;br /&gt;
&lt;br /&gt;
:Unlatch an irreversible objective component that has latched into a state&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;objectiveUnlatch&#039;&#039;&#039;(float ObjNum); ====&lt;br /&gt;
&lt;br /&gt;
:Unlatch an irreversible objective that has latched into a state&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pauseGame&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Pauses the game. This should only be called for threads that are explicitly maintained by a special SDK method, because ordinary threads won&#039;t get executed during g_stopTime == true. Note: This is used by the objective GUI threads. Note: Must be called on the player entity, not the sys entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;playStartSound&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;readLightgemModifierFromWorldspawn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;resetWeaponProjectile&#039;&#039;&#039;(string weaponName); ====&lt;br /&gt;
&lt;br /&gt;
:Reloads the original projectile def name from the weaponDef. Used to revert a change made by the event changeWeaponProjectile().&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;resetZoom&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cancels any pending zoom transitions and resets the FOV to normal.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ropeRemovalCleanup&#039;&#039;&#039;(entity ropeEnt); ====&lt;br /&gt;
&lt;br /&gt;
:Called when rope arrow ropes are removed, removes stale pointers on the player object.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;saveGame&#039;&#039;&#039;(string filename); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;selectWeapon&#039;&#039;&#039;(string weapon); ====&lt;br /&gt;
&lt;br /&gt;
:Selects the weapon the player is holding.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setActiveInventoryMapEnt&#039;&#039;&#039;(entity mapEnt); ====&lt;br /&gt;
&lt;br /&gt;
:Notify the player about a new active map entity. This clears out any previously active maps.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFrobOnlyUsedByInv&#039;&#039;&#039;(float OnOff); ====&lt;br /&gt;
&lt;br /&gt;
:Engages or disengages a mode where we only frobhilight entities that can be used by our current inventory item. This also disables general frobactions and only allows &amp;quot;used by&amp;quot; frob actions.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setHinderance&#039;&#039;&#039;(string source, float mCap, float fCap); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set hinderance from a source.&lt;br /&gt;
::&#039;&#039;mCap&#039;&#039;: mCap values from all sources are multiplied together to define a cap&lt;br /&gt;
::&#039;&#039;fCap&#039;&#039;: fCap values are not additive, the smallest one among all the sources is used&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setImmobilization&#039;&#039;&#039;(string source, float type); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set immobilization from a source. Warning: Not a finalized version. It&#039;s subject to change, so use it at your own risk.)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightgemModifier&#039;&#039;&#039;(string modifierName, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the named lightgem modifier to a certain value. An example would be the player lantern: setLightgemModifier(&amp;quot;lantern&amp;quot;, 32). This way multiple modifiers can be set by concurrent script threads.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveComp&#039;&#039;&#039;(float ObjNum, float CompNum, float state); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set the state of custom objective components&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: objective number. Starts counting at 1&lt;br /&gt;
::&#039;&#039;CompNum&#039;&#039;: component number. Starts counting at 1&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 1 or 0 for true or false&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveEnabling&#039;&#039;&#039;(float ObjNum, string strIn); ====&lt;br /&gt;
&lt;br /&gt;
:Set an objective&#039;s enabling objectives (objectives that must be completed before that objective may be completed).&lt;br /&gt;
::&#039;&#039;strIn&#039;&#039;: takes the form of a string that is a space-delimited list of integer objectives representing the new enabling objectives. E.g. : &#039;1 2 3 4&#039;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveOngoing&#039;&#039;&#039;(float ObjNum, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets objective ongoing.&lt;br /&gt;
::&#039;&#039;val&#039;&#039;: 1 for true, 0 for false&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveOptional&#039;&#039;&#039;(float ObjNum, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets objective mandatory.&lt;br /&gt;
::&#039;&#039;val&#039;&#039;: 1 for true, 0 for false&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveState&#039;&#039;&#039;(float ObjNum, float State); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set the state of objectives from the script. For example, use this to invalidate an objective when something happens in your mission. The first argument is the numerical index of the objective (taking &#039;user&#039; objective indices, starting at 1). Choose from the following for the second argument: OBJ_INCOMPLETE, OBJ_COMPLETE, OBJ_INVALID, OBJ_FAILED. Use this on $player1 like $player1.setObjectiveState(1, OBJ_COMPLETE);&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveText&#039;&#039;&#039;(float ObjNum, string newText); ====&lt;br /&gt;
&lt;br /&gt;
:Modify the displayed text for an objective. Can also be a string template like #str_20000&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveVisible&#039;&#039;&#039;(float ObjNum, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets objective visibility.&lt;br /&gt;
::&#039;&#039;val&#039;&#039;: 1 for true, 0 for false&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPeekOverlayBackground&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the background overlay for peeking, depending on aspect ratio.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPeekView&#039;&#039;&#039;(float OnOff, vector origin); ====&lt;br /&gt;
&lt;br /&gt;
:Toggle whether we should use a view from a peek entity as the player&#039;s view&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSavePermissions&#039;&#039;&#039;(float permission); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
::&#039;&#039;permission&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSpyglassOverlayBackground&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the background overlay for the spyglass, depending on aspect ratio.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTurnHinderance&#039;&#039;&#039;(string source, float mCap, float fCap); ====&lt;br /&gt;
&lt;br /&gt;
:Set the hinderance on the view turning from a source&lt;br /&gt;
::&#039;&#039;mCap&#039;&#039;: mCap values from all sources are multiplied together to define a cap&lt;br /&gt;
::&#039;&#039;fCap&#039;&#039;: fCap values are not additive, the smallest one among all the sources is used&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setViewAngles&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the player view angles, e.g. make the player facing this direction. 0 0 0 is east (along the X axis in DR), 0 90 0 north (along the Y axis in DR) 0 180 0 west, 0 270 0 south.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startGamePlayTimer&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Resets the game play timer to zero and (re)starts it.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startMouseGesture&#039;&#039;&#039;(float key, float thresh, float test, float inverted, float turnHinderance, float decideTime, float deadTime); ====&lt;br /&gt;
&lt;br /&gt;
:Start tracking a mouse gesture that started when the key impulse was pressed. Discretizes analog mouse movement into a few different gesture possibilities. Impulse arg can also be a button, see the UB_* enum in usercmdgen.h. For now, only one mouse gesture check at a time.&lt;br /&gt;
::&#039;&#039;thresh&#039;&#039;: Waits until the threshold mouse input thresh is reached before deciding.&lt;br /&gt;
::&#039;&#039;test&#039;&#039;: determines which test to do (0 = up/down, 1 = left/right, 2 = 4 directions, 3 = 8 directions).&lt;br /&gt;
::&#039;&#039;inverted&#039;&#039;: inverts the movement if set to 1, does not if 0&lt;br /&gt;
::&#039;&#039;turnHinderance&#039;&#039;: Sets the max player view turn rate when checking this mouse gesture (0 =&amp;gt; player view locked, 1.0 =&amp;gt; no effect on view turning)&lt;br /&gt;
::&#039;&#039;decideTime&#039;&#039;: time in milliseconds after which the mouse gesture is auto-decided, in the event that the mouse movement threshold was not reached. A DecideTime of -1 means wait forever until the button is released.&lt;br /&gt;
::&#039;&#039;deadTime&#039;&#039;: how long after attack is pressed that mouse control remains dampened by the fraction turnHinderance.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startZoom&#039;&#039;&#039;(float duration, float startFOV, float endFOV); ====&lt;br /&gt;
&lt;br /&gt;
:Call this to start the zoom in event. The player FOV is gradually zoomed in until over the given timespan.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: duration of the transition in msec&lt;br /&gt;
::&#039;&#039;startFOV&#039;&#039;: The start FOV, this is clamped to [1..179]&lt;br /&gt;
::&#039;&#039;endFOV&#039;&#039;: The end FOV, this is clamped to [1..179]&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopFxFov&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopMouseGesture&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testEvent1&#039;&#039;&#039;(float float_pi, float int_beef, float float_exp, string string_tdm, float float_exp10, float int_food); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;testEvent2&#039;&#039;&#039;(float int_prevres, vector vec_123, float int_food, entity ent_player, entity ent_null, float float_pi, float float_exp); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;testEvent3&#039;&#039;&#039;(entity ent_prevres, vector vec_123, float float_pi, entity ent_player); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;triggerMissionEnd&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;unpauseGame&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Unpauses the game. Most scripts are not executed during g_stopTime == true and won&#039;t get into the position of calling this.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;wasDamaged&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Check if the player was damaged this frame.&lt;br /&gt;
&lt;br /&gt;
=== idProjectile ===&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getProjectileState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current state of the projectile. States are defined in tdm_defs.script&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;launch&#039;&#039;&#039;(vector start, vector dir, vector velocity); ====&lt;br /&gt;
&lt;br /&gt;
:Launches the projectile from &amp;lt;start&amp;gt; in direction &amp;lt;dir&amp;gt; with the given &amp;lt;velocity&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;TDM_Lock_OnLockPicked&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
=== CProjectileResult ===&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getActualStruckEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAxialDir&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getFinalAngVel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getFinalVel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getIncidenceAngle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getProjMass&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getStruckEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getSurfNormal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getSurfType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isVineFriendly&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Vine-arrow event&lt;br /&gt;
&lt;br /&gt;
=== CTarget_SetRelations ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_SetEntityRelation ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_ChangeEntityRelation ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idThread ===&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;acos&#039;&#039;&#039;(float cosine); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the angle in degrees with the given cosine.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;angToForward&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a forward vector for the given Euler angles.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;angToRight&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a right vector for the given Euler angles.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;angToUp&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns an up vector for the given Euler angles.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;asin&#039;&#039;&#039;(float sine); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the angle in degrees with the given sine.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;assert&#039;&#039;&#039;(float condition); ====&lt;br /&gt;
&lt;br /&gt;
:Breaks if the condition is zero. (Only works in debug builds.)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;cacheSoundShader&#039;&#039;&#039;(string shaderName); ====&lt;br /&gt;
&lt;br /&gt;
:Ensure the specified sound shader is loaded by the system. Prevents cache misses when playing sound shaders.&lt;br /&gt;
::&#039;&#039;shaderName&#039;&#039;: the sound shader to cache&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canPlant&#039;&#039;&#039;(vector traceStart, vector traceEnd, entity ignore, entity vine); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;ceil&#039;&#039;&#039;(float x); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the smallest integer that is greater than or equal to the given value.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearPersistantArgs&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clears data that persists between maps.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearSignalThread&#039;&#039;&#039;(float signalNum, entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Clears the script callback function set for when the given signal is raised on the given entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;copySpawnArgs&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:copies the spawn args from an entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;cos&#039;&#039;&#039;(float degrees); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the cosine of the given angle in degrees.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;CrossProduct&#039;&#039;&#039;(vector vec1, vector vec2); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the cross product of the two vectors.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debug_tdm_material&#039;&#039;&#039;(string file); ====&lt;br /&gt;
&lt;br /&gt;
:For temporary debuging purposes only. Should be removed eventually.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugArrow&#039;&#039;&#039;(vector color, vector start, vector end, float size, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugBounds&#039;&#039;&#039;(vector color, vector mins, vector maxs, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugCircle&#039;&#039;&#039;(vector color, vector origin, vector dir, float radius, float numSteps, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugLine&#039;&#039;&#039;(vector color, vector start, vector end, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;DotProduct&#039;&#039;&#039;(vector vec1, vector vec2); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the dot product of the two vectors.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;drawText&#039;&#039;&#039;(string text, vector origin, float scale, vector color, float align, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:text drawing for debugging. lifetime of 0 == 1 frame.&lt;br /&gt;
::&#039;&#039;align&#039;&#039;: 0 = left, 1 = center, 2 = right&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;emitParticle&#039;&#039;&#039;(string particle, float startTime, float diversity, vector origin, vector angle); ====&lt;br /&gt;
&lt;br /&gt;
:Start a particle effect in the world without using an entity emitter. Will emit one quad per particle stage when first called with sys.getTime() as the start time. Designed to be called once per frame with the same startTime each call to achieve a normal particle effect, or on demand with sys.getTime() as the startTime for finer grained control, 1 quad at a time. Returns True (1) if there are more particles to be emitted from the stage, False (0) if the stage has released all its quads.&lt;br /&gt;
::&#039;&#039;particle&#039;&#039;: String: name of particle effect.&lt;br /&gt;
::&#039;&#039;startTime&#039;&#039;: Game seconds since map start: use sys.getTime() for the first call unless you want to back-date the particle so that it starts part way through its cycle.&lt;br /&gt;
::&#039;&#039;diversity&#039;&#039;: Randomizer value between 0 and 1. All particles with the same diversity will have the same path and rotation. Use sys.random(1) for a random path.&lt;br /&gt;
::&#039;&#039;origin&#039;&#039;: Origin of the particle effect.&lt;br /&gt;
::&#039;&#039;angle&#039;&#039;: Axis for the particle effect. Use $&amp;lt;entityname&amp;gt;.getAngles() to align the particle to an entity. use &#039;0 0 0&#039; for an upright (world-aligned) particle effect.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;error&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Issues an error.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeIn&#039;&#039;&#039;(vector color, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades towards the given color over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeOut&#039;&#039;&#039;(vector color, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades from the given color over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeTo&#039;&#039;&#039;(vector color, float alpha, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades to the given color up to the given alpha over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;firstPerson&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns view control to the player entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;floor&#039;&#039;&#039;(float x); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the largest integer that is less than or equal to the given value.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getCurrentMissionNum&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of the current mission (0-based, the first mission has number 0).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getcvar&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string for a cvar.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getDifficultyLevel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns 0 (Easy), 1 (Medium) or 2 (Hard), depending on the difficulty level of the current mission.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getDifficultyName&#039;&#039;&#039;(float difficultyLevel); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the (translated) name of the difficulty level passed as the argument.&lt;br /&gt;
::&#039;&#039;difficultyLevel&#039;&#039;: 0 (Easy), 1 (Medium), 2 (Hard)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getEntity&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a reference to the entity with the specified name.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getFrameTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:returns the length of time between game frames.  this is not related to renderer frame rate.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getLocationPoint&#039;&#039;&#039;(vector point); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the idLocation entity corresponding to the specified point&#039;s location.&lt;br /&gt;
::&#039;&#039;point&#039;&#039;: point whose location to check&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getMainAmbientLight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity of the main ambient light.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMissionStatistic&#039;&#039;&#039;(string statisticName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns current mission statistic.&lt;br /&gt;
::&#039;&#039;statisticName&#039;&#039;: Can be one of (case insensitive): 	gamePlayTime: gameplay time in seconds 	damageDealt: damage dealt to enemies 	damageReceived: damage received by player 	healthReceived: health received by player 	pocketsPicked: pockets picked by player 	foundLoot: loot found by player 	missionLoot: total loot available in mission 	totalTimePlayerSeen: total time the player was seen by enemies in seconds. Updates only when AI lose sight of player 	numberTimesPlayerSeen: number of times player was seen by enemies 	numberTimesAISuspicious: number of times AI was &#039;observant&#039; or &#039;suspicious&#039;. A single AI passing through both alert levels will add 2 to the score. 	numberTimesAISearched: number of times AI was &#039;investigating&#039; or &#039;searching&#039;. A single AI passing through both alert levels will add 2 to the score. 	sightingScore: sighting score (number of times player was seen * weight) 	stealthScore: stealth score (sighting score + alerts * weights) 	killedByPlayer: number of enemies killed by player 	knockedOutByPlayer: number of enemies knocked out by player 	bodiesFound: number of times enemies have spotted a body 	secretsFound: number of secrets found by the player 	secretsTotal: total number of secrets in the mission &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getNextEntity&#039;&#039;&#039;(string key, string value, entity lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Discover all entities in the map. Returns $null_entity when no more found.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: Optional string: prefix for spawnarg key match. E.g. &amp;quot;target&amp;quot; will match &amp;quot;target&amp;quot;, &amp;quot;target1&amp;quot; etc.&lt;br /&gt;
::&#039;&#039;value&#039;&#039;: Optional string: spawnarg value to match. Can be used independently of &#039;&#039;key&#039;&#039;. If &#039;&#039;key&#039;&#039; is not set, all spawnargs will be checked for the value.&lt;br /&gt;
::&#039;&#039;lastMatch&#039;&#039;: Last match: search will start after this entity. Use $null_entity or pass an uninitialized entity variable to start a new search.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPersistantFloat&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the floating point value for the given persistent arg&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getPersistantString&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string for the given persistent arg&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getPersistantVector&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the vector for the given persistent arg&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortAISoundLoss&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:AI sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortPlayerSoundLoss&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Player sound loss  scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortSoundLoss&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getRelation&#039;&#039;&#039;(float team1, float team2); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTDMVersion&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the current TDM version as integer. The value will be 108 for v1.08, 109 for v1.09 and 200 for v2.00 etc.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTicsPerSecond&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:returns the number of game frames per second.  this is not related to renderer frame rate.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current game time in seconds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getTraceBody&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of the body part of the entity which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getTraceEndPos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the position the trace stopped due to a collision with solid geometry during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTraceEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a reference to the entity which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTraceFraction&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the fraction of movement completed during the last call to trace or tracePoint.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getTraceJoint&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of the skeletal joint closest to the location on the entity which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getTraceNormal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the normal of the hit plane during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getTraceSurfType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the type of the surface (i.e. metal, snow) which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;handleMissionEvent&#039;&#039;&#039;(entity objEnt, float eventType, string argument); ====&lt;br /&gt;
&lt;br /&gt;
:Generic interface for passing on mission events from scripts to the SDK. Available since TDM 1.02&lt;br /&gt;
::&#039;&#039;objEnt&#039;&#039;: the entity that triggered this event (e.g. a readable)&lt;br /&gt;
::&#039;&#039;eventType&#039;&#039;: a numeric identifier (enumerated both in MissionData.h and tdm_defs.script) specifying the type of event&lt;br /&gt;
::&#039;&#039;argument&#039;&#039;: an optional string parameter, eventtype-specific.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;influenceActive&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Checks if an influence is active&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;killthread&#039;&#039;&#039;(string threadName); ====&lt;br /&gt;
&lt;br /&gt;
:Kills all threads with the specified name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;log&#039;&#039;&#039;(float x); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the log of the given argument.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;logString&#039;&#039;&#039;(float logClass, float logType, string output); ====&lt;br /&gt;
&lt;br /&gt;
:This is the script counterpart to DM_LOG&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;music&#039;&#039;&#039;(string shaderName); ====&lt;br /&gt;
&lt;br /&gt;
:Starts playing background music.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;offsetRelation&#039;&#039;&#039;(float team1, float team2, float val); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;onSignal&#039;&#039;&#039;(float signalNum, entity ent, string functionName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a script callback function for when the given signal is raised on the given entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pause&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Pauses the current thread.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;pointInLiquid&#039;&#039;&#039;(vector point, entity ignoreEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Checks if a point is in a liquid, returns 1 if this is the case.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;pointIsInBounds&#039;&#039;&#039;(vector point, vector mins, vector maxs); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the point is within the bounds specified.&lt;br /&gt;
::&#039;&#039;point&#039;&#039;: test whether this point is in the bounds&lt;br /&gt;
::&#039;&#039;mins&#039;&#039;: minimal corner of the bounds&lt;br /&gt;
::&#039;&#039;maxs&#039;&#039;: maximal corner of the bounds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;pow&#039;&#039;&#039;(float x, float y); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the power of x to y.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;print&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Prints the given string to the console.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;println&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Prints the given line to the console.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;projectDecal&#039;&#039;&#039;(vector traceOrigin, vector traceEnd, entity passEntity, string decal, float decalSize, float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Performs a trace from the specified origin and end positions, then projects a decal in that direction.&lt;br /&gt;
::&#039;&#039;traceOrigin&#039;&#039;: Start of the trace.&lt;br /&gt;
::&#039;&#039;traceEnd&#039;&#039;: End of the trace.&lt;br /&gt;
::&#039;&#039;passEntity&#039;&#039;: This entity will be considered non-solid by the trace.&lt;br /&gt;
::&#039;&#039;decal&#039;&#039;: Decal to be projected.&lt;br /&gt;
::&#039;&#039;decalSize&#039;&#039;: Size of the decal quad.&lt;br /&gt;
::&#039;&#039;angle&#039;&#039;: Angle of the decal quad.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;radiusDamage&#039;&#039;&#039;(vector origin, entity inflictor, entity attacker, entity ignore, string damageDefName, float dmgPower); ====&lt;br /&gt;
&lt;br /&gt;
:damages entities within a radius defined by the damageDef.  inflictor is the entity  causing the damage and can be the same as the attacker (in the case   of projectiles, the projectile is the inflictor, while the attacker is the character  that fired the projectile).&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: the entity causing the damage&lt;br /&gt;
::&#039;&#039;ignore&#039;&#039;: an entity to not cause damage to&lt;br /&gt;
::&#039;&#039;dmgPower&#039;&#039;: scales the damage (for cases where damage is dependent on time)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;random&#039;&#039;&#039;(float range); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a random value X where 0 &amp;lt;= X &amp;lt; range.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;saveConDump&#039;&#039;&#039;(string cmd, string cmd); ====&lt;br /&gt;
&lt;br /&gt;
:Saves condump into FM directory; first argument is appended to dump filename, everything before last occurence of second argument is removed&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;say&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Multiplayer - Print this line on the network&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;sessionCommand&#039;&#039;&#039;(string cmd); ====&lt;br /&gt;
&lt;br /&gt;
:Sends the sessioncommand to the game&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setCamera&#039;&#039;&#039;(entity cameraEnt); ====&lt;br /&gt;
&lt;br /&gt;
:Turns over view control to the given camera entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setcvar&#039;&#039;&#039;(string name, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a cvar.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPersistantArg&#039;&#039;&#039;(string key, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a key/value pair that persists between maps&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPortAISoundLoss&#039;&#039;&#039;(float handle, float value); ====&lt;br /&gt;
&lt;br /&gt;
:AI sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPortPlayerSoundLoss&#039;&#039;&#039;(float handle, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Player sound loss scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPortSoundLoss&#039;&#039;&#039;(float handle, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setRelation&#039;&#039;&#039;(float team1, float team2, float val); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSecretsFound&#039;&#039;&#039;(float secrets); ====&lt;br /&gt;
&lt;br /&gt;
:Set how many secrets the player has found. Use getMissionStatistic() for getting the current value.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSecretsTotal&#039;&#039;&#039;(float secrets); ====&lt;br /&gt;
&lt;br /&gt;
:Set how many secrets exist in the map in total. Use getMissionStatistic() for getting the current value.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setShaderParm&#039;&#039;&#039;(float parm, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the value of the specified shader parm.&lt;br /&gt;
::&#039;&#039;parm&#039;&#039;: shader parm index&lt;br /&gt;
::&#039;&#039;value&#039;&#039;: new value&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSpawnArg&#039;&#039;&#039;(string key, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a key/value pair to be used when a new entity is spawned.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;sin&#039;&#039;&#039;(float degrees); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the sine of the given angle in degrees.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;spawn&#039;&#039;&#039;(string classname); ====&lt;br /&gt;
&lt;br /&gt;
:Creates an entity of the specified classname and returns a reference to the entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;SpawnFloat&#039;&#039;&#039;(string key, float default); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the floating point value for the given spawn argument.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;SpawnString&#039;&#039;&#039;(string key, string default); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string for the given spawn argument.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;SpawnVector&#039;&#039;&#039;(string key, vector default); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the vector for the given spawn argument.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;sqrt&#039;&#039;&#039;(float square); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the square root of the given number.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strFind&#039;&#039;&#039;(string text, string find, float casesensitive, float start, float end); ====&lt;br /&gt;
&lt;br /&gt;
:Return the position of the given substring, counting from 0, or -1 if not found.&lt;br /&gt;
::&#039;&#039;casesensitive&#039;&#039;: 0&lt;br /&gt;
::&#039;&#039;start&#039;&#039;: 0&lt;br /&gt;
::&#039;&#039;end&#039;&#039;: -1&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strLeft&#039;&#039;&#039;(string text, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a string composed of the first num characters&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strLength&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of characters in the string&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strMid&#039;&#039;&#039;(string text, float start, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a string composed of the characters from start to start + num&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strRemove&#039;&#039;&#039;(string text, string remove); ====&lt;br /&gt;
&lt;br /&gt;
:Replace all occurances of the given substring with &amp;quot;&amp;quot;. Example: StrRemove(&amp;quot;abba&amp;quot;,&amp;quot;bb&amp;quot;) results in &amp;quot;aa&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strReplace&#039;&#039;&#039;(string text, string remove, string replace); ====&lt;br /&gt;
&lt;br /&gt;
:Replace all occurances of the given string with the replacement string. Example: StrRemove(&amp;quot;abba&amp;quot;,&amp;quot;bb&amp;quot;,&amp;quot;ccc&amp;quot;) results in &amp;quot;accca&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strRight&#039;&#039;&#039;(string text, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a string composed of the last num characters&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strSkip&#039;&#039;&#039;(string text, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string following the first num characters&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strToFloat&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the numeric value of the given string.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strToInt&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the integer value of the given string.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;terminate&#039;&#039;&#039;(float threadNumber); ====&lt;br /&gt;
&lt;br /&gt;
:Terminates a thread.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;threadname&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the name of the current thread.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;trace&#039;&#039;&#039;(vector start, vector end, vector mins, vector maxs, float contents_mask, entity passEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the fraction of movement completed before the box from &#039;mins&#039; to &#039;maxs&#039; hits solid geometry when moving from &#039;start&#039; to &#039;end&#039;. The &#039;passEntity&#039; is considered non-solid during the move.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;tracePoint&#039;&#039;&#039;(vector start, vector end, float contents_mask, entity passEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the fraction of movement completed before the trace hits solid geometry when moving from &#039;start&#039; to &#039;end&#039;. The &#039;passEntity&#039; is considered non-solid during the move.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;translate&#039;&#039;&#039;(string input); ====&lt;br /&gt;
&lt;br /&gt;
:Translates a string (like #str_12345) into the current language&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;trigger&#039;&#039;&#039;(entity entityToTrigger); ====&lt;br /&gt;
&lt;br /&gt;
:Triggers the given entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;vecLength&#039;&#039;&#039;(vector vec); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the length of the given vector.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;vecNormalize&#039;&#039;&#039;(vector vec); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the normalized version of the given vector.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;VecRotate&#039;&#039;&#039;(vector vector, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Rotates a vector by the specified angles.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;VecToAngles&#039;&#039;&#039;(vector vec); ====&lt;br /&gt;
&lt;br /&gt;
:Returns Euler angles for the given direction.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;wait&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends execution of the current thread for the given number of seconds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitFor&#039;&#039;&#039;(entity mover); ====&lt;br /&gt;
&lt;br /&gt;
:Waits for the given entity to complete its move.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitForRender&#039;&#039;&#039;(entity e); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends the current thread until &#039;e&#039; might have been rendered. It&#039;s event based, so it doesn&#039;t waste CPU repeatedly checking inPVS(). e.inPVS() will very likely be true when the thread resumes. If e.inPVS() is true, calling waitForRender() will probably just wait a frame, unless D3 can figure out that the entity doesn&#039;t need to be rendered. Optimizations regarding shadowcasting lights may not apply to this function - it is based purely off whether or not the entity&#039;s bounding box is visible.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitForThread&#039;&#039;&#039;(float threadNumber); ====&lt;br /&gt;
&lt;br /&gt;
:Waits for the given thread to terminate.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitFrame&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends execution of current thread for one game frame.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;warning&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Issues a warning.&lt;br /&gt;
&lt;br /&gt;
=== idSecurityCamera ===&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSee&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getSecurityCameraState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the security camera&#039;s state. 1 = unalerted, 2 = suspicious, 3 = fully alerted, 4 = inactive, 5 = destroyed.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getSpotLight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the spotlight used by the camera. Returns null_entity if none is used.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Off&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity off.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;On&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity on.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSightThreshold&#039;&#039;&#039;(float sightThreshold); ====&lt;br /&gt;
&lt;br /&gt;
:Set the sight threshold of the security camera: how lit up the player&#039;s lightgem needs to be in order to be seen. 0.0 to 1.0&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_light&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Switches the spotlight on or off. Respects the security camera&#039;s power state.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_AI&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see AIs.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_animals&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see animals. Checked after seeAI or seeBodies.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_bodies&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see bodies.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_player&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see the player.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_sweep&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Enables or disables the camera&#039;s sweeping.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_light&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the spotlight on/off.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_AI&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see AIs.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_animals&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see bodies. Checked after seeAI or seeBodies.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_bodies&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see bodies.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_player&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see the player.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_sweep&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the camera sweep.&lt;br /&gt;
&lt;br /&gt;
=== Seed ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;cullAll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cull (remove from world) all entities.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
=== idSound ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Off&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity off.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;On&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity on.&lt;br /&gt;
&lt;br /&gt;
=== idTarget_Remove ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_Show ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_Damage ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SessionCommand ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_EndLevel ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_WaitForButton ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SetGlobalShaderTime ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SetShaderParm ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SetShaderTime ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_FadeEntity ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_LightFadeIn ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_LightFadeOut ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_Give ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SetModel ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SetInfluence ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SetKeyVal ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SetFov ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_CallObjectFunction ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_PostScriptEvent ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_EnableLevelWeapons ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_RemoveWeapons ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_FadeSoundClass ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_AddObjectives ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_SetObjectiveState ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_SetObjectiveVisibility ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_SetObjectiveComponentState ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_StartConversation ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_SetFrobable ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_CallScriptFunction ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_ChangeLockState ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_ChangeTarget ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_InterMissionTrigger ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_SetTeam ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_ItemRemove ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTrigger ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
=== idTrigger_Multi ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTrigger_EntityName ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTrigger_Timer ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTrigger_Count ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTrigger_Hurt ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTrigger_Fade ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTrigger_Touch ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idWeapon ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addToClip&#039;&#039;&#039;(float amount); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowDrop&#039;&#039;&#039;(float allow); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;ammoAvailable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Number of shots left in inventory&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;ammoInClip&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animDone&#039;&#039;&#039;(float channel, float blendOutFrames); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the animation playing on the given channel is completed considering a number of blend frames.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animIsPaused&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Return whether the given anim channel is paused&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;clipSize&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;createProjectile&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ejectBrass&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;flashlight&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getBlendFrames&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of frames to blend between animations on the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getLightParm&#039;&#039;&#039;(float parmNum); ====&lt;br /&gt;
&lt;br /&gt;
:Gets a shader parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getOwner&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the owning entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getWorldModel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity that controls the world model&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isInvisible&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;launchProjectiles&#039;&#039;&#039;(float num_projectiles, float spread, float fuseOffset, float launchPower, float dmgPower); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;melee&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;netEndReload&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;netReload&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;nextWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pauseAnim&#039;&#039;&#039;(float channel, float bPause); ====&lt;br /&gt;
&lt;br /&gt;
:Pause all animations playing on the given channel. NOTE: Can also be used used by idWeapons&lt;br /&gt;
::&#039;&#039;bPause&#039;&#039;: true = pause, false = unpause&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Do not use, this is part of TDM&#039;s internal mechanics. Use playCustomAnim() on AI.in scripts instead of this. Plays the given animation on the given channel. Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playCycle&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Continuously repeats the given animation on the given channel.  Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setBlendFrames&#039;&#039;&#039;(float channel, float blendFrame); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the number of frames to blend between animations on the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightParm&#039;&#039;&#039;(float parmNum, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a shader parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightParms&#039;&#039;&#039;(float parm0, float parm1, float parm2, float parm3); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the red/green/blue/alpha shader parms on the light and the model.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;showAttachment&#039;&#039;&#039;(string attName, float show); ====&lt;br /&gt;
&lt;br /&gt;
:Show or hide an attachment.&lt;br /&gt;
::&#039;&#039;show&#039;&#039;: 1 shows attachment, 0 hides it.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;showAttachmentInd&#039;&#039;&#039;(float index, float show); ====&lt;br /&gt;
&lt;br /&gt;
:Show or hide an attachment by array index.&lt;br /&gt;
::&#039;&#039;index&#039;&#039;: starts at 0&lt;br /&gt;
::&#039;&#039;show&#039;&#039;: 1 shows attachment, 0 hides it.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;totalAmmoCount&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Amount of ammo in inventory. since each shot may use more than 1 ammo, this is different than ammoAvailable()&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;useAmmo&#039;&#039;&#039;(float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Eats the specified amount of ammo&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponHolstered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponLowering&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponOutOfAmmo&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponReady&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponReloading&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponRising&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponState&#039;&#039;&#039;(string stateFunction, float blendFrames); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting]]&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=TDM_Script_Reference&amp;diff=29782</id>
		<title>TDM Script Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=TDM_Script_Reference&amp;diff=29782"/>
		<updated>2022-08-14T09:08:01Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: /* scriptEvent float getEntityFlag(string flagName); */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page has been generated automatically by the tdm_gen_script_event_doc console command.&lt;br /&gt;
&lt;br /&gt;
Generated by The Dark Mod 2.10, code revision 9853, last update: 2022-03-20 09:00&lt;br /&gt;
&lt;br /&gt;
{{tdm-scripting-reference-intro}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;toclimit-4&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
= TDM Script Event Reference =&lt;br /&gt;
&lt;br /&gt;
== All Events ==&lt;br /&gt;
=== Alphabetic List ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;accelSound&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound to be played when the mover accelerates.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;accelTime&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the acceleration time. Set this acceleration time before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;accelTo&#039;&#039;&#039;(float speed, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates an acceleration to the given speed over the given time in seconds.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;acos&#039;&#039;&#039;(float cosine); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the angle in degrees with the given cosine.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CTarget_AddObjectives&#039;&#039;, &#039;&#039;CTarget_CallScriptFunction&#039;&#039;, &#039;&#039;CTarget_ChangeEntityRelation&#039;&#039;, &#039;&#039;CTarget_ChangeLockState&#039;&#039;, &#039;&#039;CTarget_ChangeTarget&#039;&#039;, &#039;&#039;CTarget_InterMissionTrigger&#039;&#039;, &#039;&#039;CTarget_ItemRemove&#039;&#039;, &#039;&#039;CTarget_SetEntityRelation&#039;&#039;, &#039;&#039;CTarget_SetFrobable&#039;&#039;, &#039;&#039;CTarget_SetObjectiveComponentState&#039;&#039;, &#039;&#039;CTarget_SetObjectiveState&#039;&#039;, &#039;&#039;CTarget_SetObjectiveVisibility&#039;&#039;, &#039;&#039;CTarget_SetRelations&#039;&#039;, &#039;&#039;CTarget_SetTeam&#039;&#039;, &#039;&#039;CTarget_StartConversation&#039;&#039;, &#039;&#039;idAFEntity_Generic&#039;&#039;, &#039;&#039;idAFEntity_WithAttachedHead&#039;&#039;, &#039;&#039;idAI&#039;&#039;, &#039;&#039;idActivator&#039;&#039;, &#039;&#039;idAnimated&#039;&#039;, &#039;&#039;idBeam&#039;&#039;, &#039;&#039;idBrittleFracture&#039;&#039;, &#039;&#039;idCameraAnim&#039;&#039;, &#039;&#039;idCameraView&#039;&#039;, &#039;&#039;idCombatNode&#039;&#039;, &#039;&#039;idDamagable&#039;&#039;, &#039;&#039;idEarthQuake&#039;&#039;, &#039;&#039;idEntityFx&#039;&#039;, &#039;&#039;idExplodable&#039;&#039;, &#039;&#039;idForceField&#039;&#039;, &#039;&#039;idFuncAASObstacle&#039;&#039;, &#039;&#039;idFuncAASPortal&#039;&#039;, &#039;&#039;idFuncPortal&#039;&#039;, &#039;&#039;idFuncSmoke&#039;&#039;, &#039;&#039;idItem&#039;&#039;, &#039;&#039;idLight&#039;&#039;, &#039;&#039;idListener&#039;&#039;, &#039;&#039;idMoveable&#039;&#039;, &#039;&#039;idMover&#039;&#039;, &#039;&#039;idMover_Binary&#039;&#039;, &#039;&#039;idPhantomObjects&#039;&#039;, &#039;&#039;idPlayerStart&#039;&#039;, &#039;&#039;idPortalSky&#039;&#039;, &#039;&#039;idRiser&#039;&#039;, &#039;&#039;idRotater&#039;&#039;, &#039;&#039;idShaking&#039;&#039;, &#039;&#039;idSound&#039;&#039;, &#039;&#039;idStaticEntity&#039;&#039;, &#039;&#039;idTarget_CallObjectFunction&#039;&#039;, &#039;&#039;idTarget_Damage&#039;&#039;, &#039;&#039;idTarget_EnableLevelWeapons&#039;&#039;, &#039;&#039;idTarget_EndLevel&#039;&#039;, &#039;&#039;idTarget_FadeEntity&#039;&#039;, &#039;&#039;idTarget_FadeSoundClass&#039;&#039;, &#039;&#039;idTarget_Give&#039;&#039;, &#039;&#039;idTarget_LightFadeIn&#039;&#039;, &#039;&#039;idTarget_LightFadeOut&#039;&#039;, &#039;&#039;idTarget_PostScriptEvent&#039;&#039;, &#039;&#039;idTarget_Remove&#039;&#039;, &#039;&#039;idTarget_RemoveWeapons&#039;&#039;, &#039;&#039;idTarget_SessionCommand&#039;&#039;, &#039;&#039;idTarget_SetFov&#039;&#039;, &#039;&#039;idTarget_SetGlobalShaderTime&#039;&#039;, &#039;&#039;idTarget_SetInfluence&#039;&#039;, &#039;&#039;idTarget_SetKeyVal&#039;&#039;, &#039;&#039;idTarget_SetModel&#039;&#039;, &#039;&#039;idTarget_SetShaderParm&#039;&#039;, &#039;&#039;idTarget_SetShaderTime&#039;&#039;, &#039;&#039;idTarget_Show&#039;&#039;, &#039;&#039;idTarget_WaitForButton&#039;&#039;, &#039;&#039;idTrigger_Count&#039;&#039;, &#039;&#039;idTrigger_EntityName&#039;&#039;, &#039;&#039;idTrigger_Fade&#039;&#039;, &#039;&#039;idTrigger_Hurt&#039;&#039;, &#039;&#039;idTrigger_Multi&#039;&#039;, &#039;&#039;idTrigger_Timer&#039;&#039;, &#039;&#039;idTrigger_Touch&#039;&#039;, &#039;&#039;idVacuumSeparatorEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activateContacts&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Activate objects sitting on this object.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activateTargets&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Causes this entity to activate all it&#039;s targets. Similar to how a trigger activates entities.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addDescendant&#039;&#039;&#039;(entity vine); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmVine&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addInvItem&#039;&#039;&#039;(entity inv_item); ====&lt;br /&gt;
&lt;br /&gt;
:Adds the given item to the inventory. Depending on the type the passed entity will be removed from the game (as for loot items) or hidden.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addItemToInv&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Adds the entity to the given entity&#039;s inventory. Depending on the type the entity will be removed from the game (as for loot items) or hidden. Example: $book-&amp;gt;addItemToInv($player1);&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addTarget&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Add a target to this entity.&lt;br /&gt;
::&#039;&#039;target&#039;&#039;: the entity to add as target&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addToClip&#039;&#039;&#039;(float amount); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;alert&#039;&#039;&#039;(string type, float val); ====&lt;br /&gt;
&lt;br /&gt;
:ai generalized alerts&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;alertAI&#039;&#039;&#039;(string type, float amount, entity actor); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
::&#039;&#039;type&#039;&#039;: alert type&lt;br /&gt;
::&#039;&#039;amount&#039;&#039;: alert amount&lt;br /&gt;
::&#039;&#039;actor&#039;&#039;: actor causing alert&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowDamage&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:The AI can take damage again.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowDrop&#039;&#039;&#039;(float allow); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowHiddenMovement&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:Normally, when hidden, monsters do not run physics. This enables physics when hidden.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowMovement&#039;&#039;&#039;(float allow); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;ammoAvailable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Number of shots left in inventory&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;ammoInClip&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;angToForward&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a forward vector for the given Euler angles.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;angToRight&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a right vector for the given Euler angles.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;angToUp&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns an up vector for the given Euler angles.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animDistance&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the distance that the anim travels. If the entity has multiple anims with animName, the distance may not match the anim that is played. Use chooseAnim to get a non-random anim and pass that string into animDistance.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animDone&#039;&#039;&#039;(float channel, float blendOutFrames); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the animation playing on the given channel is completed considering a number of blend frames.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animIsPaused&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Return whether the given anim channel is paused&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animLength&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the length of the anim in seconds. If the entity has multiple anims with animName, length may not match the anim that is played. Use chooseAnim to get a non-random anim and pass that string into animLength.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;animState&#039;&#039;&#039;(float channel, string stateFunction, float blendFrame); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a new animation state script function for the given channel.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;animTurn&#039;&#039;&#039;(float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Enable/disable animation controlled turning.&lt;br /&gt;
::&#039;&#039;angle&#039;&#039;: Pass in the maximum # of degrees the animation turns. Use an amount of 0 to disable.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;applyImpulse&#039;&#039;&#039;(entity source, float bodyid, vector point, vector impulse); ====&lt;br /&gt;
&lt;br /&gt;
:Applies an impulse to the entity. Example: entity.applyImpulse($player1, 0, entity.getOrigin(), &#039;0 0 2&#039;);&lt;br /&gt;
::&#039;&#039;source&#039;&#039;: Pass $null_entity or the entity that applies the impulse&lt;br /&gt;
::&#039;&#039;bodyid&#039;&#039;: For articulated figures, ID of the body, 0 for the first (main) body. Otherwise use 0.&lt;br /&gt;
::&#039;&#039;point&#039;&#039;: Point on the body where the impulse is applied to&lt;br /&gt;
::&#039;&#039;impulse&#039;&#039;: Vector of the impulse&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;asin&#039;&#039;&#039;(float sine); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the angle in degrees with the given sine.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;assert&#039;&#039;&#039;(float condition); ====&lt;br /&gt;
&lt;br /&gt;
:Breaks if the condition is zero. (Only works in debug builds.)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attach&#039;&#039;&#039;(entity ent, string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Attach an entity to the AI. Entity spawnArgs checked for attachments are:  - &amp;quot;origin&amp;quot;, &amp;quot;angles&amp;quot;, and &amp;quot;joint&amp;quot;. These must be set prior to calling attach.&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the desired name of the attachment, e.g., &#039;melee_weapon&#039;&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attachToPos&#039;&#039;&#039;(entity ent, string position, string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Attach an entity to the AI, using a named attachment position&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the desired name of the attachment, e.g., &#039;melee_weapon&#039;&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attackBegin&#039;&#039;&#039;(string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attackEnd&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;attackMelee&#039;&#039;&#039;(string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the attack hit&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;attackMissile&#039;&#039;&#039;(string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:returns projectile fired&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bark&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Let the AI bark a certain sound.&lt;br /&gt;
::&#039;&#039;sound&#039;&#039;: sound name, e.g. &#039;snd_warn_response&#039;&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;becomeNonSolid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Makes the moveable non-solid for other entities.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;, &#039;&#039;idMoveable&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;becomeRagdoll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:enables the ragdoll if the entity has one&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;becomeSolid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bind&#039;&#039;&#039;(entity master); ====&lt;br /&gt;
&lt;br /&gt;
:Fixes this entity&#039;s position and orientation relative to another entity, such that when the master entity moves, so does this entity.&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: the entity to bind to&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bindPosition&#039;&#039;&#039;(entity master); ====&lt;br /&gt;
&lt;br /&gt;
:Fixes this entity&#039;s position (but not orientation) relative to another entity, such that when the master entity moves, so does this entity.&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: the entity to bind to&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bindToBody&#039;&#039;&#039;(entity master, float bodyID, float orientated); ====&lt;br /&gt;
&lt;br /&gt;
:Bind to AF body&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: entity to bind to&lt;br /&gt;
::&#039;&#039;bodyID&#039;&#039;: AF body ID to bind to&lt;br /&gt;
::&#039;&#039;orientated&#039;&#039;: binds the orientation as well as position, if set to 1&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bindToJoint&#039;&#039;&#039;(entity master, string boneName, float rotateWithMaster); ====&lt;br /&gt;
&lt;br /&gt;
:Fixes this entity&#039;s position and orientation relative to a bone on another entity, such that when the master&#039;s bone moves, so does this entity.&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: the entity to bind to&lt;br /&gt;
::&#039;&#039;boneName&#039;&#039;: the bone name&lt;br /&gt;
::&#039;&#039;rotateWithMaster&#039;&#039;: -&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bob&#039;&#039;&#039;(float speed, float phase, vector distance); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation back and forth along the given vector with the given speed and phase.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;burn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;cacheSoundShader&#039;&#039;&#039;(string shaderName); ====&lt;br /&gt;
&lt;br /&gt;
:Ensure the specified sound shader is loaded by the system. Prevents cache misses when playing sound shaders.&lt;br /&gt;
::&#039;&#039;shaderName&#039;&#039;: the sound shader to cache&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;, &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;callFunction&#039;&#039;&#039;(string functionName); ====&lt;br /&gt;
&lt;br /&gt;
:Calls a function on an entity&#039;s script object. See also callGlobalFunction().&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;callGlobalFunction&#039;&#039;&#039;(string functionName, entity other); ====&lt;br /&gt;
&lt;br /&gt;
:calls a global function and passes the other entity along as the first argument calls the function in a new thread, so it continues executing in the current thread right away (unlike entity.callFunction( &amp;quot;blah&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;callGui&#039;&#039;&#039;(float handle, string namedEvent); ====&lt;br /&gt;
&lt;br /&gt;
:Calls a named event in a GUI.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canBecomeSolid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canBeUsedBy&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the entity can be used by the argument entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canHitEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canHitEnemyFromAnim&#039;&#039;&#039;(string anim); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canHitEnemyFromJoint&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canPlant&#039;&#039;&#039;(vector traceStart, vector traceEnd, entity ignore, entity vine); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canReachEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if character can walk to enemy&#039;s position. For walking monsters, enemy should be near the floor.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canReachEntity&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if character can walk to entity&#039;s position. For walking monsters, entity should be near the floor.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canReachPosition&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if character can walk to specified position. For walking monsters, position should be near the floor.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSee&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;, &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSeeEntity&#039;&#039;&#039;(entity target, float useLighting); ====&lt;br /&gt;
&lt;br /&gt;
:This is a general version of idAI::canSee, that can be used by all entities. It doesn&#039;t regard FOV, it just performs a trace to check whether the target is occluded by world geometry. Is probably useful for stim/response as well Pass useLighting = true to take the lighting of the target entity into account. Use &amp;quot;isEntityHidden&amp;quot; as a script event with a threshold. The constant threshold value for useLighting is defined within the SDK in game/entity.h.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSeeExt&#039;&#039;&#039;(entity ent, float b_useFOV, float b_useLighting); ====&lt;br /&gt;
&lt;br /&gt;
:This is an alternate version of canSee that can optionally choose to use field of vision and lighting calculations.&lt;br /&gt;
::&#039;&#039;b_useFOV&#039;&#039;: If 0 the entity will be visible even if the AI&#039;s back is turned to it&lt;br /&gt;
::&#039;&#039;b_useLighting&#039;&#039;: If b_useLighting is 0 the entity will be visible in complete darkness. If it is 1, the entity will only be visible if there is light shining on it, but the slightest light is enought. Use &amp;quot;isEntityHidden&amp;quot; as a script event with a threshold instead.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSeePositionExt&#039;&#039;&#039;(vector position, float b_useFOV, float b_useLighting); ====&lt;br /&gt;
&lt;br /&gt;
:This is an alternate version of canSeeExt that tests a location rather than an entity. Note that any actor at the position may make it not seeable from a distance.&lt;br /&gt;
::&#039;&#039;b_useFOV&#039;&#039;: If 0 the entity will be visible even if the AI&#039;s back is turned to it&lt;br /&gt;
::&#039;&#039;b_useLighting&#039;&#039;: If 0 the entity will be visible in complete darkness&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canWater&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmVine&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;ceil&#039;&#039;&#039;(float x); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the smallest integer that is greater than or equal to the given value.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeEntityRelation&#039;&#039;&#039;(entity ent, float relationChange); ====&lt;br /&gt;
&lt;br /&gt;
:This changes the current relation to an entity by adding the new amount.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeInvIcon&#039;&#039;&#039;(string name, string category, string icon); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the inventory icon of the given item in the given category to &amp;lt;icon&amp;gt;.&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: name of the item&lt;br /&gt;
::&#039;&#039;category&#039;&#039;: the item&#039;s category&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeInvItemCount&#039;&#039;&#039;(string name, string category, float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Decreases the inventory item stack count by amount. The item is addressed using the name and category of the item. These are usually defined on the inventory item entity (&amp;quot;inv_name&amp;quot;, &amp;quot;inv_category&amp;quot;)  Amount can be both negative and positive.&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: name of the item&lt;br /&gt;
::&#039;&#039;category&#039;&#039;: the item&#039;s category&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeInvLightgemModifier&#039;&#039;&#039;(string name, string category, float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the lightgem modifier value of the given item. Valid arguments are between 0 and 32 (which is the maximum lightgem value).&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: name of the item&lt;br /&gt;
::&#039;&#039;category&#039;&#039;: the item&#039;s category&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;changeLootAmount&#039;&#039;&#039;(float type, float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Changes the loot amount of the given Type (e.g. GOODS) by &amp;lt;amount&amp;gt;.  The mission statisic for loot found gets changed too.  The new value of the changed type is returned (e.g. the new GOODS value if this has been changed).  Note: The LOOT_TOTAL type can&#039;t be changed and 0 is returned.&lt;br /&gt;
::&#039;&#039;type&#039;&#039;: one of: LOOT_GOLD, LOOT_GOODS, LOOT_JEWELRY&lt;br /&gt;
::&#039;&#039;amount&#039;&#039;: can be negative&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeWeaponName&#039;&#039;&#039;(string weaponName, string displayName); ====&lt;br /&gt;
&lt;br /&gt;
:Changes the display name of the given weapon item to something different. Pass an empty string to reset the display name to the definition as found in the weaponDef.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeWeaponProjectile&#039;&#039;&#039;(string weaponName, string projectileDefName); ====&lt;br /&gt;
&lt;br /&gt;
:Changes the projectile entityDef name of the given weapon (e.g. &amp;quot;broadhead&amp;quot;) to the specified entityDef (e.g. &amp;quot;atdm:projectile_broadhead&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;chargeAttack&#039;&#039;&#039;(string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;checkAAS&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;checkAbsence&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:description missing&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;checkAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Ensures that the animation exists and causes an error if it doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;chooseAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Chooses a random anim and returns the name. Useful for doing move tests on anims.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearActiveInventoryMap&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clear the active inventory map entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearActiveInventoryMapEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clear the active inventory map entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearAllJoints&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Removes any custom transforms on all joints.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimatedEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearBurn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearController&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Need separate clearController because scripting doesn&#039;t like passing in $null_entity? (greebo: one could remove this function and set the argument type of setController to &#039;E&#039;.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CAIVehicle&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clears the enemy entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearFlyOffset&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the preferred height relative to the player&#039;s view height to fly at to the value set in the def file.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearJoint&#039;&#039;&#039;(float jointnum); ====&lt;br /&gt;
&lt;br /&gt;
:Removes any custom transforms on the specified joint.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimatedEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearMouseDeadTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearPersistantArgs&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clears data that persists between maps.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearSignal&#039;&#039;&#039;(float signalNum); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the callback function on the specified signal.&lt;br /&gt;
::&#039;&#039;signalNum&#039;&#039;: signal number&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearSignalThread&#039;&#039;&#039;(float signalNum, entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Clears the script callback function set for when the given signal is raised on the given entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearWatered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmVine&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;clipSize&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Close&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Closes the frobmover, regardless of its previous state. Mover must be open, otherwise nothing happens.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;closePortal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Closes the renderer portal associated with this mover.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;, &#039;&#039;idMover_Binary&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;closestEnemyToPoint&#039;&#039;&#039;(vector point); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the enemy closest to the given location.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;closestReachableEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Used for determining tactile alert targets&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;closestReachableEnemyOfEntity&#039;&#039;&#039;(entity team_mate); ====&lt;br /&gt;
&lt;br /&gt;
:Finds another character&#039;s closest reachable enemy&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;copyBind&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:copy bind information of other to this entity (i.e., bind this entity to the same entity that other is bound to)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;copySpawnArgs&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:copies the spawn args from an entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;cos&#039;&#039;&#039;(float degrees); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the cosine of the given angle in degrees.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;createMissile&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:returns projectile created&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;createMissileFromDef&#039;&#039;&#039;(string defName, string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;createOverlay&#039;&#039;&#039;(string guiFile, float layer); ====&lt;br /&gt;
&lt;br /&gt;
:Creates a GUI overlay. (must be used on the player)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;createProjectile&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;CreateTimer&#039;&#039;&#039;(float stimId, float hour, float minutes, float seconds, float milliseconds); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;CrossProduct&#039;&#039;&#039;(vector vec1, vector vec2); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the cross product of the two vectors.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;cullAll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cull (remove from world) all entities.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;Seed&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;customDeath&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;damage&#039;&#039;&#039;(entity inflictor, entity attacker, vector dir, string damageDefName, float damageScale); ====&lt;br /&gt;
&lt;br /&gt;
:Deals damage to this entity (gets translated into the idEntity::Damage() method within the SDK).&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: the entity causing the damage (maybe a projectile)&lt;br /&gt;
::&#039;&#039;attacker&#039;&#039;: the &amp;quot;parent&amp;quot; entity of the inflictor, the one that is responsible for the inflictor (can be the same)&lt;br /&gt;
::&#039;&#039;dir&#039;&#039;: the direction the attack is coming from.&lt;br /&gt;
::&#039;&#039;damageDefName&#039;&#039;: the name of the damage entityDef to know what damage is being dealt to &amp;lt;self&amp;gt; (e.g. &amp;quot;damage_lava&amp;quot;)&lt;br /&gt;
::&#039;&#039;damageScale&#039;&#039;: the scale of the damage (pass 1.0 as default, this should be ok).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dampenSound&#039;&#039;&#039;(float dampen); ====&lt;br /&gt;
&lt;br /&gt;
:Toggle whether the shattering sound is dampened on the window, e.g., when covered by moss.&lt;br /&gt;
::&#039;&#039;dampen&#039;&#039;: 1 = dampened, 0 = not dampened&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idBrittleFracture&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;deathMenu&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debug_tdm_material&#039;&#039;&#039;(string file); ====&lt;br /&gt;
&lt;br /&gt;
:For temporary debuging purposes only. Should be removed eventually.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugArrow&#039;&#039;&#039;(vector color, vector start, vector end, float size, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugBounds&#039;&#039;&#039;(vector color, vector mins, vector maxs, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugCircle&#039;&#039;&#039;(vector color, vector origin, vector dir, float radius, float numSteps, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugLine&#039;&#039;&#039;(vector color, vector start, vector end, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;decelSound&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound to be played when the mover decelerates.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;decelTime&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the deceleration time. Set this deceleration time before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;decelTo&#039;&#039;&#039;(float speed, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a deceleration to the given speed over the given time in seconds.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;destroyOverlay&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Destroys a GUI overlay. (must be used on the player)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;directDamage&#039;&#039;&#039;(entity damageTarget, string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;Seed&#039;&#039;, &#039;&#039;idMover_Binary&#039;&#039;, &#039;&#039;idTrigger&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableAFPush&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableAnimchannel&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Used to disable a certain animchannel (for example if the ai is dead)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableClip&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableEyeFocus&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables eye focus.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableGravity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;DisableLegIK&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:disables leg IK&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disablePain&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables pain animations.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableSplineAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables aligning the mover with the spline direction.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;DisableWalkIK&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:disables walk IK&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Lowers and disables the player weapon.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;distanceTo&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the distance of this entity to another entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;distanceToPoint&#039;&#039;&#039;(vector point); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the distance of this entity to a point.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;DotProduct&#039;&#039;&#039;(vector vec1, vector vec2); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the dot product of the two vectors.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;drawText&#039;&#039;&#039;(string text, vector origin, float scale, vector color, float align, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:text drawing for debugging. lifetime of 0 == 1 frame.&lt;br /&gt;
::&#039;&#039;align&#039;&#039;: 0 = left, 1 = center, 2 = right&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dropAttachment&#039;&#039;&#039;(string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Drop the attachment for the given attachment name.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dropAttachmentInd&#039;&#039;&#039;(float index); ====&lt;br /&gt;
&lt;br /&gt;
:Drop the attachment for the given index.&lt;br /&gt;
::&#039;&#039;index&#039;&#039;: starts at 0&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dropTorch&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ejectBrass&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;emitParticle&#039;&#039;&#039;(string particle, float startTime, float diversity, vector origin, vector angle); ====&lt;br /&gt;
&lt;br /&gt;
:Start a particle effect in the world without using an entity emitter. Will emit one quad per particle stage when first called with sys.getTime() as the start time. Designed to be called once per frame with the same startTime each call to achieve a normal particle effect, or on demand with sys.getTime() as the startTime for finer grained control, 1 quad at a time. Returns True (1) if there are more particles to be emitted from the stage, False (0) if the stage has released all its quads.&lt;br /&gt;
::&#039;&#039;particle&#039;&#039;: String: name of particle effect.&lt;br /&gt;
::&#039;&#039;startTime&#039;&#039;: Game seconds since map start: use sys.getTime() for the first call unless you want to back-date the particle so that it starts part way through its cycle.&lt;br /&gt;
::&#039;&#039;diversity&#039;&#039;: Randomizer value between 0 and 1. All particles with the same diversity will have the same path and rotation. Use sys.random(1) for a random path.&lt;br /&gt;
::&#039;&#039;origin&#039;&#039;: Origin of the particle effect.&lt;br /&gt;
::&#039;&#039;angle&#039;&#039;: Axis for the particle effect. Use $&amp;lt;entityname&amp;gt;.getAngles() to align the particle to an entity. use &#039;0 0 0&#039; for an upright (world-aligned) particle effect.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;emitterAddModel&#039;&#039;&#039;(string modelName, vector modelOffset); ====&lt;br /&gt;
&lt;br /&gt;
:Adds a new particle (or regular, if you wish) model to the emitter, located at modelOffset units away from the emitter&#039;s origin.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idFuncEmitter&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;emitterGetNumModels&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of models/particles this emitter has. Always &amp;gt;= 1.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idFuncEmitter&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;emptyHand&#039;&#039;&#039;(string hand); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;Seed&#039;&#039;, &#039;&#039;idMover_Binary&#039;&#039;, &#039;&#039;idTrigger&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableAFPush&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableAnim&#039;&#039;&#039;(float channel, float blendFrames); ====&lt;br /&gt;
&lt;br /&gt;
:Enables animation on the given channel.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableClip&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableDamage&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:enable/disable damage&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMoveable&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableEyeFocus&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables eye focus.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableGravity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;EnableLegIK&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:enables leg IK&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enablePain&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables pain animations.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableSplineAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables aligning the mover with the spline direction.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;EnableWalkIK&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:enables walk IK&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables the player weapon.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;endState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Ends the current state with the given name, returns TRUE if more than one state is remaining.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;endZoom&#039;&#039;&#039;(float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Starts the zoom out event, which performs a gradual transition back to the default FOV. May be called during a transition as well to intercept a pending zoom in transition.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: duration of the transition in msec&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyInCombatCone&#039;&#039;&#039;(entity combatNode, float use_current_enemy_location); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyPositionValid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyRange&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyRange2D&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;entityInAttackCone&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;error&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Issues an error.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;exitTeleporter&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;extinguishLights&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Extinguishes all lights (i.e. the &amp;lt;self&amp;gt; entity plus all bound lights)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;faceEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;faceEntity&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;facingIdeal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeIn&#039;&#039;&#039;(vector color, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades towards the given color over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeInLight&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the light on over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeOut&#039;&#039;&#039;(vector color, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades from the given color over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeOutLight&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the light out over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeSound&#039;&#039;&#039;(float channel, float newLevel, float fadeTime); ====&lt;br /&gt;
&lt;br /&gt;
:Fades the sound on this entity to a new level over a period of time.  Use SND_CHANNEL_ANY for all currently playing sounds.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeTo&#039;&#039;&#039;(vector color, float alpha, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades to the given color up to the given alpha over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeToLight&#039;&#039;&#039;(vector color, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades the light to the given color over a given time.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findActorsInBounds&#039;&#039;&#039;(vector mins, vector maxs); ====&lt;br /&gt;
&lt;br /&gt;
:Returns an entity within the bounds specified&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findEnemy&#039;&#039;&#039;(float onlyInFov); ====&lt;br /&gt;
&lt;br /&gt;
:Finds enemy player in PVS&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findEnemyAI&#039;&#039;&#039;(float onlyInFov); ====&lt;br /&gt;
&lt;br /&gt;
:Finds enemy monster in PVS&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findEnemyInCombatNodes&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Finds enemy player in attack cones&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findFriendlyAI&#039;&#039;&#039;(float team); ====&lt;br /&gt;
&lt;br /&gt;
:Use this to find a visible AI friendly to ourselves. It basically iterates over all active entities in the map and looks for friendly actors. The pythagorean distance is taken to evaluate the distance.  Don&#039;t call this every frame, this might get expensive in larger maps. Returns the nearest visible actor entity or the $null_entity, if none was found.&lt;br /&gt;
::&#039;&#039;team&#039;&#039;: used to constrain the search to a given team. Set this to -1 to let the code ignore this argument&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;finishAction&#039;&#039;&#039;(string action); ====&lt;br /&gt;
&lt;br /&gt;
:Finishes the given wait action.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;finishChannelAction&#039;&#039;&#039;(float channel, string animname); ====&lt;br /&gt;
&lt;br /&gt;
:Overloaded finishAction function for setting the waitstate on each channel separately&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;fireMissileAtTarget&#039;&#039;&#039;(string jointname, string targetname); ====&lt;br /&gt;
&lt;br /&gt;
:Launches a missile at entity specified by &#039;attack_target&#039;.  returns projectile fired&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;firstPerson&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns view control to the player entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;flashlight&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;flee&#039;&#039;&#039;(entity entToFleeFrom, float algorithm, float distanceOption); ====&lt;br /&gt;
&lt;br /&gt;
:Flee from the given entity. Pass the escape point lookup algorithm (e.g. EP_FIND_GUARDED) and the distanceOption (e.g. EP_DIST_NEAREST) to specify how the best escape point can be found. Refer to the tdm_defs.script file to see all the constants.  When algorithm is set to EP_FIND_AAS_AREA_FAR_FROM_THREAT, the distanceOption is interpreted as minimum threat distance. Returns FALSE if no escape point could be found.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;floor&#039;&#039;&#039;(float x); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the largest integer that is less than or equal to the given value.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;footstep&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idAnimated&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;foundBody&#039;&#039;&#039;(entity body); ====&lt;br /&gt;
&lt;br /&gt;
:Objective callback for when an AI finds a body.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;frob&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Frobs the entity (i.e. simulates a frob action performed by the player). Returns TRUE if the entity is frobable, FALSE otherwise.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;frobHilight&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:ishtvan: Tries to make the entity frobhilight or not&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;frobRidable&#039;&#039;&#039;(entity playerController); ====&lt;br /&gt;
&lt;br /&gt;
:Called when a player directly mounts or dismounts a ridable AI.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CAIVehicle&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Gas_Knockout&#039;&#039;&#039;(entity inflictor); ====&lt;br /&gt;
&lt;br /&gt;
:AI knockout&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: the entity causing the knockout, can be the $null_entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getActualStruckEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAcuity&#039;&#039;&#039;(string type); ====&lt;br /&gt;
&lt;br /&gt;
:ai generalized alerts&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAlertActor&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the actor that alerted the AI in this frame.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAlertLevelOfOtherAI&#039;&#039;&#039;(entity otherEntity); ====&lt;br /&gt;
&lt;br /&gt;
:This event gets the alert number of another AI (AI_AlertLevel variable value) Returns the alert number of the other AI, 0.0 if its not an AI or is NULL&lt;br /&gt;
::&#039;&#039;otherEntity&#039;&#039;: the other AI entity who&#039;s alert number is being queried&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current orientation of this entity (relative to bind parent if any).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAngularVelocity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current angular velocity of this entity. The angular velocity of a physics object is a vector that passes through the center of mass. The direction of this vector defines the axis of rotation and the magnitude defines the rate of rotation about the axis in radians per second.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAngularVelocityB&#039;&#039;&#039;(float id); ====&lt;br /&gt;
&lt;br /&gt;
:Get the angular velocitiy of a particular body Returns (0,0,0) if the body ID is invalid.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Base&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getAnimState&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the current animation state script function used for the given channel.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAttachment&#039;&#039;&#039;(string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Get the attached entity with the given attachment name Will be NULL if the name is invalid or if the entity no longer exists&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAttachmentInd&#039;&#039;&#039;(float index); ====&lt;br /&gt;
&lt;br /&gt;
:Get the attached entity at the given index. Will be NULL if the index is invalid or the entity no longer exists&lt;br /&gt;
::&#039;&#039;index&#039;&#039;: starts at 0&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAttacker&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the attacking entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAttackFlag&#039;&#039;&#039;(float combatType); ====&lt;br /&gt;
&lt;br /&gt;
:Returns 1 if the given attack flag is activated.&lt;br /&gt;
::&#039;&#039;combatType&#039;&#039;: see tdm_defs.script for possible enum values&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAudThresh&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAxialDir&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getBindChild&#039;&#039;&#039;(float ind); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the ind_th bind child of this entity or NULL if index is invalid. NOTE: indices start at zero&lt;br /&gt;
::&#039;&#039;ind&#039;&#039;: child index&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getBindMaster&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity&#039;s bindmaster&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getBlendFrames&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of frames to blend between animations on the given channel.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getBoolKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the boolean value of a specific spawn arg, defaulting to false.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getButtons&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the button state from the current user command.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getCalibratedLightgemValue&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the calibrated light gem value.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getClipMask&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the clipmask of the physics object.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getClosestHiddenTarget&#039;&#039;&#039;(string entity_type); ====&lt;br /&gt;
&lt;br /&gt;
:Finds the closest targeted entity of the specified type.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getColor&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the color of this entity (shader parms Parm0, Parm1, Parm2).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getCombatNode&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getContents&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the contents of the physics object.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvCategory&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the currently highlighted inventory category.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvIcon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the icon of the currently highlighted inventory item.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getCurInvItemEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently highlighted inventory item entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvItemId&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the currently highlighted inventory item (the one defined in &amp;quot;inv_item_id&amp;quot;). Most items will return an empty string, unless the &amp;quot;inv_item_id&amp;quot; is set on purpose.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvItemName&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the currently highlighted inventory item (the one defined in &amp;quot;inv_name&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getCurrentMissionNum&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of the current mission (0-based, the first mission has number 0).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurrentWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns weaponX where X is the number of the weapon the player is currently holding.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getCurrentYaw&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurWeaponName&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the current weapon, as defined by &amp;quot;inv_weapon_name&amp;quot; in the weaponDef.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getcvar&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string for a cvar.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getDifficultyLevel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns 0 (Easy), 1 (Medium) or 2 (Hard), depending on the difficulty level of the current mission.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getDifficultyName&#039;&#039;&#039;(float difficultyLevel); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the (translated) name of the difficulty level passed as the argument.&lt;br /&gt;
::&#039;&#039;difficultyLevel&#039;&#039;: 0 (Easy), 1 (Medium), 2 (Hard)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetDoor&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the associated door entity for this handle.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CFrobDoorHandle&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetDoorhandle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the handle entity of this door. Can return NULL (== $null_entity)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CFrobDoor&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getDragged&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently dragged body. Returns $null_entity if the body is shouldered, the player has nothing in his hands, or he has a non-AF entity in his hands. See also getShouldered(), getGrabbed() and getFrobbed().&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;, &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getEnemyEyePos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getEnemyPos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getEntity&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a reference to the entity with the specified name.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getEntityFlag&#039;&#039;&#039;(string flagName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the value of the specified entity flag.&lt;br /&gt;
::&#039;&#039;flagName&#039;&#039;: Can be one of (case insensitive):	&lt;br /&gt;
:notarget: if true never attack or target this entity 	&lt;br /&gt;
:noknockback: if true no knockback from hits 	&lt;br /&gt;
:takedamage: if true this entity can be damaged 	&lt;br /&gt;
:hidden: if true this entity is not visible 	&lt;br /&gt;
:bindOrientated: if true both the master orientation is used for binding 	&lt;br /&gt;
:solidForTeam: if true this entity is considered solid when a physics team mate pushes entities 	&lt;br /&gt;
:forcePhysicsUpdate: if true always update from the physics whether the object moved or not 	&lt;br /&gt;
:selected: if true the entity is selected for editing 	&lt;br /&gt;
:neverDormant: if true the entity never goes dormant 	&lt;br /&gt;
:isDormant: if true the entity is dormant 	&lt;br /&gt;
:hasAwakened: before a monster has been awakened the first time, use full PVS for dormant instead of area-connected 	&lt;br /&gt;
:invisible: if true this entity cannot be seen 	&lt;br /&gt;
:inaudible: if true this entity cannot be heard &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getEntityKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the entity specified by the spawn arg.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getEyePos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get eye position of the player and the AI&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getFinalAngVel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getFinalVel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getFloatKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the floating point value of a specific spawn arg, defaulting to 0.0f.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getFov&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:This returns the current FOV of the player. You can modify the current FOV with startZoom() and endZoom().&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;GetFractionalPosition&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a fraction between 0.00 (closed) and 1.00 (open).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getFrameTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:returns the length of time between game frames.  this is not related to renderer frame rate.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getFrobbed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently frobhilighted entity. This includes entities the player has in his hands. Sets &amp;quot;frob only used by&amp;quot; mode&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getGrabbed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently entity in the players hands. Returns $null_entity if the player has nothing in his hands Dragging or shouldering a body counts as grabbing it. See also getDragged(), getShouldered(), getFrobbed().&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getGui&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the file currently loaded by a GUI.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getGuiFloat&#039;&#039;&#039;(float handle, string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getGuiInt&#039;&#039;&#039;(float handle, string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getGuiString&#039;&#039;&#039;(float handle, string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getHead&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity used for the character&#039;s head, if it has one.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getHealth&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current health.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getHinderance&#039;&#039;&#039;(string source); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get hinderance from a source.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getIdealWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getImmobilization&#039;&#039;&#039;(string source); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get immobilization from a source. Warning: Not a finalized version. It&#039;s subject to change, so use it at your own risk.)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getIncidenceAngle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getIntKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the integer value of a specific spawn arg, defaulting to 0.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getInventoryOverlay&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the default inventory overlay for the player. All other entities will return an invalid value.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getJointAngle&#039;&#039;&#039;(float jointnum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the angular orientation of the joint in world space.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimatedEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getJointHandle&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:Looks up the number of the specified joint. Returns INVALID_JOINT if the joint is not found.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimatedEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getJointPos&#039;&#039;&#039;(float jointnum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the position of the joint in world space.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimatedEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getJumpVelocity&#039;&#039;&#039;(vector pos, float speed, float max_jump_height); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the value of a specific spawn arg, defaulting to &#039;&#039;.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLightInPVS&#039;&#039;&#039;(float falloff, float scaling); ====&lt;br /&gt;
&lt;br /&gt;
:Computes the sum of all light in the PVS of the entity you call this on, and returns a vector with the sum.&lt;br /&gt;
::&#039;&#039;falloff&#039;&#039;: 0: no falloff with distance  0.5: sqrt(linear) falloff	(dist 100 =&amp;gt; 1/10)  1: linear falloff			(dist 100 =&amp;gt; 1/100)  2: square falloff			(dist 100 =&amp;gt; 1/10000) &lt;br /&gt;
::&#039;&#039;scaling&#039;&#039;: factor to scale the distance, can be used to lower/raise distance factor  after the linear or square scaling has been used good looking values are approx: sqrt(linear): 0.01, linear: 0.1, square 1.0&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getLightLevel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get level (intensity) of a light, &amp;lt;= 0.0 indicates it is off&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLightOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the light origin (independent of its visual model)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getLightParm&#039;&#039;&#039;(float parmNum); ====&lt;br /&gt;
&lt;br /&gt;
:Gets a shader parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLinearVelocity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current linear velocity of this entity. The linear velocity of a physics object is a vector that defines the translation of the center of mass in units per second.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLinearVelocityB&#039;&#039;&#039;(float id); ====&lt;br /&gt;
&lt;br /&gt;
:Get the linear velocitiy of a particular body Returns (0,0,0) if the body ID is invalid.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Base&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getLocation&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the idLocation entity corresponding to the entity&#039;s current location. This was player-specific before, but is now available to all entities.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getLocationPoint&#039;&#039;&#039;(vector point); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the idLocation entity corresponding to the specified point&#039;s location.&lt;br /&gt;
::&#039;&#039;point&#039;&#039;: point whose location to check&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetLock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the associated lock of this handle.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CFrobLockHandle&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getLootAmount&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the amount of loot for the given type (e.g. LOOT_GOODS). Pass LOOT_TOTAL to return the sum of all loot types.&lt;br /&gt;
::&#039;&#039;type&#039;&#039;: one of: LOOT_GOLD, LOOT_GOODS, LOOT_JEWELRY, LOOT_TOTAL&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getMainAmbientLight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity of the main ambient light.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMass&#039;&#039;&#039;(float body); ====&lt;br /&gt;
&lt;br /&gt;
:Gets mass of a body for an entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getMaxs&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the maximum corner of this entity&#039;s bounding box.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeActPhase&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current melee action phase (holding,recovering,etc).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeActState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current melee action state (attacking/defending).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeActType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current melee action type (overhead,thrust,etc.).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeLastActTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the melee type of the last attack to hit this actor. Defaults to MELEETYPE_UNBLOCKABLE if we were not hit before.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeLastHitByType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the game time that the most recent melee action ended (in ms)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeResult&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the result of the last melee action Follows MELEERESULT_* enum defined in tdm_defs.script&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getMins&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the minimum corner of this entity&#039;s bounding box.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMissionStatistic&#039;&#039;&#039;(string statisticName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns current mission statistic.&lt;br /&gt;
::&#039;&#039;statisticName&#039;&#039;: Can be one of (case insensitive): 	gamePlayTime: gameplay time in seconds 	damageDealt: damage dealt to enemies 	damageReceived: damage received by player 	healthReceived: health received by player 	pocketsPicked: pockets picked by player 	foundLoot: loot found by player 	missionLoot: total loot available in mission 	totalTimePlayerSeen: total time the player was seen by enemies in seconds. Updates only when AI lose sight of player 	numberTimesPlayerSeen: number of times player was seen by enemies 	numberTimesAISuspicious: number of times AI was &#039;observant&#039; or &#039;suspicious&#039;. A single AI passing through both alert levels will add 2 to the score. 	numberTimesAISearched: number of times AI was &#039;investigating&#039; or &#039;searching&#039;. A single AI passing through both alert levels will add 2 to the score. 	sightingScore: sighting score (number of times player was seen * weight) 	stealthScore: stealth score (sighting score + alerts * weights) 	killedByPlayer: number of enemies killed by player 	knockedOutByPlayer: number of enemies knocked out by player 	bodiesFound: number of times enemies have spotted a body 	secretsFound: number of secrets found by the player 	secretsTotal: total number of secrets in the mission &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMouseGesture&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the results of the last mouse gesture in enum form. (see the definition for MOUSEDIR_* for which numbers correspond to which directions)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the movement relative to the player&#039;s view angles from the current user command. vector_x = forward, vector_y = right, vector_z = up&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getMoveAnim&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the player-requested movement anim for a player controlled AI vehicle&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CAIVehicle&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMoveSpeed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the movement speed.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMoveTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the movement time.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMoveType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current movetype&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getName&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of this entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getNextEntity&#039;&#039;&#039;(string key, string value, entity lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Discover all entities in the map. Returns $null_entity when no more found.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: Optional string: prefix for spawnarg key match. E.g. &amp;quot;target&amp;quot; will match &amp;quot;target&amp;quot;, &amp;quot;target1&amp;quot; etc.&lt;br /&gt;
::&#039;&#039;value&#039;&#039;: Optional string: spawnarg value to match. Can be used independently of &#039;&#039;key&#039;&#039;. If &#039;&#039;key&#039;&#039; is not set, all spawnargs will be checked for the value.&lt;br /&gt;
::&#039;&#039;lastMatch&#039;&#039;: Last match: search will start after this entity. Use $null_entity or pass an uninitialized entity variable to start a new search.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextHinderance&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get the next hinderance from a source.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextIdleAnim&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:This returns the name of the next idle anim to be played on this AI (used by AnimState scripts).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextImmobilization&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get immobilization from a source. Warning: Not a finalized version. It&#039;s subject to change, so use it at your own risk.)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getNextInvItem&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cycles the standard cursor to the next inventory item. Returns the item entity pointed to after the operation is complete.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextKey&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Searches for the name of a spawn arg that matches the prefix.  For example, passing in &amp;quot;attack_target&amp;quot; matches &amp;quot;attack_target1&amp;quot;, &amp;quot;attack_targetx&amp;quot;, &amp;quot;attack_target_enemy&amp;quot;,  etc. The returned string is the name of the key which can then be passed into functions like getKey() to lookup the value of that spawn arg.  This is useful for when you have multiple values to look up, like when you target multiple objects.  To find the next matching key, pass in the previous result and the next key returned will be the first one that matches after the previous result. Pass in &amp;quot;&amp;quot; to get the first match. Passing in a non-existent key is the same as passing in &amp;quot;&amp;quot;. Returns &amp;quot;&amp;quot; when no  more keys match.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextTurnHinderance&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Get the next hinderance on the view turning from a source&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumAttachments&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Return the number of attachments on an AI. Used to iterate through the attachments if desired.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumBodies&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of bodies in the AF. If the AF physics pointer is NULL, it returns 0.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Base&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumMeleeWeapons&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of melee weapons attached to an actor. This refers to the TDM-style attachments with the spawnarg &#039;is_weapon_melee&#039; set to &#039;1&#039;.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumRangedWeapons&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of ranged weapons attached to an actor. This refers to the TDM-style attachments with the spawnarg &#039;is_weapon_ranged&#039; set to &#039;1&#039;.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getObjectiveComp&#039;&#039;&#039;(float ObjNum, float CompNum); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get the state of custom objective components&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
::&#039;&#039;CompNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getObjectiveState&#039;&#039;&#039;(float ObjNum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current state of the objective with the number ObjNum.  State is one of the following: OBJ_INCOMPLETE = 0, OBJ_COMPLETE = 1, OBJ_INVALID = 2, OBJ_FAILED = 3&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getObjectiveVisible&#039;&#039;&#039;(float ObjNum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current visibility of the objective with the number ObjNum.&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getObservationPosition&#039;&#039;&#039;(vector targetPoint, float visualAcuityZeroToOne); ====&lt;br /&gt;
&lt;br /&gt;
:This event is used to get a position that the AI can move to observe a  given position.  It is useful for looking at hiding spots that can&#039;t be reached, and performing other investigation functions.  Returns a world position from which the observation can take place. Returns the current AI origin if no such point is found.  @sideEffect This uses the AI_DEST_UNREACHABLE flag variable  to indicate if a point was found. It will be true if none was found, false if one was found.&lt;br /&gt;
::&#039;&#039;targetPoint&#039;&#039;: the world position to be observed&lt;br /&gt;
::&#039;&#039;visualAcuityZeroToOne&#039;&#039;: the visual acuity of the AI on a scale of 0.0 to 1.0 where 0.0 is blind and 1.0 is perfect vision.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getObstacle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the obstacle in the character&#039;s path&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current position of this entity (relative to bind parent if any).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getOwner&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the owning entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getPainAnim&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the pain animation.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPersistantFloat&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the floating point value for the given persistent arg&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getPersistantString&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string for the given persistent arg&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getPersistantVector&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the vector for the given persistent arg&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortAISoundLoss&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:AI sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortalHandle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the portal handle.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPortalEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortPlayerSoundLoss&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Player sound loss  scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortSoundLoss&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getPrevInvItem&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cycles the standard cursor to the previous inventory item. Returns the item entity pointed to after the operation is complete.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getPreviousWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns weaponX where X is the number of the weapon the player was previously holding.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getPrime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmVine&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getProjectileState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current state of the projectile. States are defined in tdm_defs.script&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idProjectile&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getProjMass&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getRadius&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the light radius.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getRandomTarget&#039;&#039;&#039;(string entity_type); ====&lt;br /&gt;
&lt;br /&gt;
:Finds a random targeted entity of the specified type.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getReachableEntityPosition&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the position of the entity within the AAS if possible, otherwise just the entity position.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getRelation&#039;&#039;&#039;(float team1, float team2); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getRelationEnt&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetResponseEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity which should take the response. Some entities like AI heads are not responding themselves to stims, but relay it to another entity (i.e. the bodies they&#039;re attached to).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getSecurityCameraState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the security camera&#039;s state. 1 = unalerted, 2 = suspicious, 3 = fully alerted, 4 = inactive, 5 = destroyed.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getShader&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the shader name used by the light.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getShaderParm&#039;&#039;&#039;(float parm); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the value of the specified shader parm.&lt;br /&gt;
::&#039;&#039;parm&#039;&#039;: shader parm index&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getShouldered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently shouldered body, otherwise $null_entity. See also getDragged(), getGrabbed() and getFrobbed().&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getSize&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the size of this entity&#039;s bounding box.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getSndDir&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:ai hearing of sound &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getSoundLoss&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the sound loss value (dB).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPortalEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getSoundVolume&#039;&#039;&#039;(string soundName); ====&lt;br /&gt;
&lt;br /&gt;
:Get the volume of the sound to play.&lt;br /&gt;
::&#039;&#039;soundName&#039;&#039;: the name of the sound&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getSpotLight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the spotlight used by the camera. Returns null_entity if none is used.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current state.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getStruckEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getSurfNormal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getSurfType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTactEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:ai sense of touch&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTalkTarget&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity (player) trying to talk to the character&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTarget&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the requested target entity.&lt;br /&gt;
::&#039;&#039;num&#039;&#039;: The target number. Starts at 0.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTDMVersion&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the current TDM version as integer. The value will be 108 for v1.08, 109 for v1.09 and 200 for v2.00 etc.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTeam&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current team number.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTicsPerSecond&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:returns the number of game frames per second.  this is not related to renderer frame rate.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current game time in seconds.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getTraceBody&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of the body part of the entity which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getTraceEndPos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the position the trace stopped due to a collision with solid geometry during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTraceEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a reference to the entity which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTraceFraction&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the fraction of movement completed during the last call to trace or tracePoint.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getTraceJoint&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of the skeletal joint closest to the location on the entity which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getTraceNormal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the normal of the hit plane during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getTraceSurfType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the type of the surface (i.e. metal, snow) which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTurnDelta&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getTurnHinderance&#039;&#039;&#039;(string source); ====&lt;br /&gt;
&lt;br /&gt;
:* Get the hinderance on the view turning from a source&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTurnRate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the rate the character turns.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVectorKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the vector value of a specific spawn arg, defaulting to &#039;0 0 0&#039;.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVectorToIdealOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the vector from where the AI is to where he ideally should be&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getViewAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the player view angles.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVinePlantLoc&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event important to the growing of vines from vine arrows&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVinePlantNormal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event important to the growing of vines from vine arrows&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVisDir&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns position of the last visual alert.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getWeaponEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity for the player&#039;s weapon&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getWorldModel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity that controls the world model&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getWorldOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current world-space position of this entity (regardless of any bind parent).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;gib&#039;&#039;&#039;(string damageDefName); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Gibbable&#039;&#039;, &#039;&#039;idMoveableItem&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;giveHealthPool&#039;&#039;&#039;(float amount); ====&lt;br /&gt;
&lt;br /&gt;
:This increases/decreases the healthpool of the player by the given amount. The healthpool is gradually decreased over time, healing (damaging?) the player.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;handleMissionEvent&#039;&#039;&#039;(entity objEnt, float eventType, string argument); ====&lt;br /&gt;
&lt;br /&gt;
:Generic interface for passing on mission events from scripts to the SDK. Available since TDM 1.02&lt;br /&gt;
::&#039;&#039;objEnt&#039;&#039;: the entity that triggered this event (e.g. a readable)&lt;br /&gt;
::&#039;&#039;eventType&#039;&#039;: a numeric identifier (enumerated both in MissionData.h and tdm_defs.script) specifying the type of event&lt;br /&gt;
::&#039;&#039;argument&#039;&#039;: an optional string parameter, eventtype-specific.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true when an entity has a specific animation.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasEnemies&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the actor has one or more enemies.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasFunction&#039;&#039;&#039;(string functionName); ====&lt;br /&gt;
&lt;br /&gt;
:checks if an entity&#039;s script object has a specific function&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasSeenEvidence&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:This returns 1 when the AI has seen evidence of intruders before (an enemy, a body...)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;heal&#039;&#039;&#039;(string healDefName, float healScale); ====&lt;br /&gt;
&lt;br /&gt;
:Heals the entity this is called on using the specified healing entityDef. Returns 1 if the entity could be healed, 0 otherwise (if the entity is already at full health, for ex.)&lt;br /&gt;
::&#039;&#039;healDefName&#039;&#039;: the name of the entityDef containing the healing information (e.g. &amp;quot;heal_potion&amp;quot;)&lt;br /&gt;
::&#039;&#039;healScale&#039;&#039;: the scaling value to be applied to the healAmount found in the healEntityDef&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;heldEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity currently being held, or $null_entity if the player&#039;s hands are empty.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;hide&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Makes this entity invisible.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;hideByLODBias&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;holdEntity&#039;&#039;&#039;(entity entity); ====&lt;br /&gt;
&lt;br /&gt;
:Forces the player to hold an entity (e.g. puts it into the grabber). Drops whatever is in the player&#039;s hands if $null_entity is passed to it. Returns 1 if successful, 0 if not.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;idleAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Plays the given idle animation on the given channel.  Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ignoreDamage&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:The AI can no longer take damage.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;inAnimState&#039;&#039;&#039;(float channel, string stateFunc); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given animation state script function is currently used for the given channel.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;influenceActive&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Checks if an influence is active&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;inPVS&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns non-zero if this entity is in PVS. For lights, it will return true when the light&#039;s bounding box is in PVS, even though the light may not actually be in PVS. (an unmoved shadowcasting light may not be visible to PVS areas its bounding box intersects with)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isAtRest&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if object is not moving&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMoveable&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isDroppable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get whether an item may be dropped from the inventory&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isEnemy&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given entity is an enemy.&lt;br /&gt;
::&#039;&#039;ent&#039;&#039;: The entity in question&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isEntityHidden&#039;&#039;&#039;(entity ent, float f_sightThreshold); ====&lt;br /&gt;
&lt;br /&gt;
:This is an alternate version of canSee, using FOV, distance and lighting.&lt;br /&gt;
::&#039;&#039;f_sightThreshold&#039;&#039;: goes from 0.0 (entity visible in complete darkness) to 1.0 (entity only visible if completely lit up).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isFriend&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given entity is a friend.&lt;br /&gt;
::&#039;&#039;ent&#039;&#039;: The entity in question&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isFrobable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get whether the entity is frobable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isHidden&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:checks if the entity&#039;s model is invisible.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isHilighted&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if entity is currently frobhilighted.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isInLiquid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns 1 if the entity is in or touching a liquid.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isInvisible&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isLeaning&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get whether the player is leaning&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isLight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;IsLocked&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true (nonzero) if the mover is currently locked.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isMoving&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if a mover is moving&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isNeutral&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given entity is neutral.&lt;br /&gt;
::&#039;&#039;ent&#039;&#039;: The entity in question&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;IsOpen&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true (nonzero) if the mover is open, which is basically the same as &amp;quot;not closed&amp;quot;. A mover is considered closed when it is at its close position.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;IsPickable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true (nonzero) if this frobmover is pickable.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isPlayerResponsibleForDeath&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the player was responsible for the AI&#039;s caller&#039;s death.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isRotating&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if a mover is rotating&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isType&#039;&#039;&#039;(string spawnclass); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if this entity is of the given type.&lt;br /&gt;
::&#039;&#039;spawnclass&#039;&#039;: spawn class name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isVineFriendly&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Vine-arrow event&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;kickObstacles&#039;&#039;&#039;(entity kickEnt, float force); ====&lt;br /&gt;
&lt;br /&gt;
:Kicks any obstacle in the character&#039;s path.&lt;br /&gt;
::&#039;&#039;kickEnt&#039;&#039;: pass in $null_entity if you don&#039;t have a specific entity to kick&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;kill&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Kills the monster.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;killthread&#039;&#039;&#039;(string threadName); ====&lt;br /&gt;
&lt;br /&gt;
:Kills all threads with the specified name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;KO_Knockout&#039;&#039;&#039;(entity inflictor); ====&lt;br /&gt;
&lt;br /&gt;
:AI knockout&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: is the entity causing the knockout, can be the $null_entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;launch&#039;&#039;&#039;(vector start, vector dir, vector velocity); ====&lt;br /&gt;
&lt;br /&gt;
:Launches the projectile from &amp;lt;start&amp;gt; in direction &amp;lt;dir&amp;gt; with the given &amp;lt;velocity&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idProjectile&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;launchMissile&#039;&#039;&#039;(vector origin, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the projectile entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;launchMissiles&#039;&#039;&#039;(string projectilename, string sound, string launchbone, string targetbone, float numshots, float framedelay); ====&lt;br /&gt;
&lt;br /&gt;
:Launches a projectile.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimated&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;launchProjectiles&#039;&#039;&#039;(float num_projectiles, float spread, float fuseOffset, float launchPower, float dmgPower); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;leftFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to left foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idAnimated&#039;&#039;, &#039;&#039;idTestModel&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;loadExternalData&#039;&#039;&#039;(string declFile, string prefix); ====&lt;br /&gt;
&lt;br /&gt;
:Load an external xdata declaration.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;locateEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Updates the last known position of the enemy independent from whether or not the enemy is visible.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Lock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Locks the mover. Calls to Open() will not succeed after this call. &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;log&#039;&#039;&#039;(float x); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the log of the given argument.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;logString&#039;&#039;&#039;(float logClass, float logType, string output); ====&lt;br /&gt;
&lt;br /&gt;
:This is the script counterpart to DM_LOG&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAt&#039;&#039;&#039;(entity focusEntity, float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Aims the character&#039;s eyes and head toward an entity for a period of time.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAtAngles&#039;&#039;&#039;(float yawAngleClockwise, float pitchAngleUp, float rollAngle, float durationInSeconds); ====&lt;br /&gt;
&lt;br /&gt;
:A look at event that just looks at a set of angles relative  to the current body facing of the AI. This method is just like the vanilla Doom3 lookAt and lookAtEnemy methods, but it looks at the specified angles from the current body facing of the AI.&lt;br /&gt;
::&#039;&#039;yawAngleClockwise&#039;&#039;: Negative angles are to the left of  the AIs body and positive angles are to the right.&lt;br /&gt;
::&#039;&#039;pitchAngleUp&#039;&#039;: Negative values are down and positive values are up  where down and up are defined by the body axis.&lt;br /&gt;
::&#039;&#039;rollAngle&#039;&#039;: This is currently unused and does nothing.&lt;br /&gt;
::&#039;&#039;durationInSeconds&#039;&#039;: The duration to look in seconds.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAtEnemy&#039;&#039;&#039;(float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Aims the character&#039;s eyes and head toward the current enemy for a period of time.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAtPosition&#039;&#039;&#039;(vector lookAtWorldPosition, float durationInSeconds); ====&lt;br /&gt;
&lt;br /&gt;
:This method is just like the vanilla Doom3 lookAt and lookAtEnemy methods, but instead of looking at an entity, it looks at a position in worldspace.  That is, it turns the head of the AI to look at the position.&lt;br /&gt;
::&#039;&#039;lookAtWorldPosition&#039;&#039;: position in space to look at&lt;br /&gt;
::&#039;&#039;durationInSeconds&#039;&#039;: duration to look in seconds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;lookupReplacementAnim&#039;&#039;&#039;(string anim); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current replacement animation for &amp;quot;anim&amp;quot;. Returns empty if no replacement anim &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;markUsed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the combat node if &amp;quot;use_once&amp;quot; is set on the entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idCombatNode&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;melee&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeActionFinished&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Called when the animation for the melee action has finished.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeActionHeld&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Called when the melee action reaches the &amp;quot;hold&amp;quot; point.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeActionReleased&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Called when the melee action is released from the hold point.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeAttackStarted&#039;&#039;&#039;(float attType); ====&lt;br /&gt;
&lt;br /&gt;
:Registers the start of a given melee attack Intended to be called from a script that also starts the animation&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;meleeAttackToJoint&#039;&#039;&#039;(string joint, string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;meleeBestParry&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the melee type integer of the best parry given the enemy attacks at the time If no attacking enemy is found, returns default of MELEETYPE_RL Follows MELEETYPE_* enum defined in tdm_defs.script&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;meleeNameForNum&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:Converts a melee type integer to a string name suffix Used for finding the right animation for a given type, etc. Possible names are, in order: &amp;quot;Over, LR, RL, Thrust, General&amp;quot; Where general blocks all attacks types except unblockable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeParryStarted&#039;&#039;&#039;(float parType); ====&lt;br /&gt;
&lt;br /&gt;
:Registers the start of a given melee parry Intended to be called from a script that also starts the animation&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;missionFailed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;missionSuccess&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;mouseGestureFinished&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the player is not currently doing a mouse gesture.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;move&#039;&#039;&#039;(float angle, float distance); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation with the given distance in the given yaw direction. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveOutOfRange&#039;&#039;&#039;(entity ent, float range); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveSound&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound to be played when the moving.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;moveStatus&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveTo&#039;&#039;&#039;(entity targetEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation to the position of an entity. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToAttackPosition&#039;&#039;&#039;(entity ent, string attack_anim); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToCover&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToCoverFrom&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToEnemyHeight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToEntity&#039;&#039;&#039;(entity destination); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToPos&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation to an absolute position. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToPosition&#039;&#039;&#039;(vector position); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;music&#039;&#039;&#039;(string shaderName); ====&lt;br /&gt;
&lt;br /&gt;
:Starts playing background music.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;muzzleFlash&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;netEndReload&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;netReload&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;nextEnemy&#039;&#039;&#039;(entity lastEnemy); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the next enemy the actor has acquired.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;nextWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;noShadows&#039;&#039;&#039;(float noShadows); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the noShadow property on the entity to true/false, turning shadowcasting on or off for this entity.&lt;br /&gt;
::&#039;&#039;noShadows&#039;&#039;: 1 = disable shadows, 0 = enable shadows&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;noShadowsDelayed&#039;&#039;&#039;(float noShadows, float delay); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the noShadow property on the entity to true/false after delay in ms, turning shadows cast by this entity on or off.&lt;br /&gt;
::&#039;&#039;noShadows&#039;&#039;: 1 = disable shadows, 0 = enable shadows&lt;br /&gt;
::&#039;&#039;delay&#039;&#039;: delay in ms&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;numBindChildren&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of bound entities lower down in the bind chain than this entity, but be sure to give it the topmost bindmaster&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;numSmokeEmitters&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the # of emitters defined by &#039;smokeParticleSystem&#039; in the entitydef&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;numTargets&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of entities this entity has targeted.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;objectiveCompUnlatch&#039;&#039;&#039;(float ObjNum, float CompNum); ====&lt;br /&gt;
&lt;br /&gt;
:Unlatch an irreversible objective component that has latched into a state&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;objectiveUnlatch&#039;&#039;&#039;(float ObjNum); ====&lt;br /&gt;
&lt;br /&gt;
:Unlatch an irreversible objective that has latched into a state&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Off&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity off.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;, &#039;&#039;idSecurityCamera&#039;&#039;, &#039;&#039;idSound&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;offsetRelation&#039;&#039;&#039;(float team1, float team2, float val); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;On&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity on.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;, &#039;&#039;idSecurityCamera&#039;&#039;, &#039;&#039;idSound&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;onSignal&#039;&#039;&#039;(float signalNum, entity ent, string functionName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a script callback function for when the given signal is raised on the given entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Open&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Opens the frobmover, regardless of its previous state. The mover will not move when it&#039;s locked. &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;, &#039;&#039;CFrobLock&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;OpenDoor&#039;&#039;&#039;(float master); ====&lt;br /&gt;
&lt;br /&gt;
:The OpenDoor method is necessary to give the FrobDoorHandles a  &amp;quot;low level&amp;quot; open routine. The CFrobDoor::Open() call is re-routed to the FrobDoorHandle::Tap() method, so there must be a way to actually let the door open. Which is what this method does.  Note: Shouldn&#039;t be called directly by scripters, call handle-&amp;gt;Tap() instead. Unless you know what you&#039;re doing.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CFrobDoor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;openPortal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Opens the renderer portal associated with this mover.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;, &#039;&#039;idMover_Binary&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Operate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Call this to operate this entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CFrobButton&#039;&#039;, &#039;&#039;CFrobLever&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;overrideAnim&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the animation currently playing on the given channel and syncs the animation with the animation of the nearest animating channel.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pause&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Pauses the current thread.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pauseAnim&#039;&#039;&#039;(float channel, float bPause); ====&lt;br /&gt;
&lt;br /&gt;
:Pause all animations playing on the given channel. NOTE: Can also be used used by idWeapons&lt;br /&gt;
::&#039;&#039;bPause&#039;&#039;: true = pause, false = unpause&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pauseGame&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Pauses the game. This should only be called for threads that are explicitly maintained by a special SDK method, because ordinary threads won&#039;t get executed during g_stopTime == true. Note: This is used by the objective GUI threads. Note: Must be called on the player entity, not the sys entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;performRelight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Deal with doused lights.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playAndLipSync&#039;&#039;&#039;(string soundName, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Play the given sound, using the given lipsync animation. The lipsync animation should just be a simple non-loopable animation of the mouth opening in a linear fashion. The code will select individual frames from this to construct a simple lipsyncing effect which is in time with the sound.  Returns the length of the played sound in seconds.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Do not use, this is part of TDM&#039;s internal mechanics. Use playCustomAnim() on AI.in scripts instead of this. Plays the given animation on the given channel. Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playCustomAnim&#039;&#039;&#039;(string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Plays the given animation on legs and torso. Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playCycle&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Continuously repeats the given animation on the given channel.  Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;playStartSound&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;pointInLiquid&#039;&#039;&#039;(vector point, entity ignoreEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Checks if a point is in a liquid, returns 1 if this is the case.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;pointIsInBounds&#039;&#039;&#039;(vector point, vector mins, vector maxs); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the point is within the bounds specified.&lt;br /&gt;
::&#039;&#039;point&#039;&#039;: test whether this point is in the bounds&lt;br /&gt;
::&#039;&#039;mins&#039;&#039;: minimal corner of the bounds&lt;br /&gt;
::&#039;&#039;maxs&#039;&#039;: maximal corner of the bounds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;pow&#039;&#039;&#039;(float x, float y); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the power of x to y.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;preBurn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;predictEnemyPos&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Tries to predict the player&#039;s movement based on the AAS and his direction of movement.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;preventPain&#039;&#039;&#039;(float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Prevents any pain animation from being played for the given time in seconds.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: time in seconds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;print&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Prints the given string to the console.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;println&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Prints the given line to the console.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;processBlindStim&#039;&#039;&#039;(entity stimSource, float skipVisibilityCheck); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;processVisualStim&#039;&#039;&#039;(entity stimSource); ====&lt;br /&gt;
&lt;br /&gt;
:Use this call to let the AI react to a visual stim (coming from the source entity).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;projectDecal&#039;&#039;&#039;(vector traceOrigin, vector traceEnd, entity passEntity, string decal, float decalSize, float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Performs a trace from the specified origin and end positions, then projects a decal in that direction.&lt;br /&gt;
::&#039;&#039;traceOrigin&#039;&#039;: Start of the trace.&lt;br /&gt;
::&#039;&#039;traceEnd&#039;&#039;: End of the trace.&lt;br /&gt;
::&#039;&#039;passEntity&#039;&#039;: This entity will be considered non-solid by the trace.&lt;br /&gt;
::&#039;&#039;decal&#039;&#039;: Decal to be projected.&lt;br /&gt;
::&#039;&#039;decalSize&#039;&#039;: Size of the decal quad.&lt;br /&gt;
::&#039;&#039;angle&#039;&#039;: Angle of the decal quad.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;propagateSound&#039;&#039;&#039;(string soundName, float propVolMod, float msgTag); ====&lt;br /&gt;
&lt;br /&gt;
:Generates a propagated sound&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;propSound&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Sound propagation scriptfunctions on all entities propagate a sound directly without playing an audible sound&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;propSoundMod&#039;&#039;&#039;(string name, float volMod); ====&lt;br /&gt;
&lt;br /&gt;
:propagate a sound directly with a volume modifier&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;pushPointIntoAAS&#039;&#039;&#039;(vector post); ====&lt;br /&gt;
&lt;br /&gt;
:Tries to push the point into a valid AAS area&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pushState&#039;&#039;&#039;(string stateName); ====&lt;br /&gt;
&lt;br /&gt;
:Pushes the state with the given name, current one is postponed.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;radiusDamage&#039;&#039;&#039;(vector origin, entity inflictor, entity attacker, entity ignore, string damageDefName, float dmgPower); ====&lt;br /&gt;
&lt;br /&gt;
:damages entities within a radius defined by the damageDef.  inflictor is the entity  causing the damage and can be the same as the attacker (in the case   of projectiles, the projectile is the inflictor, while the attacker is the character  that fired the projectile).&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: the entity causing the damage&lt;br /&gt;
::&#039;&#039;ignore&#039;&#039;: an entity to not cause damage to&lt;br /&gt;
::&#039;&#039;dmgPower&#039;&#039;: scales the damage (for cases where damage is dependent on time)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;radiusDamageFromJoint&#039;&#039;&#039;(string jointname, string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;random&#039;&#039;&#039;(float range); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a random value X where 0 &amp;lt;= X &amp;lt; range.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;randomPath&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;, &#039;&#039;idPathCorner&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;randomTarget&#039;&#039;&#039;(string ignoreName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a random targeted entity. Pass in an entity name to skip that entity.&lt;br /&gt;
::&#039;&#039;ignoreName&#039;&#039;: the name of an entity to ignore&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;rangedThreatTo&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Could this entity threaten the given (target) entity from a distance?&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;readLightgemModifierFromWorldspawn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reAttachToCoords&#039;&#039;&#039;(string attName, string joint, vector offset, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Reattach an existing attachment&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the name of the attachment we want to reattach. &lt;br /&gt;
::&#039;&#039;joint&#039;&#039;: the name of the joint to attach to&lt;br /&gt;
::&#039;&#039;offset&#039;&#039;: the translation offset from joint&lt;br /&gt;
::&#039;&#039;angles&#039;&#039;: a (pitch, yaw, roll) angle vector that defines the rotation  of the attachment relative to the joint&#039;s orientation&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reAttachToPos&#039;&#039;&#039;(string attName, string position); ====&lt;br /&gt;
&lt;br /&gt;
:Reattach an existing attachment to a named attachment position. Example: reAttachToPos( melee_weapon, right_hand_held )&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the name of the attachment we want to reattach.&lt;br /&gt;
::&#039;&#039;position&#039;&#039;: the new position we want to attach it to.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reloadTorchReplacementAnims&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:If actor has a torch, reload the torch&#039;s replacement anims.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;remove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Removes the entity from the game. For AI, use kill() instead.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idClass&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeBinds&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Removes all attached entities from the game&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeInitialSplineAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Subtracts the initial spline angles to maintain the initial orientation of the mover.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Removes a key from an object&#039;s spawnargs, so things like getNextKey() don&#039;t retrieve it.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: the spawnarg to remove&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeReplacementAnim&#039;&#039;&#039;(string anim); ====&lt;br /&gt;
&lt;br /&gt;
:Removes the replacement for the given &amp;quot;anim&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeTarget&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Remove a target from this entity.&lt;br /&gt;
::&#039;&#039;target&#039;&#039;: the entity to remove from the targets&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;replaceInvItem&#039;&#039;&#039;(entity oldItem, entity newItem); ====&lt;br /&gt;
&lt;br /&gt;
:Replaces the entity &amp;lt;oldItem&amp;gt; with &amp;lt;newItem&amp;gt; in the inventory, while keeping &amp;lt;oldItem&amp;gt;&#039;s inventory position intact.  Note: The position guarantee only applies if &amp;lt;oldItem&amp;gt; and newItem  share the same category. If the categories are different, the position of &amp;lt;newItem&amp;gt; is likely to be different than the one of &amp;lt;oldItem&amp;gt;.  Note that &amp;lt;oldItem&amp;gt; will be removed from the inventory.  If &amp;lt;newItem&amp;gt; is the $null_entity, &amp;lt;oldItem&amp;gt; is just removed and no replacement happens.  Returns 1 if the operation was successful, 0 otherwise.&lt;br /&gt;
::&#039;&#039;newItem&#039;&#039;: can be $null_entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResetTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;resetWeaponProjectile&#039;&#039;&#039;(string weaponName); ====&lt;br /&gt;
&lt;br /&gt;
:Reloads the original projectile def name from the weaponDef. Used to revert a change made by the event changeWeaponProjectile().&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;resetZoom&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cancels any pending zoom transitions and resets the FOV to normal.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reskinCollisionModel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:For use after setSkin() on moveables and static models, if the CM needs to be refreshed to update surface properties after a skin change. CM will be regenerated from the original model file with the new skin.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;respawn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Respawn&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idItem&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseAdd&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseAllow&#039;&#039;&#039;(float type, entity responder); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseEnable&#039;&#039;&#039;(float type, float state); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 0 = disabled, 1 = enabled&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseIgnore&#039;&#039;&#039;(float type, entity responder); ====&lt;br /&gt;
&lt;br /&gt;
:This functions must be called on the stim entity. It will add the response to the ignore list, so that subsequent stims, should not trigger the stim anymore.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseRemove&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseSetAction&#039;&#039;&#039;(float type, string action); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseTrigger&#039;&#039;&#039;(entity source, float stimType); ====&lt;br /&gt;
&lt;br /&gt;
:Fires a response on this entity, without a stim (a stand-alone response, so to say)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restartPatrol&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;RestartTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restoreAddedEnts&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Base&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restoreMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restorePosition&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns this entity to the position stored in the &amp;quot;origin&amp;quot; spawn arg. This is the position the entity was spawned in unless the &amp;quot;origin&amp;quot; key is changed. Note that there is no guarantee that the entity won&#039;t be stuck in another entity when moved, so care should be taken to make sure that isn&#039;t possible.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rightFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to right foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idAnimated&#039;&#039;, &#039;&#039;idTestModel&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ropeRemovalCleanup&#039;&#039;&#039;(entity ropeEnt); ====&lt;br /&gt;
&lt;br /&gt;
:Called when rope arrow ropes are removed, removes stale pointers on the player object.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotate&#039;&#039;&#039;(vector angleSpeed); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation with the given angular speed. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateDownTo&#039;&#039;&#039;(float axis, float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation about the given axis by decreasing the current angle towards the given angle. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateOnce&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation towards the current angles plus the given Euler angles. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateTo&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation towards the given Euler angles. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateUpTo&#039;&#039;&#039;(float axis, float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation about the given axis by increasing the current angle towards the given angle. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;saveConDump&#039;&#039;&#039;(string cmd, string cmd); ====&lt;br /&gt;
&lt;br /&gt;
:Saves condump into FM directory; first argument is appended to dump filename, everything before last occurence of second argument is removed&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;saveGame&#039;&#039;&#039;(string filename); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;saveMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;say&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Multiplayer - Print this line on the network&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;scaleVine&#039;&#039;&#039;(float factor); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmVine&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;selectWeapon&#039;&#039;&#039;(string weapon); ====&lt;br /&gt;
&lt;br /&gt;
:Selects the weapon the player is holding.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;sessionCommand&#039;&#039;&#039;(string cmd); ====&lt;br /&gt;
&lt;br /&gt;
:Sends the sessioncommand to the game&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setActiveInventoryMapEnt&#039;&#039;&#039;(entity mapEnt); ====&lt;br /&gt;
&lt;br /&gt;
:Notify the player about a new active map entity. This clears out any previously active maps.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAcuity&#039;&#039;&#039;(string type, float val); ====&lt;br /&gt;
&lt;br /&gt;
:ai generalized alerts&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAlertGracePeriod&#039;&#039;&#039;(float frac, float duration, float count); ====&lt;br /&gt;
&lt;br /&gt;
:This starts the alert grace period for an AI. Should be called in the same frame as the alert that pushes them into a higher state.&lt;br /&gt;
::&#039;&#039;frac&#039;&#039;: the fraction of the alert below which they should ignore alerts during the grace period.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: the duration of the period in seconds&lt;br /&gt;
::&#039;&#039;count&#039;&#039;: the number of alerts ignored above which the grace period is invalid&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAlertLevel&#039;&#039;&#039;(float newLevel); ====&lt;br /&gt;
&lt;br /&gt;
:Set the alert level (AI_AlertLevel). This should always be called instead of setting AI_AlertLevel directly.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAngles&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current orientation of this entity (relative to bind parent if any)&lt;br /&gt;
::&#039;&#039;angles&#039;&#039;: the new orientation&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAngularVelocity&#039;&#039;&#039;(vector velocity); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current angular velocity of this entity. The angular velocity of a physics object is a vector that passes through the center of mass. The direction of this vector defines the axis of rotation and the magnitude defines the rate of rotation about the axis in radians per second.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAngularVelocityB&#039;&#039;&#039;(vector velocity, float id); ====&lt;br /&gt;
&lt;br /&gt;
:Set the angular velocity of a particular body&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Base&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAnimPrefix&#039;&#039;&#039;(string prefix); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a string which is placed in front of any animation names.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAttackFlag&#039;&#039;&#039;(float combatType, float enabled); ====&lt;br /&gt;
&lt;br /&gt;
:Activate or deactivate the given attack flag&lt;br /&gt;
::&#039;&#039;combatType&#039;&#039;: see tdm_defs.script for possible enum values&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAudThresh&#039;&#039;&#039;(float val); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setBlendFrames&#039;&#039;&#039;(float channel, float blendFrame); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the number of frames to blend between animations on the given channel.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setBoneMod&#039;&#039;&#039;(float allowBoneMod); ====&lt;br /&gt;
&lt;br /&gt;
:Enables or disables head looking (may be obsolete).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setCamera&#039;&#039;&#039;(entity cameraEnt); ====&lt;br /&gt;
&lt;br /&gt;
:Turns over view control to the given camera entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setClipMask&#039;&#039;&#039;(float clipMask); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the clipmask of the physics object.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setColor&#039;&#039;&#039;(float parm0, float parm1, float parm2); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the RGB color of this entity (shader parms Parm0, Parm1, Parm2).&lt;br /&gt;
::&#039;&#039;parm0&#039;&#039;: red&lt;br /&gt;
::&#039;&#039;parm1&#039;&#039;: green&lt;br /&gt;
::&#039;&#039;parm2&#039;&#039;: blue&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;SetConstraintPosition&#039;&#039;&#039;(string constraintName, vector position); ====&lt;br /&gt;
&lt;br /&gt;
:Moves the constraint with the given name that binds this entity to another entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Base&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setContents&#039;&#039;&#039;(float contents); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the contents of the physics object.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setController&#039;&#039;&#039;(entity playerController); ====&lt;br /&gt;
&lt;br /&gt;
:Let a player assume movement control of an AI vehicle (may be remote control as in a player on a coach pulled by a horse)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CAIVehicle&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;setCurInvCategory&#039;&#039;&#039;(string categoryName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the inventory cursor to the first item of the named category. Returns 1 on success, 0 on failure (e.g. wrong category name)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;setCurInvItem&#039;&#039;&#039;(string itemName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the inventory cursor to the named item. Returns: the item entity of the newly selected item (can be $null_entity).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setcvar&#039;&#039;&#039;(string name, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a cvar.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setDroppable&#039;&#039;&#039;(float droppable); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether an item may be dropped from the inventory. &lt;br /&gt;
::&#039;&#039;droppable&#039;&#039;: if non-zero the item becomes droppable, when called with 0 the item becomes non-droppable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setEnemy&#039;&#039;&#039;(entity enemy); ====&lt;br /&gt;
&lt;br /&gt;
:Make the given entity an enemy.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setEntityRelation&#039;&#039;&#039;(entity ent, float relation); ====&lt;br /&gt;
&lt;br /&gt;
:Set a relation to another entity, this can be friendly (&amp;gt;0), neutral(0) or hostile (&amp;lt;0)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFlyOffset&#039;&#039;&#039;(float offset); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the preferred height relative to the player&#039;s view height to fly at.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFlySpeed&#039;&#039;&#039;(float speed); ====&lt;br /&gt;
&lt;br /&gt;
:Set the speed flying creatures move at. Also sets speed for moveTypeSlide.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFrobable&#039;&#039;&#039;(float frobable); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the entity is frobable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFrobOnlyUsedByInv&#039;&#039;&#039;(float OnOff); ====&lt;br /&gt;
&lt;br /&gt;
:Engages or disengages a mode where we only frobhilight entities that can be used by our current inventory item. This also disables general frobactions and only allows &amp;quot;used by&amp;quot; frob actions.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGui&#039;&#039;&#039;(float handle, string guiFile); ====&lt;br /&gt;
&lt;br /&gt;
:Loads a new file into an existing GUI.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiFloat&#039;&#039;&#039;(float handle, string key, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiInt&#039;&#039;&#039;(float handle, string key, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiString&#039;&#039;&#039;(float handle, string key, string val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiStringFromKey&#039;&#039;&#039;(float handle, string key, entity src, string srcKey); ====&lt;br /&gt;
&lt;br /&gt;
:This is a kludge. It is equivelant to: setGuiString( handle, key, src.getKey(srcKey) ) However, it&#039;s used to bypass the 127 char size limit on script strings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setHealth&#039;&#039;&#039;(float health); ====&lt;br /&gt;
&lt;br /&gt;
:Use these to set the health of AI or players (this also updates the AI_DEAD flag)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setHinderance&#039;&#039;&#039;(string source, float mCap, float fCap); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set hinderance from a source.&lt;br /&gt;
::&#039;&#039;mCap&#039;&#039;: mCap values from all sources are multiplied together to define a cap&lt;br /&gt;
::&#039;&#039;fCap&#039;&#039;: fCap values are not additive, the smallest one among all the sources is used&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setImmobilization&#039;&#039;&#039;(string source, float type); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set immobilization from a source. Warning: Not a finalized version. It&#039;s subject to change, so use it at your own risk.)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setJointAngle&#039;&#039;&#039;(float jointnum, float transform_type, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Modifies the orientation of the joint based on the transform type.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimatedEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setJointPos&#039;&#039;&#039;(float jointnum, float transform_type, vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Modifies the position of the joint based on the transform type.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimatedEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setKey&#039;&#039;&#039;(string key, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a key on this entity&#039;s spawn args. Note that most spawn args are evaluated when this entity spawns in, so this will not change the entity&#039;s behavior in most cases. This is chiefly for saving data the script needs in an entity for later retrieval.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: the spawnarg to set&lt;br /&gt;
::&#039;&#039;value&#039;&#039;: the value to store&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightgemModifier&#039;&#039;&#039;(string modifierName, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the named lightgem modifier to a certain value. An example would be the player lantern: setLightgemModifier(&amp;quot;lantern&amp;quot;, 32). This way multiple modifiers can be set by concurrent script threads.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightOrigin&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Set origin of lights independent of model origin&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightParm&#039;&#039;&#039;(float parmNum, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a shader parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightParms&#039;&#039;&#039;(float parm0, float parm1, float parm2, float parm3); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the red/green/blue/alpha shader parms on the light and the model.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLinearVelocity&#039;&#039;&#039;(vector velocity); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current linear velocity of this entity in units per second. The linear velocity of a physics object is a vector that defines the translation of the center of mass in units per second.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLinearVelocityB&#039;&#039;&#039;(vector velocity, float id); ====&lt;br /&gt;
&lt;br /&gt;
:Set the linear velocity of a particular body&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Base&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setModel&#039;&#039;&#039;(string modelName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the model this entity uses&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setMoveType&#039;&#039;&#039;(float movetype); ====&lt;br /&gt;
&lt;br /&gt;
:Set the current movetype.  movetypes are defined in tdm_ai.script&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setName&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the name of this entity.&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: the new name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setNeverDormant&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:enables or prevents an entity from going dormant&lt;br /&gt;
::&#039;&#039;enable&#039;&#039;: 1 = enable, 0 = disable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setNextState&#039;&#039;&#039;(string stateFunc); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the next state and waits until thread exits, or a frame delay before calling it. Handy for setting the state in the constructor.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveComp&#039;&#039;&#039;(float ObjNum, float CompNum, float state); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set the state of custom objective components&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: objective number. Starts counting at 1&lt;br /&gt;
::&#039;&#039;CompNum&#039;&#039;: component number. Starts counting at 1&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 1 or 0 for true or false&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveEnabling&#039;&#039;&#039;(float ObjNum, string strIn); ====&lt;br /&gt;
&lt;br /&gt;
:Set an objective&#039;s enabling objectives (objectives that must be completed before that objective may be completed).&lt;br /&gt;
::&#039;&#039;strIn&#039;&#039;: takes the form of a string that is a space-delimited list of integer objectives representing the new enabling objectives. E.g. : &#039;1 2 3 4&#039;&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveOngoing&#039;&#039;&#039;(float ObjNum, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets objective ongoing.&lt;br /&gt;
::&#039;&#039;val&#039;&#039;: 1 for true, 0 for false&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveOptional&#039;&#039;&#039;(float ObjNum, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets objective mandatory.&lt;br /&gt;
::&#039;&#039;val&#039;&#039;: 1 for true, 0 for false&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveState&#039;&#039;&#039;(float ObjNum, float State); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set the state of objectives from the script. For example, use this to invalidate an objective when something happens in your mission. The first argument is the numerical index of the objective (taking &#039;user&#039; objective indices, starting at 1). Choose from the following for the second argument: OBJ_INCOMPLETE, OBJ_COMPLETE, OBJ_INVALID, OBJ_FAILED. Use this on $player1 like $player1.setObjectiveState(1, OBJ_COMPLETE);&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveText&#039;&#039;&#039;(float ObjNum, string newText); ====&lt;br /&gt;
&lt;br /&gt;
:Modify the displayed text for an objective. Can also be a string template like #str_20000&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveVisible&#039;&#039;&#039;(float ObjNum, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets objective visibility.&lt;br /&gt;
::&#039;&#039;val&#039;&#039;: 1 for true, 0 for false&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setOrigin&#039;&#039;&#039;(vector origin); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current position of this entity (relative to it&#039;s bind parent if any)&lt;br /&gt;
::&#039;&#039;origin&#039;&#039;: the new origin&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setOwner&#039;&#039;&#039;(entity owner); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the owner of this entity. Entities will never collide with their owner.&lt;br /&gt;
::&#039;&#039;owner&#039;&#039;: the entity which will be made owner of this entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPeekOverlayBackground&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the background overlay for peeking, depending on aspect ratio.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPeekView&#039;&#039;&#039;(float OnOff, vector origin); ====&lt;br /&gt;
&lt;br /&gt;
:Toggle whether we should use a view from a peek entity as the player&#039;s view&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPersistantArg&#039;&#039;&#039;(string key, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a key/value pair that persists between maps&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPortAISoundLoss&#039;&#039;&#039;(float handle, float value); ====&lt;br /&gt;
&lt;br /&gt;
:AI sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPortPlayerSoundLoss&#039;&#039;&#039;(float handle, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Player sound loss scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPortSoundLoss&#039;&#039;&#039;(float handle, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPrime&#039;&#039;&#039;(entity vine); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmVine&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setRadius&#039;&#039;&#039;(float radius); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the size of the bounding box, x=y=z=radius.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setRadiusXYZ&#039;&#039;&#039;(float x, float y, float z); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the width/length/height of the light bounding box.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setRelation&#039;&#039;&#039;(float team1, float team2, float val); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setReplacementAnim&#039;&#039;&#039;(string animToReplace, string replacement); ====&lt;br /&gt;
&lt;br /&gt;
:Replaces the animation &amp;quot;animToReplace&amp;quot; with &amp;quot;replacement&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSavePermissions&#039;&#039;&#039;(float permission); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
::&#039;&#039;permission&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSecretsFound&#039;&#039;&#039;(float secrets); ====&lt;br /&gt;
&lt;br /&gt;
:Set how many secrets the player has found. Use getMissionStatistic() for getting the current value.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSecretsTotal&#039;&#039;&#039;(float secrets); ====&lt;br /&gt;
&lt;br /&gt;
:Set how many secrets exist in the map in total. Use getMissionStatistic() for getting the current value.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setShader&#039;&#039;&#039;(string shader); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the shader to be used for the light.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setShaderParm&#039;&#039;&#039;(float parm, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the value of the specified shader parm.&lt;br /&gt;
::&#039;&#039;parm&#039;&#039;: shader parm index&lt;br /&gt;
::&#039;&#039;value&#039;&#039;: new value&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;, &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setShaderParms&#039;&#039;&#039;(float parm0, float parm1, float parm2, float parm3); ====&lt;br /&gt;
&lt;br /&gt;
:Sets shader parms Parm0, Parm1, Parm2, and Parm3 (red, green, blue, and alpha respectively).&lt;br /&gt;
::&#039;&#039;parm0&#039;&#039;: red&lt;br /&gt;
::&#039;&#039;parm1&#039;&#039;: green&lt;br /&gt;
::&#039;&#039;parm2&#039;&#039;: blue&lt;br /&gt;
::&#039;&#039;parm3&#039;&#039;: alpha&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSightThreshold&#039;&#039;&#039;(float sightThreshold); ====&lt;br /&gt;
&lt;br /&gt;
:Set the sight threshold of the security camera: how lit up the player&#039;s lightgem needs to be in order to be seen. 0.0 to 1.0&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSize&#039;&#039;&#039;(vector min, vector max); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the size of this entity&#039;s bounding box.&lt;br /&gt;
::&#039;&#039;min&#039;&#039;: minimum corner coordinates&lt;br /&gt;
::&#039;&#039;max&#039;&#039;: maximum corner coordinates&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSkin&#039;&#039;&#039;(string skinName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the skin this entity uses.  Set to &amp;quot;&amp;quot; to turn off the skin.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSmokeVisibility&#039;&#039;&#039;(float particle_num, float on); ====&lt;br /&gt;
&lt;br /&gt;
:enables/disables smoke particles on bones.  pass in the particle #, or ALL_PARTICLES for turning on/off all particle systems. particles are spawned in the order they appear in the entityDef&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSolid&#039;&#039;&#039;(float solidity); ====&lt;br /&gt;
&lt;br /&gt;
:Set the solidity of the entity. If the entity has never been solid before it will be assigned solid and opaque contents/clip masks.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSoundLoss&#039;&#039;&#039;(float loss); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound loss value (dB).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPortalEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSoundVolume&#039;&#039;&#039;(float newLevel); ====&lt;br /&gt;
&lt;br /&gt;
:Set the volume of the sound to play, must be issued before startSoundShader.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSpawnArg&#039;&#039;&#039;(string key, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a key/value pair to be used when a new entity is spawned.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSpyglassOverlayBackground&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the background overlay for the spyglass, depending on aspect ratio.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setStartedOff&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setState&#039;&#039;&#039;(string stateFunc); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the next state and goes to it immediately&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSyncedAnimWeight&#039;&#039;&#039;(float channel, float animindex, float weight); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the blend amount on multi-point anims.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTalkState&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:Sets whether the player can talk to this character or not.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTalkTarget&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the entity (player) trying to talk to the character&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTeam&#039;&#039;&#039;(float newTeam); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the team number of this entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;SetTimerState&#039;&#039;&#039;(float stimId, float state); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTurnHinderance&#039;&#039;&#039;(string source, float mCap, float fCap); ====&lt;br /&gt;
&lt;br /&gt;
:Set the hinderance on the view turning from a source&lt;br /&gt;
::&#039;&#039;mCap&#039;&#039;: mCap values from all sources are multiplied together to define a cap&lt;br /&gt;
::&#039;&#039;fCap&#039;&#039;: fCap values are not additive, the smallest one among all the sources is used&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTurnRate&#039;&#039;&#039;(float rate); ====&lt;br /&gt;
&lt;br /&gt;
:Set the rate the character turns at&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setViewAngles&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the player view angles, e.g. make the player facing this direction. 0 0 0 is east (along the X axis in DR), 0 90 0 north (along the Y axis in DR) 0 180 0 west, 0 270 0 south.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setWatered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmVine&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setWorldOrigin&#039;&#039;&#039;(vector origin); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current position of this entity (regardless of any bind parent).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shooterFireProjectile&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Fires a projectile.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmFuncShooter&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;shooterGetAmmo&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the ammonition&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmFuncShooter&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;shooterGetState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current state of this shooter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmFuncShooter&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shooterSetAmmo&#039;&#039;&#039;(float newAmmo); ====&lt;br /&gt;
&lt;br /&gt;
:Set the ammonition&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmFuncShooter&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shooterSetState&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:Activates / deactivates the shooter entity.&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 1 = active, 0 = inactive&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmFuncShooter&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;show&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Makes this entity visible if it has a model.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;showAttachment&#039;&#039;&#039;(string attName, float show); ====&lt;br /&gt;
&lt;br /&gt;
:Show or hide an attachment.&lt;br /&gt;
::&#039;&#039;show&#039;&#039;: 1 shows attachment, 0 hides it.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;showAttachmentInd&#039;&#039;&#039;(float index, float show); ====&lt;br /&gt;
&lt;br /&gt;
:Show or hide an attachment by array index.&lt;br /&gt;
::&#039;&#039;index&#039;&#039;: starts at 0&lt;br /&gt;
::&#039;&#039;show&#039;&#039;: 1 shows attachment, 0 hides it.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shrivel&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;sin&#039;&#039;&#039;(float degrees); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the sine of the given angle in degrees.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;slideTo&#039;&#039;&#039;(vector position, float time); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;smoking&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:flame is now smoking (1), or not (0)&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 1 = smoking, 0 = not smoking&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;spawn&#039;&#039;&#039;(string classname); ====&lt;br /&gt;
&lt;br /&gt;
:Creates an entity of the specified classname and returns a reference to the entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;SpawnFloat&#039;&#039;&#039;(string key, float default); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the floating point value for the given spawn argument.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;SpawnString&#039;&#039;&#039;(string key, string default); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string for the given spawn argument.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;spawnThrowableProjectile&#039;&#039;&#039;(string projectileName, string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:This method spawns a projectile of the type named by the caller and attaches it to the joint given by the caller.  The projectile becomes the AI&#039;s firable projectile. Returns a pointer to a projectile entity that can be  thrown by the AI. You can use AI_LaunchMissle (e* = launchMissle(v,v) ) to throw the stone.&lt;br /&gt;
::&#039;&#039;projectileName&#039;&#039;: The name of the projectile to spawn (as seen in a .def file) Must be descended from idProjectile&lt;br /&gt;
::&#039;&#039;jointName&#039;&#039;: The name of the joint on the model to which the particle should be attached for throwing. If this is NULL or the empty string, then it is attached to the model center.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;SpawnVector&#039;&#039;&#039;(string key, vector default); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the vector for the given spawn argument.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;speed&#039;&#039;&#039;(float speed); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the movement speed. Set this speed before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;sqrt&#039;&#039;&#039;(float square); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the square root of the given number.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;start&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Starts a spline or anim camera moving.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idCameraAnim&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startFx&#039;&#039;&#039;(string fx); ====&lt;br /&gt;
&lt;br /&gt;
:Starts an FX on this entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startGamePlayTimer&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Resets the game play timer to zero and (re)starts it.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startMouseGesture&#039;&#039;&#039;(float key, float thresh, float test, float inverted, float turnHinderance, float decideTime, float deadTime); ====&lt;br /&gt;
&lt;br /&gt;
:Start tracking a mouse gesture that started when the key impulse was pressed. Discretizes analog mouse movement into a few different gesture possibilities. Impulse arg can also be a button, see the UB_* enum in usercmdgen.h. For now, only one mouse gesture check at a time.&lt;br /&gt;
::&#039;&#039;thresh&#039;&#039;: Waits until the threshold mouse input thresh is reached before deciding.&lt;br /&gt;
::&#039;&#039;test&#039;&#039;: determines which test to do (0 = up/down, 1 = left/right, 2 = 4 directions, 3 = 8 directions).&lt;br /&gt;
::&#039;&#039;inverted&#039;&#039;: inverts the movement if set to 1, does not if 0&lt;br /&gt;
::&#039;&#039;turnHinderance&#039;&#039;: Sets the max player view turn rate when checking this mouse gesture (0 =&amp;gt; player view locked, 1.0 =&amp;gt; no effect on view turning)&lt;br /&gt;
::&#039;&#039;decideTime&#039;&#039;: time in milliseconds after which the mouse gesture is auto-decided, in the event that the mouse movement threshold was not reached. A DecideTime of -1 means wait forever until the button is released.&lt;br /&gt;
::&#039;&#039;deadTime&#039;&#039;: how long after attack is pressed that mouse control remains dampened by the fraction turnHinderance.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startRagdoll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Switches to a ragdoll taking over the animation.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimated&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;startSound&#039;&#039;&#039;(string sound, float channel, float netSync); ====&lt;br /&gt;
&lt;br /&gt;
:Plays the sound specified by the snd_* key/value pair on the channel and returns the length of the sound in seconds. This is the preferred method for playing sounds on an entity since it ensures that the sound is precached.&lt;br /&gt;
::&#039;&#039;sound&#039;&#039;: the spawnarg to reference, e.g. &#039;snd_move&#039;&lt;br /&gt;
::&#039;&#039;channel&#039;&#039;: the channel to play on&lt;br /&gt;
::&#039;&#039;netSync&#039;&#039;: -&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;startSoundShader&#039;&#039;&#039;(string shaderName, float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Plays a specific sound shader on the channel and returns the length of the sound in seconds. This is not the preferred method of playing a sound since you must ensure that the sound is loaded.&lt;br /&gt;
::&#039;&#039;shaderName&#039;&#039;: the sound shader to play&lt;br /&gt;
::&#039;&#039;channel&#039;&#039;: the channel to play the sound on&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startSpline&#039;&#039;&#039;(entity spline); ====&lt;br /&gt;
&lt;br /&gt;
:Starts moving along a spline stored on the given entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StartTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startZoom&#039;&#039;&#039;(float duration, float startFOV, float endFOV); ====&lt;br /&gt;
&lt;br /&gt;
:Call this to start the zoom in event. The player FOV is gradually zoomed in until over the given timespan.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: duration of the transition in msec&lt;br /&gt;
::&#039;&#039;startFOV&#039;&#039;: The start FOV, this is clamped to [1..179]&lt;br /&gt;
::&#039;&#039;endFOV&#039;&#039;: The end FOV, this is clamped to [1..179]&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_light&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Switches the spotlight on or off. Respects the security camera&#039;s power state.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_AI&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see AIs.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_animals&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see animals. Checked after seeAI or seeBodies.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_bodies&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see bodies.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_player&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see the player.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_sweep&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Enables or disables the camera&#039;s sweeping.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimAdd&#039;&#039;&#039;(float type, float radius); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimClearIgnoreList&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:This clears the ignore list for the stim of the given type It can be used if an entity changes state in some way that it would no longer be ignored&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimEnable&#039;&#039;&#039;(float type, float state); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 0 = disabled, 1 = enabled&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimRemove&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stop&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops a spline or anim camera moving.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idCameraAnim&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopAnim&#039;&#039;&#039;(float channel, float frames); ====&lt;br /&gt;
&lt;br /&gt;
:Stops the animation currently playing on the given channel over the given number of frames.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopFxFov&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopMouseGesture&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopMoving&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops any translational movement.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopPatrol&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops an AI from patrolling&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopRagdoll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:turns off the ragdoll&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopRotating&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops any rotational movement.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopSound&#039;&#039;&#039;(float channel, float netSync); ====&lt;br /&gt;
&lt;br /&gt;
:Stops a specific sound shader on the channel.&lt;br /&gt;
::&#039;&#039;channel&#039;&#039;: the channel to stop playback on&lt;br /&gt;
::&#039;&#039;netSync&#039;&#039;: -&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopSpline&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops moving along a spline.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopThinking&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StopTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strFind&#039;&#039;&#039;(string text, string find, float casesensitive, float start, float end); ====&lt;br /&gt;
&lt;br /&gt;
:Return the position of the given substring, counting from 0, or -1 if not found.&lt;br /&gt;
::&#039;&#039;casesensitive&#039;&#039;: 0&lt;br /&gt;
::&#039;&#039;start&#039;&#039;: 0&lt;br /&gt;
::&#039;&#039;end&#039;&#039;: -1&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strLeft&#039;&#039;&#039;(string text, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a string composed of the first num characters&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strLength&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of characters in the string&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strMid&#039;&#039;&#039;(string text, float start, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a string composed of the characters from start to start + num&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strRemove&#039;&#039;&#039;(string text, string remove); ====&lt;br /&gt;
&lt;br /&gt;
:Replace all occurances of the given substring with &amp;quot;&amp;quot;. Example: StrRemove(&amp;quot;abba&amp;quot;,&amp;quot;bb&amp;quot;) results in &amp;quot;aa&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strReplace&#039;&#039;&#039;(string text, string remove, string replace); ====&lt;br /&gt;
&lt;br /&gt;
:Replace all occurances of the given string with the replacement string. Example: StrRemove(&amp;quot;abba&amp;quot;,&amp;quot;bb&amp;quot;,&amp;quot;ccc&amp;quot;) results in &amp;quot;accca&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strRight&#039;&#039;&#039;(string text, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a string composed of the last num characters&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strSkip&#039;&#039;&#039;(string text, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string following the first num characters&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strToFloat&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the numeric value of the given string.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strToInt&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the integer value of the given string.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;sway&#039;&#039;&#039;(float speed, float phase, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation back and forth along the given angles with the given speed and phase.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Switch&#039;&#039;&#039;(float newState); ====&lt;br /&gt;
&lt;br /&gt;
:Move the lever to the on or off position (0 = off).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CFrobLever&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;switchState&#039;&#039;&#039;(string stateName); ====&lt;br /&gt;
&lt;br /&gt;
:Switches to the state with the given name, current one is ended.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;syncAnimChannels&#039;&#039;&#039;(float fromChannel, float toChannel, float blendFrames); ====&lt;br /&gt;
&lt;br /&gt;
:Synchronises the channels&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Tap&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Operates this handle.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CFrobHandle&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;TDM_Lock_OnLockPicked&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;, &#039;&#039;CFrobLock&#039;&#039;, &#039;&#039;idProjectile&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;TDM_Lock_StatusUpdate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;, &#039;&#039;CFrobLock&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;teleportTo&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:Teleports the entity to the position of the other entity, plus a possible offset and random offset (defined on the spawnargs of the entity to be teleported)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;terminate&#039;&#039;&#039;(float threadNumber); ====&lt;br /&gt;
&lt;br /&gt;
:Terminates a thread.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testAnimAttack&#039;&#039;&#039;(string animname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testAnimMove&#039;&#039;&#039;(string animname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testAnimMoveTowardEnemy&#039;&#039;&#039;(string animname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testChargeAttack&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testEvent1&#039;&#039;&#039;(float float_pi, float int_beef, float float_exp, string string_tdm, float float_exp10, float int_food); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;testEvent2&#039;&#039;&#039;(float int_prevres, vector vec_123, float int_food, entity ent_player, entity ent_null, float float_pi, float float_exp); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;testEvent3&#039;&#039;&#039;(entity ent_prevres, vector vec_123, float float_pi, entity ent_player); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testMeleeAttack&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testMoveToPosition&#039;&#039;&#039;(vector position); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;threadname&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the name of the current thread.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;throwAF&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;throwMoveable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;time&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the movement time. Set this time before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Toggle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the forcefield on and off.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idForceField&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_light&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the spotlight on/off.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_AI&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see AIs.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_animals&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see bodies. Checked after seeAI or seeBodies.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_bodies&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see bodies.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_player&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see the player.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_sweep&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the camera sweep.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ToggleLock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the lock state. Unlocked movers will be locked and vice versa. The notes above concerning Unlock() still apply if this call unlocks the mover. &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ToggleOpen&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the mover state. Closes when fully open, opens when fully closed. If the mover is &amp;quot;interrupted&amp;quot; (e.g. when the player frobbed the mover in between), the move direction depends on the state of the internal &amp;quot;intent_open&amp;quot; flag. &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;totalAmmoCount&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Amount of ammo in inventory. since each shot may use more than 1 ammo, this is different than ammoAvailable()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;touches&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if this entity touches the other entity.&lt;br /&gt;
::&#039;&#039;other&#039;&#039;: the entity to check against&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;trace&#039;&#039;&#039;(vector start, vector end, vector mins, vector maxs, float contents_mask, entity passEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the fraction of movement completed before the box from &#039;mins&#039; to &#039;maxs&#039; hits solid geometry when moving from &#039;start&#039; to &#039;end&#039;. The &#039;passEntity&#039; is considered non-solid during the move.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;tracePoint&#039;&#039;&#039;(vector start, vector end, float contents_mask, entity passEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the fraction of movement completed before the trace hits solid geometry when moving from &#039;start&#039; to &#039;end&#039;. The &#039;passEntity&#039; is considered non-solid during the move.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;translate&#039;&#039;&#039;(string input); ====&lt;br /&gt;
&lt;br /&gt;
:Translates a string (like #str_12345) into the current language&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceBetweenEntities&#039;&#039;&#039;(entity source, entity dest); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance between two entities.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceBetweenPoints&#039;&#039;&#039;(vector source, vector dest); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance between two points.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceToEntity&#039;&#039;&#039;(entity destination); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance to entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceToPoint&#039;&#039;&#039;(vector destination); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance to point.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;trigger&#039;&#039;&#039;(entity entityToTrigger); ====&lt;br /&gt;
&lt;br /&gt;
:Triggers the given entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;triggerMissionEnd&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;triggerParticles&#039;&#039;&#039;(string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;turnTo&#039;&#039;&#039;(float yaw); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;turnToEntity&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;turnToPos&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;unbind&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Detaches this entity from its master.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Unlock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Unlocks the mover. Calls to Open() will succeed after this call. Depending on the value of the spawnarg &amp;quot;open_on_unlock&amp;quot; the mover might automatically open after this call. &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;unpauseGame&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Unpauses the game. Most scripts are not executed during g_stopTime == true and won&#039;t get into the position of calling this.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;useAmmo&#039;&#039;&#039;(float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Eats the specified amount of ammo&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;vecLength&#039;&#039;&#039;(vector vec); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the length of the given vector.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;vecNormalize&#039;&#039;&#039;(vector vec); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the normalized version of the given vector.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;VecRotate&#039;&#039;&#039;(vector vector, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Rotates a vector by the specified angles.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;VecToAngles&#039;&#039;&#039;(vector vec); ====&lt;br /&gt;
&lt;br /&gt;
:Returns Euler angles for the given direction.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;visScan&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Checks for enemies or player in the AI&#039;s FOV, using light level and distance. For now the check is only done on the player.  Returns a reference to the sighted actor.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;wait&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends execution of the current thread for the given number of seconds.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;, &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitAction&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitFor&#039;&#039;&#039;(entity mover); ====&lt;br /&gt;
&lt;br /&gt;
:Waits for the given entity to complete its move.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitForRender&#039;&#039;&#039;(entity e); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends the current thread until &#039;e&#039; might have been rendered. It&#039;s event based, so it doesn&#039;t waste CPU repeatedly checking inPVS(). e.inPVS() will very likely be true when the thread resumes. If e.inPVS() is true, calling waitForRender() will probably just wait a frame, unless D3 can figure out that the entity doesn&#039;t need to be rendered. Optimizations regarding shadowcasting lights may not apply to this function - it is based purely off whether or not the entity&#039;s bounding box is visible.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitForThread&#039;&#039;&#039;(float threadNumber); ====&lt;br /&gt;
&lt;br /&gt;
:Waits for the given thread to terminate.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitFrame&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends execution of current thread for one game frame.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;, &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;wakeOnFlashlight&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:Tells the monster to activate when flashlight shines on them.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;wander&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;warning&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Issues a warning.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;wasDamaged&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Check if the player was damaged this frame.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponHolstered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponLowering&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponOutOfAmmo&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponReady&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponReloading&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponRising&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponState&#039;&#039;&#039;(string stateFunction, float blendFrames); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Events by Spawnclass / Entity Type ==&lt;br /&gt;
=== idClass ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;remove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Removes the entity from the game. For AI, use kill() instead.&lt;br /&gt;
&lt;br /&gt;
=== idActor ===&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animDistance&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the distance that the anim travels. If the entity has multiple anims with animName, the distance may not match the anim that is played. Use chooseAnim to get a non-random anim and pass that string into animDistance.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animDone&#039;&#039;&#039;(float channel, float blendOutFrames); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the animation playing on the given channel is completed considering a number of blend frames.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animIsPaused&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Return whether the given anim channel is paused&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animLength&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the length of the anim in seconds. If the entity has multiple anims with animName, length may not match the anim that is played. Use chooseAnim to get a non-random anim and pass that string into animLength.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;animState&#039;&#039;&#039;(float channel, string stateFunction, float blendFrame); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a new animation state script function for the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attach&#039;&#039;&#039;(entity ent, string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Attach an entity to the AI. Entity spawnArgs checked for attachments are:  - &amp;quot;origin&amp;quot;, &amp;quot;angles&amp;quot;, and &amp;quot;joint&amp;quot;. These must be set prior to calling attach.&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the desired name of the attachment, e.g., &#039;melee_weapon&#039;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attachToPos&#039;&#039;&#039;(entity ent, string position, string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Attach an entity to the AI, using a named attachment position&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the desired name of the attachment, e.g., &#039;melee_weapon&#039;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;checkAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Ensures that the animation exists and causes an error if it doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;chooseAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Chooses a random anim and returns the name. Useful for doing move tests on anims.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;closestEnemyToPoint&#039;&#039;&#039;(vector point); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the enemy closest to the given location.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableAnimchannel&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Used to disable a certain animchannel (for example if the ai is dead)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableEyeFocus&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables eye focus.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;DisableLegIK&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:disables leg IK&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disablePain&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables pain animations.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;DisableWalkIK&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:disables walk IK&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dropAttachment&#039;&#039;&#039;(string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Drop the attachment for the given attachment name.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dropAttachmentInd&#039;&#039;&#039;(float index); ====&lt;br /&gt;
&lt;br /&gt;
:Drop the attachment for the given index.&lt;br /&gt;
::&#039;&#039;index&#039;&#039;: starts at 0&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableAnim&#039;&#039;&#039;(float channel, float blendFrames); ====&lt;br /&gt;
&lt;br /&gt;
:Enables animation on the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableEyeFocus&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables eye focus.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;EnableLegIK&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:enables leg IK&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enablePain&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables pain animations.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;EnableWalkIK&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:enables walk IK&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;finishAction&#039;&#039;&#039;(string action); ====&lt;br /&gt;
&lt;br /&gt;
:Finishes the given wait action.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;finishChannelAction&#039;&#039;&#039;(float channel, string animname); ====&lt;br /&gt;
&lt;br /&gt;
:Overloaded finishAction function for setting the waitstate on each channel separately&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;footstep&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getAnimState&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the current animation state script function used for the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAttachment&#039;&#039;&#039;(string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Get the attached entity with the given attachment name Will be NULL if the name is invalid or if the entity no longer exists&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAttachmentInd&#039;&#039;&#039;(float index); ====&lt;br /&gt;
&lt;br /&gt;
:Get the attached entity at the given index. Will be NULL if the index is invalid or the entity no longer exists&lt;br /&gt;
::&#039;&#039;index&#039;&#039;: starts at 0&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAttackFlag&#039;&#039;&#039;(float combatType); ====&lt;br /&gt;
&lt;br /&gt;
:Returns 1 if the given attack flag is activated.&lt;br /&gt;
::&#039;&#039;combatType&#039;&#039;: see tdm_defs.script for possible enum values&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getBlendFrames&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of frames to blend between animations on the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getEyePos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get eye position of the player and the AI&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getHead&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity used for the character&#039;s head, if it has one.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeActPhase&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current melee action phase (holding,recovering,etc).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeActState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current melee action state (attacking/defending).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeActType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current melee action type (overhead,thrust,etc.).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeLastActTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the melee type of the last attack to hit this actor. Defaults to MELEETYPE_UNBLOCKABLE if we were not hit before.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeLastHitByType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the game time that the most recent melee action ended (in ms)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeResult&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the result of the last melee action Follows MELEERESULT_* enum defined in tdm_defs.script&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumAttachments&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Return the number of attachments on an AI. Used to iterate through the attachments if desired.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumMeleeWeapons&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of melee weapons attached to an actor. This refers to the TDM-style attachments with the spawnarg &#039;is_weapon_melee&#039; set to &#039;1&#039;.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumRangedWeapons&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of ranged weapons attached to an actor. This refers to the TDM-style attachments with the spawnarg &#039;is_weapon_ranged&#039; set to &#039;1&#039;.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getPainAnim&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the pain animation.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current state.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true when an entity has a specific animation.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasEnemies&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the actor has one or more enemies.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;idleAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Plays the given idle animation on the given channel.  Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;inAnimState&#039;&#039;&#039;(float channel, string stateFunc); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given animation state script function is currently used for the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;leftFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to left foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;lookupReplacementAnim&#039;&#039;&#039;(string anim); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current replacement animation for &amp;quot;anim&amp;quot;. Returns empty if no replacement anim &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeActionFinished&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Called when the animation for the melee action has finished.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeActionHeld&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Called when the melee action reaches the &amp;quot;hold&amp;quot; point.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeActionReleased&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Called when the melee action is released from the hold point.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeAttackStarted&#039;&#039;&#039;(float attType); ====&lt;br /&gt;
&lt;br /&gt;
:Registers the start of a given melee attack Intended to be called from a script that also starts the animation&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;meleeBestParry&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the melee type integer of the best parry given the enemy attacks at the time If no attacking enemy is found, returns default of MELEETYPE_RL Follows MELEETYPE_* enum defined in tdm_defs.script&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;meleeNameForNum&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:Converts a melee type integer to a string name suffix Used for finding the right animation for a given type, etc. Possible names are, in order: &amp;quot;Over, LR, RL, Thrust, General&amp;quot; Where general blocks all attacks types except unblockable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeParryStarted&#039;&#039;&#039;(float parType); ====&lt;br /&gt;
&lt;br /&gt;
:Registers the start of a given melee parry Intended to be called from a script that also starts the animation&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;nextEnemy&#039;&#039;&#039;(entity lastEnemy); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the next enemy the actor has acquired.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;overrideAnim&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the animation currently playing on the given channel and syncs the animation with the animation of the nearest animating channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pauseAnim&#039;&#039;&#039;(float channel, float bPause); ====&lt;br /&gt;
&lt;br /&gt;
:Pause all animations playing on the given channel. NOTE: Can also be used used by idWeapons&lt;br /&gt;
::&#039;&#039;bPause&#039;&#039;: true = pause, false = unpause&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Do not use, this is part of TDM&#039;s internal mechanics. Use playCustomAnim() on AI.in scripts instead of this. Plays the given animation on the given channel. Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playCycle&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Continuously repeats the given animation on the given channel.  Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;preventPain&#039;&#039;&#039;(float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Prevents any pain animation from being played for the given time in seconds.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: time in seconds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reAttachToCoords&#039;&#039;&#039;(string attName, string joint, vector offset, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Reattach an existing attachment&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the name of the attachment we want to reattach. &lt;br /&gt;
::&#039;&#039;joint&#039;&#039;: the name of the joint to attach to&lt;br /&gt;
::&#039;&#039;offset&#039;&#039;: the translation offset from joint&lt;br /&gt;
::&#039;&#039;angles&#039;&#039;: a (pitch, yaw, roll) angle vector that defines the rotation  of the attachment relative to the joint&#039;s orientation&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reAttachToPos&#039;&#039;&#039;(string attName, string position); ====&lt;br /&gt;
&lt;br /&gt;
:Reattach an existing attachment to a named attachment position. Example: reAttachToPos( melee_weapon, right_hand_held )&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the name of the attachment we want to reattach.&lt;br /&gt;
::&#039;&#039;position&#039;&#039;: the new position we want to attach it to.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reloadTorchReplacementAnims&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:If actor has a torch, reload the torch&#039;s replacement anims.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeReplacementAnim&#039;&#039;&#039;(string anim); ====&lt;br /&gt;
&lt;br /&gt;
:Removes the replacement for the given &amp;quot;anim&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rightFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to right foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAnimPrefix&#039;&#039;&#039;(string prefix); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a string which is placed in front of any animation names.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAttackFlag&#039;&#039;&#039;(float combatType, float enabled); ====&lt;br /&gt;
&lt;br /&gt;
:Activate or deactivate the given attack flag&lt;br /&gt;
::&#039;&#039;combatType&#039;&#039;: see tdm_defs.script for possible enum values&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setBlendFrames&#039;&#039;&#039;(float channel, float blendFrame); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the number of frames to blend between animations on the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setNextState&#039;&#039;&#039;(string stateFunc); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the next state and waits until thread exits, or a frame delay before calling it. Handy for setting the state in the constructor.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setReplacementAnim&#039;&#039;&#039;(string animToReplace, string replacement); ====&lt;br /&gt;
&lt;br /&gt;
:Replaces the animation &amp;quot;animToReplace&amp;quot; with &amp;quot;replacement&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setState&#039;&#039;&#039;(string stateFunc); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the next state and goes to it immediately&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSyncedAnimWeight&#039;&#039;&#039;(float channel, float animindex, float weight); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the blend amount on multi-point anims.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;showAttachment&#039;&#039;&#039;(string attName, float show); ====&lt;br /&gt;
&lt;br /&gt;
:Show or hide an attachment.&lt;br /&gt;
::&#039;&#039;show&#039;&#039;: 1 shows attachment, 0 hides it.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;showAttachmentInd&#039;&#039;&#039;(float index, float show); ====&lt;br /&gt;
&lt;br /&gt;
:Show or hide an attachment by array index.&lt;br /&gt;
::&#039;&#039;index&#039;&#039;: starts at 0&lt;br /&gt;
::&#039;&#039;show&#039;&#039;: 1 shows attachment, 0 hides it.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopAnim&#039;&#039;&#039;(float channel, float frames); ====&lt;br /&gt;
&lt;br /&gt;
:Stops the animation currently playing on the given channel over the given number of frames.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;syncAnimChannels&#039;&#039;&#039;(float fromChannel, float toChannel, float blendFrames); ====&lt;br /&gt;
&lt;br /&gt;
:Synchronises the channels&lt;br /&gt;
&lt;br /&gt;
=== idAFEntity_Base ===&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAngularVelocityB&#039;&#039;&#039;(float id); ====&lt;br /&gt;
&lt;br /&gt;
:Get the angular velocitiy of a particular body Returns (0,0,0) if the body ID is invalid.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLinearVelocityB&#039;&#039;&#039;(float id); ====&lt;br /&gt;
&lt;br /&gt;
:Get the linear velocitiy of a particular body Returns (0,0,0) if the body ID is invalid.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumBodies&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of bodies in the AF. If the AF physics pointer is NULL, it returns 0.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restoreAddedEnts&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAngularVelocityB&#039;&#039;&#039;(vector velocity, float id); ====&lt;br /&gt;
&lt;br /&gt;
:Set the angular velocity of a particular body&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;SetConstraintPosition&#039;&#039;&#039;(string constraintName, vector position); ====&lt;br /&gt;
&lt;br /&gt;
:Moves the constraint with the given name that binds this entity to another entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLinearVelocityB&#039;&#039;&#039;(vector velocity, float id); ====&lt;br /&gt;
&lt;br /&gt;
:Set the linear velocity of a particular body&lt;br /&gt;
&lt;br /&gt;
=== idAFEntity_Gibbable ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;gib&#039;&#039;&#039;(string damageDefName); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
=== idAFEntity_Generic ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idAFEntity_WithAttachedHead ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CAIVehicle ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearController&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Need separate clearController because scripting doesn&#039;t like passing in $null_entity? (greebo: one could remove this function and set the argument type of setController to &#039;E&#039;.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;frobRidable&#039;&#039;&#039;(entity playerController); ====&lt;br /&gt;
&lt;br /&gt;
:Called when a player directly mounts or dismounts a ridable AI.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getMoveAnim&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the player-requested movement anim for a player controlled AI vehicle&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setController&#039;&#039;&#039;(entity playerController); ====&lt;br /&gt;
&lt;br /&gt;
:Let a player assume movement control of an AI vehicle (may be remote control as in a player on a coach pulled by a horse)&lt;br /&gt;
&lt;br /&gt;
=== idCombatNode ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;markUsed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the combat node if &amp;quot;use_once&amp;quot; is set on the entity.&lt;br /&gt;
&lt;br /&gt;
=== idAI ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;alert&#039;&#039;&#039;(string type, float val); ====&lt;br /&gt;
&lt;br /&gt;
:ai generalized alerts&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;alertAI&#039;&#039;&#039;(string type, float amount, entity actor); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
::&#039;&#039;type&#039;&#039;: alert type&lt;br /&gt;
::&#039;&#039;amount&#039;&#039;: alert amount&lt;br /&gt;
::&#039;&#039;actor&#039;&#039;: actor causing alert&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowDamage&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:The AI can take damage again.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowHiddenMovement&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:Normally, when hidden, monsters do not run physics. This enables physics when hidden.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowMovement&#039;&#039;&#039;(float allow); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;animTurn&#039;&#039;&#039;(float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Enable/disable animation controlled turning.&lt;br /&gt;
::&#039;&#039;angle&#039;&#039;: Pass in the maximum # of degrees the animation turns. Use an amount of 0 to disable.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attackBegin&#039;&#039;&#039;(string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attackEnd&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;attackMelee&#039;&#039;&#039;(string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the attack hit&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;attackMissile&#039;&#039;&#039;(string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:returns projectile fired&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bark&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Let the AI bark a certain sound.&lt;br /&gt;
::&#039;&#039;sound&#039;&#039;: sound name, e.g. &#039;snd_warn_response&#039;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;becomeNonSolid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Makes the moveable non-solid for other entities.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;becomeRagdoll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:enables the ragdoll if the entity has one&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;becomeSolid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;burn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canBecomeSolid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canHitEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canHitEnemyFromAnim&#039;&#039;&#039;(string anim); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canHitEnemyFromJoint&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canReachEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if character can walk to enemy&#039;s position. For walking monsters, enemy should be near the floor.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canReachEntity&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if character can walk to entity&#039;s position. For walking monsters, entity should be near the floor.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canReachPosition&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if character can walk to specified position. For walking monsters, position should be near the floor.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSee&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSeeExt&#039;&#039;&#039;(entity ent, float b_useFOV, float b_useLighting); ====&lt;br /&gt;
&lt;br /&gt;
:This is an alternate version of canSee that can optionally choose to use field of vision and lighting calculations.&lt;br /&gt;
::&#039;&#039;b_useFOV&#039;&#039;: If 0 the entity will be visible even if the AI&#039;s back is turned to it&lt;br /&gt;
::&#039;&#039;b_useLighting&#039;&#039;: If b_useLighting is 0 the entity will be visible in complete darkness. If it is 1, the entity will only be visible if there is light shining on it, but the slightest light is enought. Use &amp;quot;isEntityHidden&amp;quot; as a script event with a threshold instead.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSeePositionExt&#039;&#039;&#039;(vector position, float b_useFOV, float b_useLighting); ====&lt;br /&gt;
&lt;br /&gt;
:This is an alternate version of canSeeExt that tests a location rather than an entity. Note that any actor at the position may make it not seeable from a distance.&lt;br /&gt;
::&#039;&#039;b_useFOV&#039;&#039;: If 0 the entity will be visible even if the AI&#039;s back is turned to it&lt;br /&gt;
::&#039;&#039;b_useLighting&#039;&#039;: If 0 the entity will be visible in complete darkness&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;chargeAttack&#039;&#039;&#039;(string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearBurn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clears the enemy entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearFlyOffset&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the preferred height relative to the player&#039;s view height to fly at to the value set in the def file.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;closestReachableEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Used for determining tactile alert targets&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;closestReachableEnemyOfEntity&#039;&#039;&#039;(entity team_mate); ====&lt;br /&gt;
&lt;br /&gt;
:Finds another character&#039;s closest reachable enemy&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;createMissile&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:returns projectile created&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;createMissileFromDef&#039;&#039;&#039;(string defName, string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;directDamage&#039;&#039;&#039;(entity damageTarget, string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableAFPush&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableClip&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableGravity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dropTorch&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;emptyHand&#039;&#039;&#039;(string hand); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableAFPush&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableClip&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableGravity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;endState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Ends the current state with the given name, returns TRUE if more than one state is remaining.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyInCombatCone&#039;&#039;&#039;(entity combatNode, float use_current_enemy_location); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyPositionValid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyRange&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyRange2D&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;entityInAttackCone&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;faceEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;faceEntity&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;facingIdeal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findActorsInBounds&#039;&#039;&#039;(vector mins, vector maxs); ====&lt;br /&gt;
&lt;br /&gt;
:Returns an entity within the bounds specified&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findEnemy&#039;&#039;&#039;(float onlyInFov); ====&lt;br /&gt;
&lt;br /&gt;
:Finds enemy player in PVS&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findEnemyAI&#039;&#039;&#039;(float onlyInFov); ====&lt;br /&gt;
&lt;br /&gt;
:Finds enemy monster in PVS&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findEnemyInCombatNodes&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Finds enemy player in attack cones&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findFriendlyAI&#039;&#039;&#039;(float team); ====&lt;br /&gt;
&lt;br /&gt;
:Use this to find a visible AI friendly to ourselves. It basically iterates over all active entities in the map and looks for friendly actors. The pythagorean distance is taken to evaluate the distance.  Don&#039;t call this every frame, this might get expensive in larger maps. Returns the nearest visible actor entity or the $null_entity, if none was found.&lt;br /&gt;
::&#039;&#039;team&#039;&#039;: used to constrain the search to a given team. Set this to -1 to let the code ignore this argument&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;fireMissileAtTarget&#039;&#039;&#039;(string jointname, string targetname); ====&lt;br /&gt;
&lt;br /&gt;
:Launches a missile at entity specified by &#039;attack_target&#039;.  returns projectile fired&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;flee&#039;&#039;&#039;(entity entToFleeFrom, float algorithm, float distanceOption); ====&lt;br /&gt;
&lt;br /&gt;
:Flee from the given entity. Pass the escape point lookup algorithm (e.g. EP_FIND_GUARDED) and the distanceOption (e.g. EP_DIST_NEAREST) to specify how the best escape point can be found. Refer to the tdm_defs.script file to see all the constants.  When algorithm is set to EP_FIND_AAS_AREA_FAR_FROM_THREAT, the distanceOption is interpreted as minimum threat distance. Returns FALSE if no escape point could be found.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;foundBody&#039;&#039;&#039;(entity body); ====&lt;br /&gt;
&lt;br /&gt;
:Objective callback for when an AI finds a body.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Gas_Knockout&#039;&#039;&#039;(entity inflictor); ====&lt;br /&gt;
&lt;br /&gt;
:AI knockout&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: the entity causing the knockout, can be the $null_entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAcuity&#039;&#039;&#039;(string type); ====&lt;br /&gt;
&lt;br /&gt;
:ai generalized alerts&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAlertActor&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the actor that alerted the AI in this frame.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAlertLevelOfOtherAI&#039;&#039;&#039;(entity otherEntity); ====&lt;br /&gt;
&lt;br /&gt;
:This event gets the alert number of another AI (AI_AlertLevel variable value) Returns the alert number of the other AI, 0.0 if its not an AI or is NULL&lt;br /&gt;
::&#039;&#039;otherEntity&#039;&#039;: the other AI entity who&#039;s alert number is being queried&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAttacker&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the attacking entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAudThresh&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getClosestHiddenTarget&#039;&#039;&#039;(string entity_type); ====&lt;br /&gt;
&lt;br /&gt;
:Finds the closest targeted entity of the specified type.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getCombatNode&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getCurrentYaw&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getEnemyEyePos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getEnemyPos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getJumpVelocity&#039;&#039;&#039;(vector pos, float speed, float max_jump_height); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMoveType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current movetype&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextIdleAnim&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:This returns the name of the next idle anim to be played on this AI (used by AnimState scripts).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getObservationPosition&#039;&#039;&#039;(vector targetPoint, float visualAcuityZeroToOne); ====&lt;br /&gt;
&lt;br /&gt;
:This event is used to get a position that the AI can move to observe a  given position.  It is useful for looking at hiding spots that can&#039;t be reached, and performing other investigation functions.  Returns a world position from which the observation can take place. Returns the current AI origin if no such point is found.  @sideEffect This uses the AI_DEST_UNREACHABLE flag variable  to indicate if a point was found. It will be true if none was found, false if one was found.&lt;br /&gt;
::&#039;&#039;targetPoint&#039;&#039;: the world position to be observed&lt;br /&gt;
::&#039;&#039;visualAcuityZeroToOne&#039;&#039;: the visual acuity of the AI on a scale of 0.0 to 1.0 where 0.0 is blind and 1.0 is perfect vision.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getObstacle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the obstacle in the character&#039;s path&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getRandomTarget&#039;&#039;&#039;(string entity_type); ====&lt;br /&gt;
&lt;br /&gt;
:Finds a random targeted entity of the specified type.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getReachableEntityPosition&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the position of the entity within the AAS if possible, otherwise just the entity position.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getRelationEnt&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getSndDir&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:ai hearing of sound &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTactEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:ai sense of touch&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTalkTarget&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity (player) trying to talk to the character&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTurnDelta&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTurnRate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the rate the character turns.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVectorToIdealOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the vector from where the AI is to where he ideally should be&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVisDir&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns position of the last visual alert.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasSeenEvidence&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:This returns 1 when the AI has seen evidence of intruders before (an enemy, a body...)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ignoreDamage&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:The AI can no longer take damage.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isEntityHidden&#039;&#039;&#039;(entity ent, float f_sightThreshold); ====&lt;br /&gt;
&lt;br /&gt;
:This is an alternate version of canSee, using FOV, distance and lighting.&lt;br /&gt;
::&#039;&#039;f_sightThreshold&#039;&#039;: goes from 0.0 (entity visible in complete darkness) to 1.0 (entity only visible if completely lit up).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isPlayerResponsibleForDeath&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the player was responsible for the AI&#039;s caller&#039;s death.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;kickObstacles&#039;&#039;&#039;(entity kickEnt, float force); ====&lt;br /&gt;
&lt;br /&gt;
:Kicks any obstacle in the character&#039;s path.&lt;br /&gt;
::&#039;&#039;kickEnt&#039;&#039;: pass in $null_entity if you don&#039;t have a specific entity to kick&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;kill&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Kills the monster.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;KO_Knockout&#039;&#039;&#039;(entity inflictor); ====&lt;br /&gt;
&lt;br /&gt;
:AI knockout&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: is the entity causing the knockout, can be the $null_entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;launchMissile&#039;&#039;&#039;(vector origin, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the projectile entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;locateEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Updates the last known position of the enemy independent from whether or not the enemy is visible.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAt&#039;&#039;&#039;(entity focusEntity, float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Aims the character&#039;s eyes and head toward an entity for a period of time.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAtAngles&#039;&#039;&#039;(float yawAngleClockwise, float pitchAngleUp, float rollAngle, float durationInSeconds); ====&lt;br /&gt;
&lt;br /&gt;
:A look at event that just looks at a set of angles relative  to the current body facing of the AI. This method is just like the vanilla Doom3 lookAt and lookAtEnemy methods, but it looks at the specified angles from the current body facing of the AI.&lt;br /&gt;
::&#039;&#039;yawAngleClockwise&#039;&#039;: Negative angles are to the left of  the AIs body and positive angles are to the right.&lt;br /&gt;
::&#039;&#039;pitchAngleUp&#039;&#039;: Negative values are down and positive values are up  where down and up are defined by the body axis.&lt;br /&gt;
::&#039;&#039;rollAngle&#039;&#039;: This is currently unused and does nothing.&lt;br /&gt;
::&#039;&#039;durationInSeconds&#039;&#039;: The duration to look in seconds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAtEnemy&#039;&#039;&#039;(float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Aims the character&#039;s eyes and head toward the current enemy for a period of time.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAtPosition&#039;&#039;&#039;(vector lookAtWorldPosition, float durationInSeconds); ====&lt;br /&gt;
&lt;br /&gt;
:This method is just like the vanilla Doom3 lookAt and lookAtEnemy methods, but instead of looking at an entity, it looks at a position in worldspace.  That is, it turns the head of the AI to look at the position.&lt;br /&gt;
::&#039;&#039;lookAtWorldPosition&#039;&#039;: position in space to look at&lt;br /&gt;
::&#039;&#039;durationInSeconds&#039;&#039;: duration to look in seconds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;meleeAttackToJoint&#039;&#039;&#039;(string joint, string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveOutOfRange&#039;&#039;&#039;(entity ent, float range); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;moveStatus&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToAttackPosition&#039;&#039;&#039;(entity ent, string attack_anim); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToCover&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToCoverFrom&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToEnemyHeight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToEntity&#039;&#039;&#039;(entity destination); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToPosition&#039;&#039;&#039;(vector position); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;muzzleFlash&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;numSmokeEmitters&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the # of emitters defined by &#039;smokeParticleSystem&#039; in the entitydef&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;performRelight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Deal with doused lights.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playAndLipSync&#039;&#039;&#039;(string soundName, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Play the given sound, using the given lipsync animation. The lipsync animation should just be a simple non-loopable animation of the mouth opening in a linear fashion. The code will select individual frames from this to construct a simple lipsyncing effect which is in time with the sound.  Returns the length of the played sound in seconds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playCustomAnim&#039;&#039;&#039;(string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Plays the given animation on legs and torso. Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;preBurn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;predictEnemyPos&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Tries to predict the player&#039;s movement based on the AAS and his direction of movement.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;processBlindStim&#039;&#039;&#039;(entity stimSource, float skipVisibilityCheck); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;processVisualStim&#039;&#039;&#039;(entity stimSource); ====&lt;br /&gt;
&lt;br /&gt;
:Use this call to let the AI react to a visual stim (coming from the source entity).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;pushPointIntoAAS&#039;&#039;&#039;(vector post); ====&lt;br /&gt;
&lt;br /&gt;
:Tries to push the point into a valid AAS area&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pushState&#039;&#039;&#039;(string stateName); ====&lt;br /&gt;
&lt;br /&gt;
:Pushes the state with the given name, current one is postponed.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;radiusDamageFromJoint&#039;&#039;&#039;(string jointname, string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;randomPath&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restartPatrol&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restoreMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;saveMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAcuity&#039;&#039;&#039;(string type, float val); ====&lt;br /&gt;
&lt;br /&gt;
:ai generalized alerts&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAlertGracePeriod&#039;&#039;&#039;(float frac, float duration, float count); ====&lt;br /&gt;
&lt;br /&gt;
:This starts the alert grace period for an AI. Should be called in the same frame as the alert that pushes them into a higher state.&lt;br /&gt;
::&#039;&#039;frac&#039;&#039;: the fraction of the alert below which they should ignore alerts during the grace period.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: the duration of the period in seconds&lt;br /&gt;
::&#039;&#039;count&#039;&#039;: the number of alerts ignored above which the grace period is invalid&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAlertLevel&#039;&#039;&#039;(float newLevel); ====&lt;br /&gt;
&lt;br /&gt;
:Set the alert level (AI_AlertLevel). This should always be called instead of setting AI_AlertLevel directly.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAudThresh&#039;&#039;&#039;(float val); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setBoneMod&#039;&#039;&#039;(float allowBoneMod); ====&lt;br /&gt;
&lt;br /&gt;
:Enables or disables head looking (may be obsolete).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setEnemy&#039;&#039;&#039;(entity enemy); ====&lt;br /&gt;
&lt;br /&gt;
:Make the given entity an enemy.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFlyOffset&#039;&#039;&#039;(float offset); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the preferred height relative to the player&#039;s view height to fly at.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFlySpeed&#039;&#039;&#039;(float speed); ====&lt;br /&gt;
&lt;br /&gt;
:Set the speed flying creatures move at. Also sets speed for moveTypeSlide.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setMoveType&#039;&#039;&#039;(float movetype); ====&lt;br /&gt;
&lt;br /&gt;
:Set the current movetype.  movetypes are defined in tdm_ai.script&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSmokeVisibility&#039;&#039;&#039;(float particle_num, float on); ====&lt;br /&gt;
&lt;br /&gt;
:enables/disables smoke particles on bones.  pass in the particle #, or ALL_PARTICLES for turning on/off all particle systems. particles are spawned in the order they appear in the entityDef&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTalkState&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:Sets whether the player can talk to this character or not.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTalkTarget&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the entity (player) trying to talk to the character&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTurnRate&#039;&#039;&#039;(float rate); ====&lt;br /&gt;
&lt;br /&gt;
:Set the rate the character turns at&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shrivel&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;slideTo&#039;&#039;&#039;(vector position, float time); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;spawnThrowableProjectile&#039;&#039;&#039;(string projectileName, string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:This method spawns a projectile of the type named by the caller and attaches it to the joint given by the caller.  The projectile becomes the AI&#039;s firable projectile. Returns a pointer to a projectile entity that can be  thrown by the AI. You can use AI_LaunchMissle (e* = launchMissle(v,v) ) to throw the stone.&lt;br /&gt;
::&#039;&#039;projectileName&#039;&#039;: The name of the projectile to spawn (as seen in a .def file) Must be descended from idProjectile&lt;br /&gt;
::&#039;&#039;jointName&#039;&#039;: The name of the joint on the model to which the particle should be attached for throwing. If this is NULL or the empty string, then it is attached to the model center.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopPatrol&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops an AI from patrolling&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopRagdoll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:turns off the ragdoll&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopThinking&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;switchState&#039;&#039;&#039;(string stateName); ====&lt;br /&gt;
&lt;br /&gt;
:Switches to the state with the given name, current one is ended.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testAnimAttack&#039;&#039;&#039;(string animname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testAnimMove&#039;&#039;&#039;(string animname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testAnimMoveTowardEnemy&#039;&#039;&#039;(string animname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testChargeAttack&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testMeleeAttack&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testMoveToPosition&#039;&#039;&#039;(vector position); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;throwAF&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;throwMoveable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceBetweenEntities&#039;&#039;&#039;(entity source, entity dest); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance between two entities.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceBetweenPoints&#039;&#039;&#039;(vector source, vector dest); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance between two points.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceToEntity&#039;&#039;&#039;(entity destination); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance to entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceToPoint&#039;&#039;&#039;(vector destination); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance to point.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;triggerParticles&#039;&#039;&#039;(string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;turnTo&#039;&#039;&#039;(float yaw); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;turnToEntity&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;turnToPos&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;visScan&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Checks for enemies or player in the AI&#039;s FOV, using light level and distance. For now the check is only done on the player.  Returns a reference to the sighted actor.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitAction&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;wakeOnFlashlight&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:Tells the monster to activate when flashlight shines on them.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;wander&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
=== idTestModel ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;leftFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to left foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rightFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to right foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
=== CBinaryFrobMover ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Close&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Closes the frobmover, regardless of its previous state. Mover must be open, otherwise nothing happens.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;GetFractionalPosition&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a fraction between 0.00 (closed) and 1.00 (open).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;IsLocked&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true (nonzero) if the mover is currently locked.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;IsOpen&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true (nonzero) if the mover is open, which is basically the same as &amp;quot;not closed&amp;quot;. A mover is considered closed when it is at its close position.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;IsPickable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true (nonzero) if this frobmover is pickable.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Lock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Locks the mover. Calls to Open() will not succeed after this call. &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Open&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Opens the frobmover, regardless of its previous state. The mover will not move when it&#039;s locked. &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;TDM_Lock_OnLockPicked&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;TDM_Lock_StatusUpdate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ToggleLock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the lock state. Unlocked movers will be locked and vice versa. The notes above concerning Unlock() still apply if this call unlocks the mover. &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ToggleOpen&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the mover state. Closes when fully open, opens when fully closed. If the mover is &amp;quot;interrupted&amp;quot; (e.g. when the player frobbed the mover in between), the move direction depends on the state of the internal &amp;quot;intent_open&amp;quot; flag. &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Unlock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Unlocks the mover. Calls to Open() will succeed after this call. Depending on the value of the spawnarg &amp;quot;open_on_unlock&amp;quot; the mover might automatically open after this call. &lt;br /&gt;
&lt;br /&gt;
=== idBrittleFracture ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dampenSound&#039;&#039;&#039;(float dampen); ====&lt;br /&gt;
&lt;br /&gt;
:Toggle whether the shattering sound is dampened on the window, e.g., when covered by moss.&lt;br /&gt;
::&#039;&#039;dampen&#039;&#039;: 1 = dampened, 0 = not dampened&lt;br /&gt;
&lt;br /&gt;
=== idCameraView ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idCameraAnim ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;start&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Starts a spline or anim camera moving.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stop&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops a spline or anim camera moving.&lt;br /&gt;
&lt;br /&gt;
=== idFuncEmitter ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;emitterAddModel&#039;&#039;&#039;(string modelName, vector modelOffset); ====&lt;br /&gt;
&lt;br /&gt;
:Adds a new particle (or regular, if you wish) model to the emitter, located at modelOffset units away from the emitter&#039;s origin.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;emitterGetNumModels&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of models/particles this emitter has. Always &amp;gt;= 1.&lt;br /&gt;
&lt;br /&gt;
=== idEntity ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activateContacts&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Activate objects sitting on this object.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activateTargets&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Causes this entity to activate all it&#039;s targets. Similar to how a trigger activates entities.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addInvItem&#039;&#039;&#039;(entity inv_item); ====&lt;br /&gt;
&lt;br /&gt;
:Adds the given item to the inventory. Depending on the type the passed entity will be removed from the game (as for loot items) or hidden.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addItemToInv&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Adds the entity to the given entity&#039;s inventory. Depending on the type the entity will be removed from the game (as for loot items) or hidden. Example: $book-&amp;gt;addItemToInv($player1);&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addTarget&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Add a target to this entity.&lt;br /&gt;
::&#039;&#039;target&#039;&#039;: the entity to add as target&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;applyImpulse&#039;&#039;&#039;(entity source, float bodyid, vector point, vector impulse); ====&lt;br /&gt;
&lt;br /&gt;
:Applies an impulse to the entity. Example: entity.applyImpulse($player1, 0, entity.getOrigin(), &#039;0 0 2&#039;);&lt;br /&gt;
::&#039;&#039;source&#039;&#039;: Pass $null_entity or the entity that applies the impulse&lt;br /&gt;
::&#039;&#039;bodyid&#039;&#039;: For articulated figures, ID of the body, 0 for the first (main) body. Otherwise use 0.&lt;br /&gt;
::&#039;&#039;point&#039;&#039;: Point on the body where the impulse is applied to&lt;br /&gt;
::&#039;&#039;impulse&#039;&#039;: Vector of the impulse&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bind&#039;&#039;&#039;(entity master); ====&lt;br /&gt;
&lt;br /&gt;
:Fixes this entity&#039;s position and orientation relative to another entity, such that when the master entity moves, so does this entity.&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: the entity to bind to&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bindPosition&#039;&#039;&#039;(entity master); ====&lt;br /&gt;
&lt;br /&gt;
:Fixes this entity&#039;s position (but not orientation) relative to another entity, such that when the master entity moves, so does this entity.&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: the entity to bind to&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bindToBody&#039;&#039;&#039;(entity master, float bodyID, float orientated); ====&lt;br /&gt;
&lt;br /&gt;
:Bind to AF body&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: entity to bind to&lt;br /&gt;
::&#039;&#039;bodyID&#039;&#039;: AF body ID to bind to&lt;br /&gt;
::&#039;&#039;orientated&#039;&#039;: binds the orientation as well as position, if set to 1&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bindToJoint&#039;&#039;&#039;(entity master, string boneName, float rotateWithMaster); ====&lt;br /&gt;
&lt;br /&gt;
:Fixes this entity&#039;s position and orientation relative to a bone on another entity, such that when the master&#039;s bone moves, so does this entity.&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: the entity to bind to&lt;br /&gt;
::&#039;&#039;boneName&#039;&#039;: the bone name&lt;br /&gt;
::&#039;&#039;rotateWithMaster&#039;&#039;: -&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;cacheSoundShader&#039;&#039;&#039;(string shaderName); ====&lt;br /&gt;
&lt;br /&gt;
:Ensure the specified sound shader is loaded by the system. Prevents cache misses when playing sound shaders.&lt;br /&gt;
::&#039;&#039;shaderName&#039;&#039;: the sound shader to cache&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;callFunction&#039;&#039;&#039;(string functionName); ====&lt;br /&gt;
&lt;br /&gt;
:Calls a function on an entity&#039;s script object. See also callGlobalFunction().&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;callGlobalFunction&#039;&#039;&#039;(string functionName, entity other); ====&lt;br /&gt;
&lt;br /&gt;
:calls a global function and passes the other entity along as the first argument calls the function in a new thread, so it continues executing in the current thread right away (unlike entity.callFunction( &amp;quot;blah&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;callGui&#039;&#039;&#039;(float handle, string namedEvent); ====&lt;br /&gt;
&lt;br /&gt;
:Calls a named event in a GUI.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canBeUsedBy&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the entity can be used by the argument entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSeeEntity&#039;&#039;&#039;(entity target, float useLighting); ====&lt;br /&gt;
&lt;br /&gt;
:This is a general version of idAI::canSee, that can be used by all entities. It doesn&#039;t regard FOV, it just performs a trace to check whether the target is occluded by world geometry. Is probably useful for stim/response as well Pass useLighting = true to take the lighting of the target entity into account. Use &amp;quot;isEntityHidden&amp;quot; as a script event with a threshold. The constant threshold value for useLighting is defined within the SDK in game/entity.h.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeEntityRelation&#039;&#039;&#039;(entity ent, float relationChange); ====&lt;br /&gt;
&lt;br /&gt;
:This changes the current relation to an entity by adding the new amount.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeInvIcon&#039;&#039;&#039;(string name, string category, string icon); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the inventory icon of the given item in the given category to &amp;lt;icon&amp;gt;.&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: name of the item&lt;br /&gt;
::&#039;&#039;category&#039;&#039;: the item&#039;s category&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeInvItemCount&#039;&#039;&#039;(string name, string category, float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Decreases the inventory item stack count by amount. The item is addressed using the name and category of the item. These are usually defined on the inventory item entity (&amp;quot;inv_name&amp;quot;, &amp;quot;inv_category&amp;quot;)  Amount can be both negative and positive.&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: name of the item&lt;br /&gt;
::&#039;&#039;category&#039;&#039;: the item&#039;s category&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeInvLightgemModifier&#039;&#039;&#039;(string name, string category, float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the lightgem modifier value of the given item. Valid arguments are between 0 and 32 (which is the maximum lightgem value).&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: name of the item&lt;br /&gt;
::&#039;&#039;category&#039;&#039;: the item&#039;s category&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;changeLootAmount&#039;&#039;&#039;(float type, float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Changes the loot amount of the given Type (e.g. GOODS) by &amp;lt;amount&amp;gt;.  The mission statisic for loot found gets changed too.  The new value of the changed type is returned (e.g. the new GOODS value if this has been changed).  Note: The LOOT_TOTAL type can&#039;t be changed and 0 is returned.&lt;br /&gt;
::&#039;&#039;type&#039;&#039;: one of: LOOT_GOLD, LOOT_GOODS, LOOT_JEWELRY&lt;br /&gt;
::&#039;&#039;amount&#039;&#039;: can be negative&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;checkAbsence&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:description missing&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;copyBind&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:copy bind information of other to this entity (i.e., bind this entity to the same entity that other is bound to)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;createOverlay&#039;&#039;&#039;(string guiFile, float layer); ====&lt;br /&gt;
&lt;br /&gt;
:Creates a GUI overlay. (must be used on the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;CreateTimer&#039;&#039;&#039;(float stimId, float hour, float minutes, float seconds, float milliseconds); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;damage&#039;&#039;&#039;(entity inflictor, entity attacker, vector dir, string damageDefName, float damageScale); ====&lt;br /&gt;
&lt;br /&gt;
:Deals damage to this entity (gets translated into the idEntity::Damage() method within the SDK).&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: the entity causing the damage (maybe a projectile)&lt;br /&gt;
::&#039;&#039;attacker&#039;&#039;: the &amp;quot;parent&amp;quot; entity of the inflictor, the one that is responsible for the inflictor (can be the same)&lt;br /&gt;
::&#039;&#039;dir&#039;&#039;: the direction the attack is coming from.&lt;br /&gt;
::&#039;&#039;damageDefName&#039;&#039;: the name of the damage entityDef to know what damage is being dealt to &amp;lt;self&amp;gt; (e.g. &amp;quot;damage_lava&amp;quot;)&lt;br /&gt;
::&#039;&#039;damageScale&#039;&#039;: the scale of the damage (pass 1.0 as default, this should be ok).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;destroyOverlay&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Destroys a GUI overlay. (must be used on the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;distanceTo&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the distance of this entity to another entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;distanceToPoint&#039;&#039;&#039;(vector point); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the distance of this entity to a point.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;extinguishLights&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Extinguishes all lights (i.e. the &amp;lt;self&amp;gt; entity plus all bound lights)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeSound&#039;&#039;&#039;(float channel, float newLevel, float fadeTime); ====&lt;br /&gt;
&lt;br /&gt;
:Fades the sound on this entity to a new level over a period of time.  Use SND_CHANNEL_ANY for all currently playing sounds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;frob&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Frobs the entity (i.e. simulates a frob action performed by the player). Returns TRUE if the entity is frobable, FALSE otherwise.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;frobHilight&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:ishtvan: Tries to make the entity frobhilight or not&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current orientation of this entity (relative to bind parent if any).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAngularVelocity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current angular velocity of this entity. The angular velocity of a physics object is a vector that passes through the center of mass. The direction of this vector defines the axis of rotation and the magnitude defines the rate of rotation about the axis in radians per second.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getBindChild&#039;&#039;&#039;(float ind); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the ind_th bind child of this entity or NULL if index is invalid. NOTE: indices start at zero&lt;br /&gt;
::&#039;&#039;ind&#039;&#039;: child index&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getBindMaster&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity&#039;s bindmaster&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getBoolKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the boolean value of a specific spawn arg, defaulting to false.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getClipMask&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the clipmask of the physics object.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getColor&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the color of this entity (shader parms Parm0, Parm1, Parm2).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getContents&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the contents of the physics object.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvCategory&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the currently highlighted inventory category.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvIcon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the icon of the currently highlighted inventory item.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getCurInvItemEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently highlighted inventory item entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvItemId&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the currently highlighted inventory item (the one defined in &amp;quot;inv_item_id&amp;quot;). Most items will return an empty string, unless the &amp;quot;inv_item_id&amp;quot; is set on purpose.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvItemName&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the currently highlighted inventory item (the one defined in &amp;quot;inv_name&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getEntityFlag&#039;&#039;&#039;(string flagName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the value of the specified entity flag.&lt;br /&gt;
::&#039;&#039;flagName&#039;&#039;: Can be one of (case insensitive): 	&lt;br /&gt;
notarget: if true never attack or target this entity 	&lt;br /&gt;
noknockback: if true no knockback from hits 	&lt;br /&gt;
takedamage: if true this entity can be damaged 	&lt;br /&gt;
hidden: if true this entity is not visible 	&lt;br /&gt;
bindOrientated: if true both the master orientation is used for binding 	&lt;br /&gt;
solidForTeam: if true this entity is considered solid when a physics team mate pushes entities 	&lt;br /&gt;
forcePhysicsUpdate: if true always update from the physics whether the object moved or not 	&lt;br /&gt;
selected: if true the entity is selected for editing 	&lt;br /&gt;
neverDormant: if true the entity never goes dormant 	&lt;br /&gt;
isDormant: if true the entity is dormant 	&lt;br /&gt;
hasAwakened: before a monster has been awakened the first time, use full PVS for dormant instead of area-connected 	&lt;br /&gt;
invisible: if true this entity cannot be seen 	&lt;br /&gt;
inaudible: if true this entity cannot be heard &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getEntityKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the entity specified by the spawn arg.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getFloatKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the floating point value of a specific spawn arg, defaulting to 0.0f.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getGui&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the file currently loaded by a GUI.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getGuiFloat&#039;&#039;&#039;(float handle, string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getGuiInt&#039;&#039;&#039;(float handle, string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getGuiString&#039;&#039;&#039;(float handle, string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getHealth&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current health.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getIntKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the integer value of a specific spawn arg, defaulting to 0.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the value of a specific spawn arg, defaulting to &#039;&#039;.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLightInPVS&#039;&#039;&#039;(float falloff, float scaling); ====&lt;br /&gt;
&lt;br /&gt;
:Computes the sum of all light in the PVS of the entity you call this on, and returns a vector with the sum.&lt;br /&gt;
::&#039;&#039;falloff&#039;&#039;: 0: no falloff with distance  0.5: sqrt(linear) falloff	(dist 100 =&amp;gt; 1/10)  1: linear falloff			(dist 100 =&amp;gt; 1/100)  2: square falloff			(dist 100 =&amp;gt; 1/10000) &lt;br /&gt;
::&#039;&#039;scaling&#039;&#039;: factor to scale the distance, can be used to lower/raise distance factor  after the linear or square scaling has been used good looking values are approx: sqrt(linear): 0.01, linear: 0.1, square 1.0&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLinearVelocity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current linear velocity of this entity. The linear velocity of a physics object is a vector that defines the translation of the center of mass in units per second.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getLocation&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the idLocation entity corresponding to the entity&#039;s current location. This was player-specific before, but is now available to all entities.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getLootAmount&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the amount of loot for the given type (e.g. LOOT_GOODS). Pass LOOT_TOTAL to return the sum of all loot types.&lt;br /&gt;
::&#039;&#039;type&#039;&#039;: one of: LOOT_GOLD, LOOT_GOODS, LOOT_JEWELRY, LOOT_TOTAL&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMass&#039;&#039;&#039;(float body); ====&lt;br /&gt;
&lt;br /&gt;
:Gets mass of a body for an entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getMaxs&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the maximum corner of this entity&#039;s bounding box.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getMins&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the minimum corner of this entity&#039;s bounding box.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getName&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of this entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getNextInvItem&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cycles the standard cursor to the next inventory item. Returns the item entity pointed to after the operation is complete.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextKey&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Searches for the name of a spawn arg that matches the prefix.  For example, passing in &amp;quot;attack_target&amp;quot; matches &amp;quot;attack_target1&amp;quot;, &amp;quot;attack_targetx&amp;quot;, &amp;quot;attack_target_enemy&amp;quot;,  etc. The returned string is the name of the key which can then be passed into functions like getKey() to lookup the value of that spawn arg.  This is useful for when you have multiple values to look up, like when you target multiple objects.  To find the next matching key, pass in the previous result and the next key returned will be the first one that matches after the previous result. Pass in &amp;quot;&amp;quot; to get the first match. Passing in a non-existent key is the same as passing in &amp;quot;&amp;quot;. Returns &amp;quot;&amp;quot; when no  more keys match.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current position of this entity (relative to bind parent if any).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getPrevInvItem&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cycles the standard cursor to the previous inventory item. Returns the item entity pointed to after the operation is complete.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetResponseEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity which should take the response. Some entities like AI heads are not responding themselves to stims, but relay it to another entity (i.e. the bodies they&#039;re attached to).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getShaderParm&#039;&#039;&#039;(float parm); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the value of the specified shader parm.&lt;br /&gt;
::&#039;&#039;parm&#039;&#039;: shader parm index&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getSize&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the size of this entity&#039;s bounding box.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getSoundVolume&#039;&#039;&#039;(string soundName); ====&lt;br /&gt;
&lt;br /&gt;
:Get the volume of the sound to play.&lt;br /&gt;
::&#039;&#039;soundName&#039;&#039;: the name of the sound&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTarget&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the requested target entity.&lt;br /&gt;
::&#039;&#039;num&#039;&#039;: The target number. Starts at 0.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTeam&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current team number.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVectorKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the vector value of a specific spawn arg, defaulting to &#039;0 0 0&#039;.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVinePlantLoc&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event important to the growing of vines from vine arrows&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVinePlantNormal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event important to the growing of vines from vine arrows&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getWorldOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current world-space position of this entity (regardless of any bind parent).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasFunction&#039;&#039;&#039;(string functionName); ====&lt;br /&gt;
&lt;br /&gt;
:checks if an entity&#039;s script object has a specific function&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;heal&#039;&#039;&#039;(string healDefName, float healScale); ====&lt;br /&gt;
&lt;br /&gt;
:Heals the entity this is called on using the specified healing entityDef. Returns 1 if the entity could be healed, 0 otherwise (if the entity is already at full health, for ex.)&lt;br /&gt;
::&#039;&#039;healDefName&#039;&#039;: the name of the entityDef containing the healing information (e.g. &amp;quot;heal_potion&amp;quot;)&lt;br /&gt;
::&#039;&#039;healScale&#039;&#039;: the scaling value to be applied to the healAmount found in the healEntityDef&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;hide&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Makes this entity invisible.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;hideByLODBias&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;inPVS&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns non-zero if this entity is in PVS. For lights, it will return true when the light&#039;s bounding box is in PVS, even though the light may not actually be in PVS. (an unmoved shadowcasting light may not be visible to PVS areas its bounding box intersects with)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isDroppable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get whether an item may be dropped from the inventory&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isEnemy&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given entity is an enemy.&lt;br /&gt;
::&#039;&#039;ent&#039;&#039;: The entity in question&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isFriend&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given entity is a friend.&lt;br /&gt;
::&#039;&#039;ent&#039;&#039;: The entity in question&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isFrobable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get whether the entity is frobable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isHidden&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:checks if the entity&#039;s model is invisible.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isHilighted&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if entity is currently frobhilighted.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isInLiquid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns 1 if the entity is in or touching a liquid.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isLight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isNeutral&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given entity is neutral.&lt;br /&gt;
::&#039;&#039;ent&#039;&#039;: The entity in question&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isType&#039;&#039;&#039;(string spawnclass); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if this entity is of the given type.&lt;br /&gt;
::&#039;&#039;spawnclass&#039;&#039;: spawn class name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;loadExternalData&#039;&#039;&#039;(string declFile, string prefix); ====&lt;br /&gt;
&lt;br /&gt;
:Load an external xdata declaration.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;noShadows&#039;&#039;&#039;(float noShadows); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the noShadow property on the entity to true/false, turning shadowcasting on or off for this entity.&lt;br /&gt;
::&#039;&#039;noShadows&#039;&#039;: 1 = disable shadows, 0 = enable shadows&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;noShadowsDelayed&#039;&#039;&#039;(float noShadows, float delay); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the noShadow property on the entity to true/false after delay in ms, turning shadows cast by this entity on or off.&lt;br /&gt;
::&#039;&#039;noShadows&#039;&#039;: 1 = disable shadows, 0 = enable shadows&lt;br /&gt;
::&#039;&#039;delay&#039;&#039;: delay in ms&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;numBindChildren&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of bound entities lower down in the bind chain than this entity, but be sure to give it the topmost bindmaster&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;numTargets&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of entities this entity has targeted.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;propagateSound&#039;&#039;&#039;(string soundName, float propVolMod, float msgTag); ====&lt;br /&gt;
&lt;br /&gt;
:Generates a propagated sound&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;propSound&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Sound propagation scriptfunctions on all entities propagate a sound directly without playing an audible sound&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;propSoundMod&#039;&#039;&#039;(string name, float volMod); ====&lt;br /&gt;
&lt;br /&gt;
:propagate a sound directly with a volume modifier&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;randomTarget&#039;&#039;&#039;(string ignoreName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a random targeted entity. Pass in an entity name to skip that entity.&lt;br /&gt;
::&#039;&#039;ignoreName&#039;&#039;: the name of an entity to ignore&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;rangedThreatTo&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Could this entity threaten the given (target) entity from a distance?&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeBinds&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Removes all attached entities from the game&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Removes a key from an object&#039;s spawnargs, so things like getNextKey() don&#039;t retrieve it.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: the spawnarg to remove&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeTarget&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Remove a target from this entity.&lt;br /&gt;
::&#039;&#039;target&#039;&#039;: the entity to remove from the targets&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;replaceInvItem&#039;&#039;&#039;(entity oldItem, entity newItem); ====&lt;br /&gt;
&lt;br /&gt;
:Replaces the entity &amp;lt;oldItem&amp;gt; with &amp;lt;newItem&amp;gt; in the inventory, while keeping &amp;lt;oldItem&amp;gt;&#039;s inventory position intact.  Note: The position guarantee only applies if &amp;lt;oldItem&amp;gt; and newItem  share the same category. If the categories are different, the position of &amp;lt;newItem&amp;gt; is likely to be different than the one of &amp;lt;oldItem&amp;gt;.  Note that &amp;lt;oldItem&amp;gt; will be removed from the inventory.  If &amp;lt;newItem&amp;gt; is the $null_entity, &amp;lt;oldItem&amp;gt; is just removed and no replacement happens.  Returns 1 if the operation was successful, 0 otherwise.&lt;br /&gt;
::&#039;&#039;newItem&#039;&#039;: can be $null_entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResetTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reskinCollisionModel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:For use after setSkin() on moveables and static models, if the CM needs to be refreshed to update surface properties after a skin change. CM will be regenerated from the original model file with the new skin.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseAdd&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseAllow&#039;&#039;&#039;(float type, entity responder); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseEnable&#039;&#039;&#039;(float type, float state); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 0 = disabled, 1 = enabled&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseIgnore&#039;&#039;&#039;(float type, entity responder); ====&lt;br /&gt;
&lt;br /&gt;
:This functions must be called on the stim entity. It will add the response to the ignore list, so that subsequent stims, should not trigger the stim anymore.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseRemove&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseSetAction&#039;&#039;&#039;(float type, string action); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseTrigger&#039;&#039;&#039;(entity source, float stimType); ====&lt;br /&gt;
&lt;br /&gt;
:Fires a response on this entity, without a stim (a stand-alone response, so to say)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;RestartTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restorePosition&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns this entity to the position stored in the &amp;quot;origin&amp;quot; spawn arg. This is the position the entity was spawned in unless the &amp;quot;origin&amp;quot; key is changed. Note that there is no guarantee that the entity won&#039;t be stuck in another entity when moved, so care should be taken to make sure that isn&#039;t possible.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAngles&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current orientation of this entity (relative to bind parent if any)&lt;br /&gt;
::&#039;&#039;angles&#039;&#039;: the new orientation&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAngularVelocity&#039;&#039;&#039;(vector velocity); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current angular velocity of this entity. The angular velocity of a physics object is a vector that passes through the center of mass. The direction of this vector defines the axis of rotation and the magnitude defines the rate of rotation about the axis in radians per second.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setClipMask&#039;&#039;&#039;(float clipMask); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the clipmask of the physics object.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setColor&#039;&#039;&#039;(float parm0, float parm1, float parm2); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the RGB color of this entity (shader parms Parm0, Parm1, Parm2).&lt;br /&gt;
::&#039;&#039;parm0&#039;&#039;: red&lt;br /&gt;
::&#039;&#039;parm1&#039;&#039;: green&lt;br /&gt;
::&#039;&#039;parm2&#039;&#039;: blue&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setContents&#039;&#039;&#039;(float contents); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the contents of the physics object.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;setCurInvCategory&#039;&#039;&#039;(string categoryName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the inventory cursor to the first item of the named category. Returns 1 on success, 0 on failure (e.g. wrong category name)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;setCurInvItem&#039;&#039;&#039;(string itemName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the inventory cursor to the named item. Returns: the item entity of the newly selected item (can be $null_entity).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setDroppable&#039;&#039;&#039;(float droppable); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether an item may be dropped from the inventory. &lt;br /&gt;
::&#039;&#039;droppable&#039;&#039;: if non-zero the item becomes droppable, when called with 0 the item becomes non-droppable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setEntityRelation&#039;&#039;&#039;(entity ent, float relation); ====&lt;br /&gt;
&lt;br /&gt;
:Set a relation to another entity, this can be friendly (&amp;gt;0), neutral(0) or hostile (&amp;lt;0)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFrobable&#039;&#039;&#039;(float frobable); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the entity is frobable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGui&#039;&#039;&#039;(float handle, string guiFile); ====&lt;br /&gt;
&lt;br /&gt;
:Loads a new file into an existing GUI.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiFloat&#039;&#039;&#039;(float handle, string key, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiInt&#039;&#039;&#039;(float handle, string key, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiString&#039;&#039;&#039;(float handle, string key, string val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiStringFromKey&#039;&#039;&#039;(float handle, string key, entity src, string srcKey); ====&lt;br /&gt;
&lt;br /&gt;
:This is a kludge. It is equivelant to: setGuiString( handle, key, src.getKey(srcKey) ) However, it&#039;s used to bypass the 127 char size limit on script strings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setHealth&#039;&#039;&#039;(float health); ====&lt;br /&gt;
&lt;br /&gt;
:Use these to set the health of AI or players (this also updates the AI_DEAD flag)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setKey&#039;&#039;&#039;(string key, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a key on this entity&#039;s spawn args. Note that most spawn args are evaluated when this entity spawns in, so this will not change the entity&#039;s behavior in most cases. This is chiefly for saving data the script needs in an entity for later retrieval.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: the spawnarg to set&lt;br /&gt;
::&#039;&#039;value&#039;&#039;: the value to store&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLinearVelocity&#039;&#039;&#039;(vector velocity); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current linear velocity of this entity in units per second. The linear velocity of a physics object is a vector that defines the translation of the center of mass in units per second.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setModel&#039;&#039;&#039;(string modelName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the model this entity uses&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setName&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the name of this entity.&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: the new name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setNeverDormant&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:enables or prevents an entity from going dormant&lt;br /&gt;
::&#039;&#039;enable&#039;&#039;: 1 = enable, 0 = disable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setOrigin&#039;&#039;&#039;(vector origin); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current position of this entity (relative to it&#039;s bind parent if any)&lt;br /&gt;
::&#039;&#039;origin&#039;&#039;: the new origin&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setOwner&#039;&#039;&#039;(entity owner); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the owner of this entity. Entities will never collide with their owner.&lt;br /&gt;
::&#039;&#039;owner&#039;&#039;: the entity which will be made owner of this entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setShaderParm&#039;&#039;&#039;(float parm, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the value of the specified shader parm.&lt;br /&gt;
::&#039;&#039;parm&#039;&#039;: shader parm index&lt;br /&gt;
::&#039;&#039;value&#039;&#039;: new value&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setShaderParms&#039;&#039;&#039;(float parm0, float parm1, float parm2, float parm3); ====&lt;br /&gt;
&lt;br /&gt;
:Sets shader parms Parm0, Parm1, Parm2, and Parm3 (red, green, blue, and alpha respectively).&lt;br /&gt;
::&#039;&#039;parm0&#039;&#039;: red&lt;br /&gt;
::&#039;&#039;parm1&#039;&#039;: green&lt;br /&gt;
::&#039;&#039;parm2&#039;&#039;: blue&lt;br /&gt;
::&#039;&#039;parm3&#039;&#039;: alpha&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSize&#039;&#039;&#039;(vector min, vector max); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the size of this entity&#039;s bounding box.&lt;br /&gt;
::&#039;&#039;min&#039;&#039;: minimum corner coordinates&lt;br /&gt;
::&#039;&#039;max&#039;&#039;: maximum corner coordinates&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSkin&#039;&#039;&#039;(string skinName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the skin this entity uses.  Set to &amp;quot;&amp;quot; to turn off the skin.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSolid&#039;&#039;&#039;(float solidity); ====&lt;br /&gt;
&lt;br /&gt;
:Set the solidity of the entity. If the entity has never been solid before it will be assigned solid and opaque contents/clip masks.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSoundVolume&#039;&#039;&#039;(float newLevel); ====&lt;br /&gt;
&lt;br /&gt;
:Set the volume of the sound to play, must be issued before startSoundShader.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTeam&#039;&#039;&#039;(float newTeam); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the team number of this entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;SetTimerState&#039;&#039;&#039;(float stimId, float state); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setWorldOrigin&#039;&#039;&#039;(vector origin); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current position of this entity (regardless of any bind parent).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;show&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Makes this entity visible if it has a model.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startFx&#039;&#039;&#039;(string fx); ====&lt;br /&gt;
&lt;br /&gt;
:Starts an FX on this entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;startSound&#039;&#039;&#039;(string sound, float channel, float netSync); ====&lt;br /&gt;
&lt;br /&gt;
:Plays the sound specified by the snd_* key/value pair on the channel and returns the length of the sound in seconds. This is the preferred method for playing sounds on an entity since it ensures that the sound is precached.&lt;br /&gt;
::&#039;&#039;sound&#039;&#039;: the spawnarg to reference, e.g. &#039;snd_move&#039;&lt;br /&gt;
::&#039;&#039;channel&#039;&#039;: the channel to play on&lt;br /&gt;
::&#039;&#039;netSync&#039;&#039;: -&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;startSoundShader&#039;&#039;&#039;(string shaderName, float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Plays a specific sound shader on the channel and returns the length of the sound in seconds. This is not the preferred method of playing a sound since you must ensure that the sound is loaded.&lt;br /&gt;
::&#039;&#039;shaderName&#039;&#039;: the sound shader to play&lt;br /&gt;
::&#039;&#039;channel&#039;&#039;: the channel to play the sound on&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StartTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimAdd&#039;&#039;&#039;(float type, float radius); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimClearIgnoreList&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:This clears the ignore list for the stim of the given type It can be used if an entity changes state in some way that it would no longer be ignored&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimEnable&#039;&#039;&#039;(float type, float state); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 0 = disabled, 1 = enabled&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimRemove&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopSound&#039;&#039;&#039;(float channel, float netSync); ====&lt;br /&gt;
&lt;br /&gt;
:Stops a specific sound shader on the channel.&lt;br /&gt;
::&#039;&#039;channel&#039;&#039;: the channel to stop playback on&lt;br /&gt;
::&#039;&#039;netSync&#039;&#039;: -&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StopTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;teleportTo&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:Teleports the entity to the position of the other entity, plus a possible offset and random offset (defined on the spawnargs of the entity to be teleported)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;touches&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if this entity touches the other entity.&lt;br /&gt;
::&#039;&#039;other&#039;&#039;: the entity to check against&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;unbind&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Detaches this entity from its master.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;wait&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends execution of the current thread for the given number of seconds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitFrame&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends execution of current thread for one game frame.&lt;br /&gt;
&lt;br /&gt;
=== idAnimatedEntity ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearAllJoints&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Removes any custom transforms on all joints.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearJoint&#039;&#039;&#039;(float jointnum); ====&lt;br /&gt;
&lt;br /&gt;
:Removes any custom transforms on the specified joint.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getJointAngle&#039;&#039;&#039;(float jointnum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the angular orientation of the joint in world space.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getJointHandle&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:Looks up the number of the specified joint. Returns INVALID_JOINT if the joint is not found.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getJointPos&#039;&#039;&#039;(float jointnum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the position of the joint in world space.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setJointAngle&#039;&#039;&#039;(float jointnum, float transform_type, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Modifies the orientation of the joint based on the transform type.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setJointPos&#039;&#039;&#039;(float jointnum, float transform_type, vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Modifies the position of the joint based on the transform type.&lt;br /&gt;
&lt;br /&gt;
=== CFrobButton ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Operate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Call this to operate this entity.&lt;br /&gt;
&lt;br /&gt;
=== CFrobDoor ===&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetDoorhandle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the handle entity of this door. Can return NULL (== $null_entity)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;OpenDoor&#039;&#039;&#039;(float master); ====&lt;br /&gt;
&lt;br /&gt;
:The OpenDoor method is necessary to give the FrobDoorHandles a  &amp;quot;low level&amp;quot; open routine. The CFrobDoor::Open() call is re-routed to the FrobDoorHandle::Tap() method, so there must be a way to actually let the door open. Which is what this method does.  Note: Shouldn&#039;t be called directly by scripters, call handle-&amp;gt;Tap() instead. Unless you know what you&#039;re doing.&lt;br /&gt;
&lt;br /&gt;
=== CFrobDoorHandle ===&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetDoor&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the associated door entity for this handle.&lt;br /&gt;
&lt;br /&gt;
=== CFrobHandle ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Tap&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Operates this handle.&lt;br /&gt;
&lt;br /&gt;
=== CFrobLever ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Operate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Call this to operate this entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Switch&#039;&#039;&#039;(float newState); ====&lt;br /&gt;
&lt;br /&gt;
:Move the lever to the on or off position (0 = off).&lt;br /&gt;
&lt;br /&gt;
=== CFrobLock ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Open&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Opens the frobmover, regardless of its previous state. The mover will not move when it&#039;s locked. &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;TDM_Lock_OnLockPicked&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;TDM_Lock_StatusUpdate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
=== CFrobLockHandle ===&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetLock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the associated lock of this handle.&lt;br /&gt;
&lt;br /&gt;
=== tdmFuncShooter ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shooterFireProjectile&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Fires a projectile.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;shooterGetAmmo&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the ammonition&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;shooterGetState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current state of this shooter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shooterSetAmmo&#039;&#039;&#039;(float newAmmo); ====&lt;br /&gt;
&lt;br /&gt;
:Set the ammonition&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shooterSetState&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:Activates / deactivates the shooter entity.&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 1 = active, 0 = inactive&lt;br /&gt;
&lt;br /&gt;
=== idEntityFx ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idItem ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;respawn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Respawn&lt;br /&gt;
&lt;br /&gt;
=== idMoveableItem ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;gib&#039;&#039;&#039;(string damageDefName); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
=== idLight ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeInLight&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the light on over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeOutLight&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the light out over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeToLight&#039;&#039;&#039;(vector color, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades the light to the given color over a given time.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getLightLevel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get level (intensity) of a light, &amp;lt;= 0.0 indicates it is off&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLightOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the light origin (independent of its visual model)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getLightParm&#039;&#039;&#039;(float parmNum); ====&lt;br /&gt;
&lt;br /&gt;
:Gets a shader parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getRadius&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the light radius.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getShader&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the shader name used by the light.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Off&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity off.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;On&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity on.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightOrigin&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Set origin of lights independent of model origin&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightParm&#039;&#039;&#039;(float parmNum, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a shader parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightParms&#039;&#039;&#039;(float parm0, float parm1, float parm2, float parm3); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the red/green/blue/alpha shader parms on the light and the model.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setRadius&#039;&#039;&#039;(float radius); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the size of the bounding box, x=y=z=radius.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setRadiusXYZ&#039;&#039;&#039;(float x, float y, float z); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the width/length/height of the light bounding box.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setShader&#039;&#039;&#039;(string shader); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the shader to be used for the light.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setStartedOff&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;smoking&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:flame is now smoking (1), or not (0)&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 1 = smoking, 0 = not smoking&lt;br /&gt;
&lt;br /&gt;
=== idListener ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idPlayerStart ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idActivator ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idPathCorner ===&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;randomPath&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
=== idDamagable ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idExplodable ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idForceField ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Toggle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the forcefield on and off.&lt;br /&gt;
&lt;br /&gt;
=== idAnimated ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;footstep&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;launchMissiles&#039;&#039;&#039;(string projectilename, string sound, string launchbone, string targetbone, float numshots, float framedelay); ====&lt;br /&gt;
&lt;br /&gt;
:Launches a projectile.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;leftFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to left foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rightFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to right foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startRagdoll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Switches to a ragdoll taking over the animation.&lt;br /&gt;
&lt;br /&gt;
=== idStaticEntity ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idFuncSmoke ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idVacuumSeparatorEntity ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idPortalEntity ===&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortalHandle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the portal handle.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getSoundLoss&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the sound loss value (dB).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSoundLoss&#039;&#039;&#039;(float loss); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound loss value (dB).&lt;br /&gt;
&lt;br /&gt;
=== idBeam ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idShaking ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idEarthQuake ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idFuncPortal ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idFuncAASPortal ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idFuncAASObstacle ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idPhantomObjects ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idPortalSky ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== tdmVine ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addDescendant&#039;&#039;&#039;(entity vine); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canWater&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearWatered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getPrime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;scaleVine&#039;&#039;&#039;(float factor); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPrime&#039;&#039;&#039;(entity vine); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setWatered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
=== idMoveable ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;becomeNonSolid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Makes the moveable non-solid for other entities.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableDamage&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:enable/disable damage&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isAtRest&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if object is not moving&lt;br /&gt;
&lt;br /&gt;
=== idMover ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;accelSound&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound to be played when the mover accelerates.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;accelTime&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the acceleration time. Set this acceleration time before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;accelTo&#039;&#039;&#039;(float speed, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates an acceleration to the given speed over the given time in seconds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bob&#039;&#039;&#039;(float speed, float phase, vector distance); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation back and forth along the given vector with the given speed and phase.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;closePortal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Closes the renderer portal associated with this mover.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;decelSound&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound to be played when the mover decelerates.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;decelTime&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the deceleration time. Set this deceleration time before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;decelTo&#039;&#039;&#039;(float speed, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a deceleration to the given speed over the given time in seconds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableSplineAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables aligning the mover with the spline direction.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableSplineAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables aligning the mover with the spline direction.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMoveSpeed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the movement speed.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMoveTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the movement time.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isMoving&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if a mover is moving&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isRotating&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if a mover is rotating&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;move&#039;&#039;&#039;(float angle, float distance); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation with the given distance in the given yaw direction. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveSound&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound to be played when the moving.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveTo&#039;&#039;&#039;(entity targetEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation to the position of an entity. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToPos&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation to an absolute position. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;openPortal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Opens the renderer portal associated with this mover.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeInitialSplineAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Subtracts the initial spline angles to maintain the initial orientation of the mover.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotate&#039;&#039;&#039;(vector angleSpeed); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation with the given angular speed. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateDownTo&#039;&#039;&#039;(float axis, float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation about the given axis by decreasing the current angle towards the given angle. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateOnce&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation towards the current angles plus the given Euler angles. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateTo&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation towards the given Euler angles. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateUpTo&#039;&#039;&#039;(float axis, float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation about the given axis by increasing the current angle towards the given angle. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;speed&#039;&#039;&#039;(float speed); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the movement speed. Set this speed before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startSpline&#039;&#039;&#039;(entity spline); ====&lt;br /&gt;
&lt;br /&gt;
:Starts moving along a spline stored on the given entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopMoving&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops any translational movement.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopRotating&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops any rotational movement.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopSpline&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops moving along a spline.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;sway&#039;&#039;&#039;(float speed, float phase, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation back and forth along the given angles with the given speed and phase.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;time&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the movement time. Set this time before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
=== idMover_Binary ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;closePortal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Closes the renderer portal associated with this mover.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;openPortal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Opens the renderer portal associated with this mover.&lt;br /&gt;
&lt;br /&gt;
=== idRotater ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idRiser ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idPlayer ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeWeaponName&#039;&#039;&#039;(string weaponName, string displayName); ====&lt;br /&gt;
&lt;br /&gt;
:Changes the display name of the given weapon item to something different. Pass an empty string to reset the display name to the definition as found in the weaponDef.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeWeaponProjectile&#039;&#039;&#039;(string weaponName, string projectileDefName); ====&lt;br /&gt;
&lt;br /&gt;
:Changes the projectile entityDef name of the given weapon (e.g. &amp;quot;broadhead&amp;quot;) to the specified entityDef (e.g. &amp;quot;atdm:projectile_broadhead&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;checkAAS&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearActiveInventoryMap&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clear the active inventory map entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearActiveInventoryMapEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clear the active inventory map entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearMouseDeadTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;customDeath&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;deathMenu&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Lowers and disables the player weapon.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables the player weapon.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;endZoom&#039;&#039;&#039;(float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Starts the zoom out event, which performs a gradual transition back to the default FOV. May be called during a transition as well to intercept a pending zoom in transition.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: duration of the transition in msec&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;exitTeleporter&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getButtons&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the button state from the current user command.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getCalibratedLightgemValue&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the calibrated light gem value.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurrentWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns weaponX where X is the number of the weapon the player is currently holding.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurWeaponName&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the current weapon, as defined by &amp;quot;inv_weapon_name&amp;quot; in the weaponDef.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getDragged&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently dragged body. Returns $null_entity if the body is shouldered, the player has nothing in his hands, or he has a non-AF entity in his hands. See also getShouldered(), getGrabbed() and getFrobbed().&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getFov&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:This returns the current FOV of the player. You can modify the current FOV with startZoom() and endZoom().&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getFrobbed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently frobhilighted entity. This includes entities the player has in his hands. Sets &amp;quot;frob only used by&amp;quot; mode&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getGrabbed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently entity in the players hands. Returns $null_entity if the player has nothing in his hands Dragging or shouldering a body counts as grabbing it. See also getDragged(), getShouldered(), getFrobbed().&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getHinderance&#039;&#039;&#039;(string source); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get hinderance from a source.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getImmobilization&#039;&#039;&#039;(string source); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get immobilization from a source. Warning: Not a finalized version. It&#039;s subject to change, so use it at your own risk.)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getInventoryOverlay&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the default inventory overlay for the player. All other entities will return an invalid value.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMouseGesture&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the results of the last mouse gesture in enum form. (see the definition for MOUSEDIR_* for which numbers correspond to which directions)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the movement relative to the player&#039;s view angles from the current user command. vector_x = forward, vector_y = right, vector_z = up&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextHinderance&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get the next hinderance from a source.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextImmobilization&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get immobilization from a source. Warning: Not a finalized version. It&#039;s subject to change, so use it at your own risk.)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextTurnHinderance&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Get the next hinderance on the view turning from a source&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getObjectiveComp&#039;&#039;&#039;(float ObjNum, float CompNum); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get the state of custom objective components&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
::&#039;&#039;CompNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getObjectiveState&#039;&#039;&#039;(float ObjNum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current state of the objective with the number ObjNum.  State is one of the following: OBJ_INCOMPLETE = 0, OBJ_COMPLETE = 1, OBJ_INVALID = 2, OBJ_FAILED = 3&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getObjectiveVisible&#039;&#039;&#039;(float ObjNum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current visibility of the objective with the number ObjNum.&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getPreviousWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns weaponX where X is the number of the weapon the player was previously holding.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getShouldered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently shouldered body, otherwise $null_entity. See also getDragged(), getGrabbed() and getFrobbed().&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getTurnHinderance&#039;&#039;&#039;(string source); ====&lt;br /&gt;
&lt;br /&gt;
:* Get the hinderance on the view turning from a source&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getViewAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the player view angles.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getWeaponEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity for the player&#039;s weapon&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;giveHealthPool&#039;&#039;&#039;(float amount); ====&lt;br /&gt;
&lt;br /&gt;
:This increases/decreases the healthpool of the player by the given amount. The healthpool is gradually decreased over time, healing (damaging?) the player.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;heldEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity currently being held, or $null_entity if the player&#039;s hands are empty.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;holdEntity&#039;&#039;&#039;(entity entity); ====&lt;br /&gt;
&lt;br /&gt;
:Forces the player to hold an entity (e.g. puts it into the grabber). Drops whatever is in the player&#039;s hands if $null_entity is passed to it. Returns 1 if successful, 0 if not.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isLeaning&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get whether the player is leaning&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;missionFailed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;missionSuccess&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;mouseGestureFinished&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the player is not currently doing a mouse gesture.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;objectiveCompUnlatch&#039;&#039;&#039;(float ObjNum, float CompNum); ====&lt;br /&gt;
&lt;br /&gt;
:Unlatch an irreversible objective component that has latched into a state&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;objectiveUnlatch&#039;&#039;&#039;(float ObjNum); ====&lt;br /&gt;
&lt;br /&gt;
:Unlatch an irreversible objective that has latched into a state&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pauseGame&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Pauses the game. This should only be called for threads that are explicitly maintained by a special SDK method, because ordinary threads won&#039;t get executed during g_stopTime == true. Note: This is used by the objective GUI threads. Note: Must be called on the player entity, not the sys entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;playStartSound&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;readLightgemModifierFromWorldspawn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;resetWeaponProjectile&#039;&#039;&#039;(string weaponName); ====&lt;br /&gt;
&lt;br /&gt;
:Reloads the original projectile def name from the weaponDef. Used to revert a change made by the event changeWeaponProjectile().&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;resetZoom&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cancels any pending zoom transitions and resets the FOV to normal.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ropeRemovalCleanup&#039;&#039;&#039;(entity ropeEnt); ====&lt;br /&gt;
&lt;br /&gt;
:Called when rope arrow ropes are removed, removes stale pointers on the player object.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;saveGame&#039;&#039;&#039;(string filename); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;selectWeapon&#039;&#039;&#039;(string weapon); ====&lt;br /&gt;
&lt;br /&gt;
:Selects the weapon the player is holding.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setActiveInventoryMapEnt&#039;&#039;&#039;(entity mapEnt); ====&lt;br /&gt;
&lt;br /&gt;
:Notify the player about a new active map entity. This clears out any previously active maps.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFrobOnlyUsedByInv&#039;&#039;&#039;(float OnOff); ====&lt;br /&gt;
&lt;br /&gt;
:Engages or disengages a mode where we only frobhilight entities that can be used by our current inventory item. This also disables general frobactions and only allows &amp;quot;used by&amp;quot; frob actions.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setHinderance&#039;&#039;&#039;(string source, float mCap, float fCap); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set hinderance from a source.&lt;br /&gt;
::&#039;&#039;mCap&#039;&#039;: mCap values from all sources are multiplied together to define a cap&lt;br /&gt;
::&#039;&#039;fCap&#039;&#039;: fCap values are not additive, the smallest one among all the sources is used&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setImmobilization&#039;&#039;&#039;(string source, float type); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set immobilization from a source. Warning: Not a finalized version. It&#039;s subject to change, so use it at your own risk.)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightgemModifier&#039;&#039;&#039;(string modifierName, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the named lightgem modifier to a certain value. An example would be the player lantern: setLightgemModifier(&amp;quot;lantern&amp;quot;, 32). This way multiple modifiers can be set by concurrent script threads.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveComp&#039;&#039;&#039;(float ObjNum, float CompNum, float state); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set the state of custom objective components&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: objective number. Starts counting at 1&lt;br /&gt;
::&#039;&#039;CompNum&#039;&#039;: component number. Starts counting at 1&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 1 or 0 for true or false&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveEnabling&#039;&#039;&#039;(float ObjNum, string strIn); ====&lt;br /&gt;
&lt;br /&gt;
:Set an objective&#039;s enabling objectives (objectives that must be completed before that objective may be completed).&lt;br /&gt;
::&#039;&#039;strIn&#039;&#039;: takes the form of a string that is a space-delimited list of integer objectives representing the new enabling objectives. E.g. : &#039;1 2 3 4&#039;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveOngoing&#039;&#039;&#039;(float ObjNum, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets objective ongoing.&lt;br /&gt;
::&#039;&#039;val&#039;&#039;: 1 for true, 0 for false&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveOptional&#039;&#039;&#039;(float ObjNum, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets objective mandatory.&lt;br /&gt;
::&#039;&#039;val&#039;&#039;: 1 for true, 0 for false&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveState&#039;&#039;&#039;(float ObjNum, float State); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set the state of objectives from the script. For example, use this to invalidate an objective when something happens in your mission. The first argument is the numerical index of the objective (taking &#039;user&#039; objective indices, starting at 1). Choose from the following for the second argument: OBJ_INCOMPLETE, OBJ_COMPLETE, OBJ_INVALID, OBJ_FAILED. Use this on $player1 like $player1.setObjectiveState(1, OBJ_COMPLETE);&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveText&#039;&#039;&#039;(float ObjNum, string newText); ====&lt;br /&gt;
&lt;br /&gt;
:Modify the displayed text for an objective. Can also be a string template like #str_20000&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveVisible&#039;&#039;&#039;(float ObjNum, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets objective visibility.&lt;br /&gt;
::&#039;&#039;val&#039;&#039;: 1 for true, 0 for false&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPeekOverlayBackground&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the background overlay for peeking, depending on aspect ratio.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPeekView&#039;&#039;&#039;(float OnOff, vector origin); ====&lt;br /&gt;
&lt;br /&gt;
:Toggle whether we should use a view from a peek entity as the player&#039;s view&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSavePermissions&#039;&#039;&#039;(float permission); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
::&#039;&#039;permission&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSpyglassOverlayBackground&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the background overlay for the spyglass, depending on aspect ratio.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTurnHinderance&#039;&#039;&#039;(string source, float mCap, float fCap); ====&lt;br /&gt;
&lt;br /&gt;
:Set the hinderance on the view turning from a source&lt;br /&gt;
::&#039;&#039;mCap&#039;&#039;: mCap values from all sources are multiplied together to define a cap&lt;br /&gt;
::&#039;&#039;fCap&#039;&#039;: fCap values are not additive, the smallest one among all the sources is used&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setViewAngles&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the player view angles, e.g. make the player facing this direction. 0 0 0 is east (along the X axis in DR), 0 90 0 north (along the Y axis in DR) 0 180 0 west, 0 270 0 south.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startGamePlayTimer&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Resets the game play timer to zero and (re)starts it.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startMouseGesture&#039;&#039;&#039;(float key, float thresh, float test, float inverted, float turnHinderance, float decideTime, float deadTime); ====&lt;br /&gt;
&lt;br /&gt;
:Start tracking a mouse gesture that started when the key impulse was pressed. Discretizes analog mouse movement into a few different gesture possibilities. Impulse arg can also be a button, see the UB_* enum in usercmdgen.h. For now, only one mouse gesture check at a time.&lt;br /&gt;
::&#039;&#039;thresh&#039;&#039;: Waits until the threshold mouse input thresh is reached before deciding.&lt;br /&gt;
::&#039;&#039;test&#039;&#039;: determines which test to do (0 = up/down, 1 = left/right, 2 = 4 directions, 3 = 8 directions).&lt;br /&gt;
::&#039;&#039;inverted&#039;&#039;: inverts the movement if set to 1, does not if 0&lt;br /&gt;
::&#039;&#039;turnHinderance&#039;&#039;: Sets the max player view turn rate when checking this mouse gesture (0 =&amp;gt; player view locked, 1.0 =&amp;gt; no effect on view turning)&lt;br /&gt;
::&#039;&#039;decideTime&#039;&#039;: time in milliseconds after which the mouse gesture is auto-decided, in the event that the mouse movement threshold was not reached. A DecideTime of -1 means wait forever until the button is released.&lt;br /&gt;
::&#039;&#039;deadTime&#039;&#039;: how long after attack is pressed that mouse control remains dampened by the fraction turnHinderance.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startZoom&#039;&#039;&#039;(float duration, float startFOV, float endFOV); ====&lt;br /&gt;
&lt;br /&gt;
:Call this to start the zoom in event. The player FOV is gradually zoomed in until over the given timespan.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: duration of the transition in msec&lt;br /&gt;
::&#039;&#039;startFOV&#039;&#039;: The start FOV, this is clamped to [1..179]&lt;br /&gt;
::&#039;&#039;endFOV&#039;&#039;: The end FOV, this is clamped to [1..179]&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopFxFov&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopMouseGesture&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testEvent1&#039;&#039;&#039;(float float_pi, float int_beef, float float_exp, string string_tdm, float float_exp10, float int_food); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;testEvent2&#039;&#039;&#039;(float int_prevres, vector vec_123, float int_food, entity ent_player, entity ent_null, float float_pi, float float_exp); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;testEvent3&#039;&#039;&#039;(entity ent_prevres, vector vec_123, float float_pi, entity ent_player); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;triggerMissionEnd&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;unpauseGame&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Unpauses the game. Most scripts are not executed during g_stopTime == true and won&#039;t get into the position of calling this.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;wasDamaged&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Check if the player was damaged this frame.&lt;br /&gt;
&lt;br /&gt;
=== idProjectile ===&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getProjectileState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current state of the projectile. States are defined in tdm_defs.script&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;launch&#039;&#039;&#039;(vector start, vector dir, vector velocity); ====&lt;br /&gt;
&lt;br /&gt;
:Launches the projectile from &amp;lt;start&amp;gt; in direction &amp;lt;dir&amp;gt; with the given &amp;lt;velocity&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;TDM_Lock_OnLockPicked&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
=== CProjectileResult ===&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getActualStruckEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAxialDir&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getFinalAngVel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getFinalVel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getIncidenceAngle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getProjMass&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getStruckEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getSurfNormal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getSurfType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isVineFriendly&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Vine-arrow event&lt;br /&gt;
&lt;br /&gt;
=== CTarget_SetRelations ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_SetEntityRelation ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_ChangeEntityRelation ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idThread ===&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;acos&#039;&#039;&#039;(float cosine); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the angle in degrees with the given cosine.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;angToForward&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a forward vector for the given Euler angles.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;angToRight&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a right vector for the given Euler angles.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;angToUp&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns an up vector for the given Euler angles.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;asin&#039;&#039;&#039;(float sine); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the angle in degrees with the given sine.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;assert&#039;&#039;&#039;(float condition); ====&lt;br /&gt;
&lt;br /&gt;
:Breaks if the condition is zero. (Only works in debug builds.)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;cacheSoundShader&#039;&#039;&#039;(string shaderName); ====&lt;br /&gt;
&lt;br /&gt;
:Ensure the specified sound shader is loaded by the system. Prevents cache misses when playing sound shaders.&lt;br /&gt;
::&#039;&#039;shaderName&#039;&#039;: the sound shader to cache&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canPlant&#039;&#039;&#039;(vector traceStart, vector traceEnd, entity ignore, entity vine); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;ceil&#039;&#039;&#039;(float x); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the smallest integer that is greater than or equal to the given value.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearPersistantArgs&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clears data that persists between maps.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearSignalThread&#039;&#039;&#039;(float signalNum, entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Clears the script callback function set for when the given signal is raised on the given entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;copySpawnArgs&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:copies the spawn args from an entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;cos&#039;&#039;&#039;(float degrees); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the cosine of the given angle in degrees.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;CrossProduct&#039;&#039;&#039;(vector vec1, vector vec2); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the cross product of the two vectors.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debug_tdm_material&#039;&#039;&#039;(string file); ====&lt;br /&gt;
&lt;br /&gt;
:For temporary debuging purposes only. Should be removed eventually.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugArrow&#039;&#039;&#039;(vector color, vector start, vector end, float size, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugBounds&#039;&#039;&#039;(vector color, vector mins, vector maxs, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugCircle&#039;&#039;&#039;(vector color, vector origin, vector dir, float radius, float numSteps, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugLine&#039;&#039;&#039;(vector color, vector start, vector end, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;DotProduct&#039;&#039;&#039;(vector vec1, vector vec2); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the dot product of the two vectors.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;drawText&#039;&#039;&#039;(string text, vector origin, float scale, vector color, float align, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:text drawing for debugging. lifetime of 0 == 1 frame.&lt;br /&gt;
::&#039;&#039;align&#039;&#039;: 0 = left, 1 = center, 2 = right&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;emitParticle&#039;&#039;&#039;(string particle, float startTime, float diversity, vector origin, vector angle); ====&lt;br /&gt;
&lt;br /&gt;
:Start a particle effect in the world without using an entity emitter. Will emit one quad per particle stage when first called with sys.getTime() as the start time. Designed to be called once per frame with the same startTime each call to achieve a normal particle effect, or on demand with sys.getTime() as the startTime for finer grained control, 1 quad at a time. Returns True (1) if there are more particles to be emitted from the stage, False (0) if the stage has released all its quads.&lt;br /&gt;
::&#039;&#039;particle&#039;&#039;: String: name of particle effect.&lt;br /&gt;
::&#039;&#039;startTime&#039;&#039;: Game seconds since map start: use sys.getTime() for the first call unless you want to back-date the particle so that it starts part way through its cycle.&lt;br /&gt;
::&#039;&#039;diversity&#039;&#039;: Randomizer value between 0 and 1. All particles with the same diversity will have the same path and rotation. Use sys.random(1) for a random path.&lt;br /&gt;
::&#039;&#039;origin&#039;&#039;: Origin of the particle effect.&lt;br /&gt;
::&#039;&#039;angle&#039;&#039;: Axis for the particle effect. Use $&amp;lt;entityname&amp;gt;.getAngles() to align the particle to an entity. use &#039;0 0 0&#039; for an upright (world-aligned) particle effect.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;error&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Issues an error.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeIn&#039;&#039;&#039;(vector color, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades towards the given color over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeOut&#039;&#039;&#039;(vector color, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades from the given color over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeTo&#039;&#039;&#039;(vector color, float alpha, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades to the given color up to the given alpha over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;firstPerson&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns view control to the player entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;floor&#039;&#039;&#039;(float x); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the largest integer that is less than or equal to the given value.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getCurrentMissionNum&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of the current mission (0-based, the first mission has number 0).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getcvar&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string for a cvar.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getDifficultyLevel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns 0 (Easy), 1 (Medium) or 2 (Hard), depending on the difficulty level of the current mission.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getDifficultyName&#039;&#039;&#039;(float difficultyLevel); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the (translated) name of the difficulty level passed as the argument.&lt;br /&gt;
::&#039;&#039;difficultyLevel&#039;&#039;: 0 (Easy), 1 (Medium), 2 (Hard)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getEntity&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a reference to the entity with the specified name.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getFrameTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:returns the length of time between game frames.  this is not related to renderer frame rate.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getLocationPoint&#039;&#039;&#039;(vector point); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the idLocation entity corresponding to the specified point&#039;s location.&lt;br /&gt;
::&#039;&#039;point&#039;&#039;: point whose location to check&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getMainAmbientLight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity of the main ambient light.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMissionStatistic&#039;&#039;&#039;(string statisticName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns current mission statistic.&lt;br /&gt;
::&#039;&#039;statisticName&#039;&#039;: Can be one of (case insensitive): 	gamePlayTime: gameplay time in seconds 	damageDealt: damage dealt to enemies 	damageReceived: damage received by player 	healthReceived: health received by player 	pocketsPicked: pockets picked by player 	foundLoot: loot found by player 	missionLoot: total loot available in mission 	totalTimePlayerSeen: total time the player was seen by enemies in seconds. Updates only when AI lose sight of player 	numberTimesPlayerSeen: number of times player was seen by enemies 	numberTimesAISuspicious: number of times AI was &#039;observant&#039; or &#039;suspicious&#039;. A single AI passing through both alert levels will add 2 to the score. 	numberTimesAISearched: number of times AI was &#039;investigating&#039; or &#039;searching&#039;. A single AI passing through both alert levels will add 2 to the score. 	sightingScore: sighting score (number of times player was seen * weight) 	stealthScore: stealth score (sighting score + alerts * weights) 	killedByPlayer: number of enemies killed by player 	knockedOutByPlayer: number of enemies knocked out by player 	bodiesFound: number of times enemies have spotted a body 	secretsFound: number of secrets found by the player 	secretsTotal: total number of secrets in the mission &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getNextEntity&#039;&#039;&#039;(string key, string value, entity lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Discover all entities in the map. Returns $null_entity when no more found.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: Optional string: prefix for spawnarg key match. E.g. &amp;quot;target&amp;quot; will match &amp;quot;target&amp;quot;, &amp;quot;target1&amp;quot; etc.&lt;br /&gt;
::&#039;&#039;value&#039;&#039;: Optional string: spawnarg value to match. Can be used independently of &#039;&#039;key&#039;&#039;. If &#039;&#039;key&#039;&#039; is not set, all spawnargs will be checked for the value.&lt;br /&gt;
::&#039;&#039;lastMatch&#039;&#039;: Last match: search will start after this entity. Use $null_entity or pass an uninitialized entity variable to start a new search.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPersistantFloat&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the floating point value for the given persistent arg&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getPersistantString&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string for the given persistent arg&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getPersistantVector&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the vector for the given persistent arg&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortAISoundLoss&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:AI sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortPlayerSoundLoss&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Player sound loss  scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortSoundLoss&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getRelation&#039;&#039;&#039;(float team1, float team2); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTDMVersion&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the current TDM version as integer. The value will be 108 for v1.08, 109 for v1.09 and 200 for v2.00 etc.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTicsPerSecond&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:returns the number of game frames per second.  this is not related to renderer frame rate.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current game time in seconds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getTraceBody&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of the body part of the entity which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getTraceEndPos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the position the trace stopped due to a collision with solid geometry during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTraceEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a reference to the entity which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTraceFraction&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the fraction of movement completed during the last call to trace or tracePoint.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getTraceJoint&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of the skeletal joint closest to the location on the entity which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getTraceNormal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the normal of the hit plane during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getTraceSurfType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the type of the surface (i.e. metal, snow) which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;handleMissionEvent&#039;&#039;&#039;(entity objEnt, float eventType, string argument); ====&lt;br /&gt;
&lt;br /&gt;
:Generic interface for passing on mission events from scripts to the SDK. Available since TDM 1.02&lt;br /&gt;
::&#039;&#039;objEnt&#039;&#039;: the entity that triggered this event (e.g. a readable)&lt;br /&gt;
::&#039;&#039;eventType&#039;&#039;: a numeric identifier (enumerated both in MissionData.h and tdm_defs.script) specifying the type of event&lt;br /&gt;
::&#039;&#039;argument&#039;&#039;: an optional string parameter, eventtype-specific.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;influenceActive&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Checks if an influence is active&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;killthread&#039;&#039;&#039;(string threadName); ====&lt;br /&gt;
&lt;br /&gt;
:Kills all threads with the specified name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;log&#039;&#039;&#039;(float x); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the log of the given argument.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;logString&#039;&#039;&#039;(float logClass, float logType, string output); ====&lt;br /&gt;
&lt;br /&gt;
:This is the script counterpart to DM_LOG&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;music&#039;&#039;&#039;(string shaderName); ====&lt;br /&gt;
&lt;br /&gt;
:Starts playing background music.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;offsetRelation&#039;&#039;&#039;(float team1, float team2, float val); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;onSignal&#039;&#039;&#039;(float signalNum, entity ent, string functionName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a script callback function for when the given signal is raised on the given entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pause&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Pauses the current thread.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;pointInLiquid&#039;&#039;&#039;(vector point, entity ignoreEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Checks if a point is in a liquid, returns 1 if this is the case.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;pointIsInBounds&#039;&#039;&#039;(vector point, vector mins, vector maxs); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the point is within the bounds specified.&lt;br /&gt;
::&#039;&#039;point&#039;&#039;: test whether this point is in the bounds&lt;br /&gt;
::&#039;&#039;mins&#039;&#039;: minimal corner of the bounds&lt;br /&gt;
::&#039;&#039;maxs&#039;&#039;: maximal corner of the bounds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;pow&#039;&#039;&#039;(float x, float y); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the power of x to y.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;print&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Prints the given string to the console.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;println&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Prints the given line to the console.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;projectDecal&#039;&#039;&#039;(vector traceOrigin, vector traceEnd, entity passEntity, string decal, float decalSize, float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Performs a trace from the specified origin and end positions, then projects a decal in that direction.&lt;br /&gt;
::&#039;&#039;traceOrigin&#039;&#039;: Start of the trace.&lt;br /&gt;
::&#039;&#039;traceEnd&#039;&#039;: End of the trace.&lt;br /&gt;
::&#039;&#039;passEntity&#039;&#039;: This entity will be considered non-solid by the trace.&lt;br /&gt;
::&#039;&#039;decal&#039;&#039;: Decal to be projected.&lt;br /&gt;
::&#039;&#039;decalSize&#039;&#039;: Size of the decal quad.&lt;br /&gt;
::&#039;&#039;angle&#039;&#039;: Angle of the decal quad.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;radiusDamage&#039;&#039;&#039;(vector origin, entity inflictor, entity attacker, entity ignore, string damageDefName, float dmgPower); ====&lt;br /&gt;
&lt;br /&gt;
:damages entities within a radius defined by the damageDef.  inflictor is the entity  causing the damage and can be the same as the attacker (in the case   of projectiles, the projectile is the inflictor, while the attacker is the character  that fired the projectile).&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: the entity causing the damage&lt;br /&gt;
::&#039;&#039;ignore&#039;&#039;: an entity to not cause damage to&lt;br /&gt;
::&#039;&#039;dmgPower&#039;&#039;: scales the damage (for cases where damage is dependent on time)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;random&#039;&#039;&#039;(float range); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a random value X where 0 &amp;lt;= X &amp;lt; range.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;saveConDump&#039;&#039;&#039;(string cmd, string cmd); ====&lt;br /&gt;
&lt;br /&gt;
:Saves condump into FM directory; first argument is appended to dump filename, everything before last occurence of second argument is removed&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;say&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Multiplayer - Print this line on the network&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;sessionCommand&#039;&#039;&#039;(string cmd); ====&lt;br /&gt;
&lt;br /&gt;
:Sends the sessioncommand to the game&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setCamera&#039;&#039;&#039;(entity cameraEnt); ====&lt;br /&gt;
&lt;br /&gt;
:Turns over view control to the given camera entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setcvar&#039;&#039;&#039;(string name, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a cvar.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPersistantArg&#039;&#039;&#039;(string key, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a key/value pair that persists between maps&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPortAISoundLoss&#039;&#039;&#039;(float handle, float value); ====&lt;br /&gt;
&lt;br /&gt;
:AI sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPortPlayerSoundLoss&#039;&#039;&#039;(float handle, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Player sound loss scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPortSoundLoss&#039;&#039;&#039;(float handle, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setRelation&#039;&#039;&#039;(float team1, float team2, float val); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSecretsFound&#039;&#039;&#039;(float secrets); ====&lt;br /&gt;
&lt;br /&gt;
:Set how many secrets the player has found. Use getMissionStatistic() for getting the current value.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSecretsTotal&#039;&#039;&#039;(float secrets); ====&lt;br /&gt;
&lt;br /&gt;
:Set how many secrets exist in the map in total. Use getMissionStatistic() for getting the current value.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setShaderParm&#039;&#039;&#039;(float parm, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the value of the specified shader parm.&lt;br /&gt;
::&#039;&#039;parm&#039;&#039;: shader parm index&lt;br /&gt;
::&#039;&#039;value&#039;&#039;: new value&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSpawnArg&#039;&#039;&#039;(string key, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a key/value pair to be used when a new entity is spawned.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;sin&#039;&#039;&#039;(float degrees); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the sine of the given angle in degrees.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;spawn&#039;&#039;&#039;(string classname); ====&lt;br /&gt;
&lt;br /&gt;
:Creates an entity of the specified classname and returns a reference to the entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;SpawnFloat&#039;&#039;&#039;(string key, float default); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the floating point value for the given spawn argument.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;SpawnString&#039;&#039;&#039;(string key, string default); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string for the given spawn argument.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;SpawnVector&#039;&#039;&#039;(string key, vector default); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the vector for the given spawn argument.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;sqrt&#039;&#039;&#039;(float square); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the square root of the given number.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strFind&#039;&#039;&#039;(string text, string find, float casesensitive, float start, float end); ====&lt;br /&gt;
&lt;br /&gt;
:Return the position of the given substring, counting from 0, or -1 if not found.&lt;br /&gt;
::&#039;&#039;casesensitive&#039;&#039;: 0&lt;br /&gt;
::&#039;&#039;start&#039;&#039;: 0&lt;br /&gt;
::&#039;&#039;end&#039;&#039;: -1&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strLeft&#039;&#039;&#039;(string text, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a string composed of the first num characters&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strLength&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of characters in the string&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strMid&#039;&#039;&#039;(string text, float start, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a string composed of the characters from start to start + num&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strRemove&#039;&#039;&#039;(string text, string remove); ====&lt;br /&gt;
&lt;br /&gt;
:Replace all occurances of the given substring with &amp;quot;&amp;quot;. Example: StrRemove(&amp;quot;abba&amp;quot;,&amp;quot;bb&amp;quot;) results in &amp;quot;aa&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strReplace&#039;&#039;&#039;(string text, string remove, string replace); ====&lt;br /&gt;
&lt;br /&gt;
:Replace all occurances of the given string with the replacement string. Example: StrRemove(&amp;quot;abba&amp;quot;,&amp;quot;bb&amp;quot;,&amp;quot;ccc&amp;quot;) results in &amp;quot;accca&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strRight&#039;&#039;&#039;(string text, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a string composed of the last num characters&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strSkip&#039;&#039;&#039;(string text, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string following the first num characters&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strToFloat&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the numeric value of the given string.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strToInt&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the integer value of the given string.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;terminate&#039;&#039;&#039;(float threadNumber); ====&lt;br /&gt;
&lt;br /&gt;
:Terminates a thread.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;threadname&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the name of the current thread.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;trace&#039;&#039;&#039;(vector start, vector end, vector mins, vector maxs, float contents_mask, entity passEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the fraction of movement completed before the box from &#039;mins&#039; to &#039;maxs&#039; hits solid geometry when moving from &#039;start&#039; to &#039;end&#039;. The &#039;passEntity&#039; is considered non-solid during the move.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;tracePoint&#039;&#039;&#039;(vector start, vector end, float contents_mask, entity passEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the fraction of movement completed before the trace hits solid geometry when moving from &#039;start&#039; to &#039;end&#039;. The &#039;passEntity&#039; is considered non-solid during the move.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;translate&#039;&#039;&#039;(string input); ====&lt;br /&gt;
&lt;br /&gt;
:Translates a string (like #str_12345) into the current language&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;trigger&#039;&#039;&#039;(entity entityToTrigger); ====&lt;br /&gt;
&lt;br /&gt;
:Triggers the given entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;vecLength&#039;&#039;&#039;(vector vec); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the length of the given vector.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;vecNormalize&#039;&#039;&#039;(vector vec); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the normalized version of the given vector.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;VecRotate&#039;&#039;&#039;(vector vector, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Rotates a vector by the specified angles.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;VecToAngles&#039;&#039;&#039;(vector vec); ====&lt;br /&gt;
&lt;br /&gt;
:Returns Euler angles for the given direction.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;wait&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends execution of the current thread for the given number of seconds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitFor&#039;&#039;&#039;(entity mover); ====&lt;br /&gt;
&lt;br /&gt;
:Waits for the given entity to complete its move.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitForRender&#039;&#039;&#039;(entity e); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends the current thread until &#039;e&#039; might have been rendered. It&#039;s event based, so it doesn&#039;t waste CPU repeatedly checking inPVS(). e.inPVS() will very likely be true when the thread resumes. If e.inPVS() is true, calling waitForRender() will probably just wait a frame, unless D3 can figure out that the entity doesn&#039;t need to be rendered. Optimizations regarding shadowcasting lights may not apply to this function - it is based purely off whether or not the entity&#039;s bounding box is visible.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitForThread&#039;&#039;&#039;(float threadNumber); ====&lt;br /&gt;
&lt;br /&gt;
:Waits for the given thread to terminate.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitFrame&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends execution of current thread for one game frame.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;warning&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Issues a warning.&lt;br /&gt;
&lt;br /&gt;
=== idSecurityCamera ===&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSee&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getSecurityCameraState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the security camera&#039;s state. 1 = unalerted, 2 = suspicious, 3 = fully alerted, 4 = inactive, 5 = destroyed.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getSpotLight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the spotlight used by the camera. Returns null_entity if none is used.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Off&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity off.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;On&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity on.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSightThreshold&#039;&#039;&#039;(float sightThreshold); ====&lt;br /&gt;
&lt;br /&gt;
:Set the sight threshold of the security camera: how lit up the player&#039;s lightgem needs to be in order to be seen. 0.0 to 1.0&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_light&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Switches the spotlight on or off. Respects the security camera&#039;s power state.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_AI&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see AIs.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_animals&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see animals. Checked after seeAI or seeBodies.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_bodies&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see bodies.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_player&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see the player.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_sweep&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Enables or disables the camera&#039;s sweeping.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_light&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the spotlight on/off.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_AI&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see AIs.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_animals&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see bodies. Checked after seeAI or seeBodies.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_bodies&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see bodies.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_player&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see the player.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_sweep&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the camera sweep.&lt;br /&gt;
&lt;br /&gt;
=== Seed ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;cullAll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cull (remove from world) all entities.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
=== idSound ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Off&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity off.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;On&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity on.&lt;br /&gt;
&lt;br /&gt;
=== idTarget_Remove ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_Show ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_Damage ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SessionCommand ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_EndLevel ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_WaitForButton ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SetGlobalShaderTime ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SetShaderParm ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SetShaderTime ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_FadeEntity ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_LightFadeIn ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_LightFadeOut ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_Give ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SetModel ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SetInfluence ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SetKeyVal ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SetFov ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_CallObjectFunction ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_PostScriptEvent ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_EnableLevelWeapons ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_RemoveWeapons ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_FadeSoundClass ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_AddObjectives ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_SetObjectiveState ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_SetObjectiveVisibility ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_SetObjectiveComponentState ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_StartConversation ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_SetFrobable ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_CallScriptFunction ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_ChangeLockState ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_ChangeTarget ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_InterMissionTrigger ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_SetTeam ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_ItemRemove ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTrigger ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
=== idTrigger_Multi ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTrigger_EntityName ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTrigger_Timer ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTrigger_Count ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTrigger_Hurt ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTrigger_Fade ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTrigger_Touch ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idWeapon ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addToClip&#039;&#039;&#039;(float amount); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowDrop&#039;&#039;&#039;(float allow); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;ammoAvailable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Number of shots left in inventory&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;ammoInClip&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animDone&#039;&#039;&#039;(float channel, float blendOutFrames); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the animation playing on the given channel is completed considering a number of blend frames.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animIsPaused&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Return whether the given anim channel is paused&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;clipSize&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;createProjectile&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ejectBrass&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;flashlight&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getBlendFrames&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of frames to blend between animations on the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getLightParm&#039;&#039;&#039;(float parmNum); ====&lt;br /&gt;
&lt;br /&gt;
:Gets a shader parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getOwner&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the owning entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getWorldModel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity that controls the world model&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isInvisible&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;launchProjectiles&#039;&#039;&#039;(float num_projectiles, float spread, float fuseOffset, float launchPower, float dmgPower); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;melee&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;netEndReload&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;netReload&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;nextWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pauseAnim&#039;&#039;&#039;(float channel, float bPause); ====&lt;br /&gt;
&lt;br /&gt;
:Pause all animations playing on the given channel. NOTE: Can also be used used by idWeapons&lt;br /&gt;
::&#039;&#039;bPause&#039;&#039;: true = pause, false = unpause&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Do not use, this is part of TDM&#039;s internal mechanics. Use playCustomAnim() on AI.in scripts instead of this. Plays the given animation on the given channel. Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playCycle&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Continuously repeats the given animation on the given channel.  Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setBlendFrames&#039;&#039;&#039;(float channel, float blendFrame); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the number of frames to blend between animations on the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightParm&#039;&#039;&#039;(float parmNum, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a shader parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightParms&#039;&#039;&#039;(float parm0, float parm1, float parm2, float parm3); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the red/green/blue/alpha shader parms on the light and the model.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;showAttachment&#039;&#039;&#039;(string attName, float show); ====&lt;br /&gt;
&lt;br /&gt;
:Show or hide an attachment.&lt;br /&gt;
::&#039;&#039;show&#039;&#039;: 1 shows attachment, 0 hides it.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;showAttachmentInd&#039;&#039;&#039;(float index, float show); ====&lt;br /&gt;
&lt;br /&gt;
:Show or hide an attachment by array index.&lt;br /&gt;
::&#039;&#039;index&#039;&#039;: starts at 0&lt;br /&gt;
::&#039;&#039;show&#039;&#039;: 1 shows attachment, 0 hides it.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;totalAmmoCount&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Amount of ammo in inventory. since each shot may use more than 1 ammo, this is different than ammoAvailable()&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;useAmmo&#039;&#039;&#039;(float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Eats the specified amount of ammo&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponHolstered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponLowering&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponOutOfAmmo&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponReady&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponReloading&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponRising&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponState&#039;&#039;&#039;(string stateFunction, float blendFrames); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting]]&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=TDM_Script_Reference&amp;diff=29781</id>
		<title>TDM Script Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=TDM_Script_Reference&amp;diff=29781"/>
		<updated>2022-08-14T09:05:48Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: Formatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page has been generated automatically by the tdm_gen_script_event_doc console command.&lt;br /&gt;
&lt;br /&gt;
Generated by The Dark Mod 2.10, code revision 9853, last update: 2022-03-20 09:00&lt;br /&gt;
&lt;br /&gt;
{{tdm-scripting-reference-intro}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;toclimit-4&amp;quot;&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
= TDM Script Event Reference =&lt;br /&gt;
&lt;br /&gt;
== All Events ==&lt;br /&gt;
=== Alphabetic List ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;accelSound&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound to be played when the mover accelerates.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;accelTime&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the acceleration time. Set this acceleration time before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;accelTo&#039;&#039;&#039;(float speed, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates an acceleration to the given speed over the given time in seconds.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;acos&#039;&#039;&#039;(float cosine); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the angle in degrees with the given cosine.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CTarget_AddObjectives&#039;&#039;, &#039;&#039;CTarget_CallScriptFunction&#039;&#039;, &#039;&#039;CTarget_ChangeEntityRelation&#039;&#039;, &#039;&#039;CTarget_ChangeLockState&#039;&#039;, &#039;&#039;CTarget_ChangeTarget&#039;&#039;, &#039;&#039;CTarget_InterMissionTrigger&#039;&#039;, &#039;&#039;CTarget_ItemRemove&#039;&#039;, &#039;&#039;CTarget_SetEntityRelation&#039;&#039;, &#039;&#039;CTarget_SetFrobable&#039;&#039;, &#039;&#039;CTarget_SetObjectiveComponentState&#039;&#039;, &#039;&#039;CTarget_SetObjectiveState&#039;&#039;, &#039;&#039;CTarget_SetObjectiveVisibility&#039;&#039;, &#039;&#039;CTarget_SetRelations&#039;&#039;, &#039;&#039;CTarget_SetTeam&#039;&#039;, &#039;&#039;CTarget_StartConversation&#039;&#039;, &#039;&#039;idAFEntity_Generic&#039;&#039;, &#039;&#039;idAFEntity_WithAttachedHead&#039;&#039;, &#039;&#039;idAI&#039;&#039;, &#039;&#039;idActivator&#039;&#039;, &#039;&#039;idAnimated&#039;&#039;, &#039;&#039;idBeam&#039;&#039;, &#039;&#039;idBrittleFracture&#039;&#039;, &#039;&#039;idCameraAnim&#039;&#039;, &#039;&#039;idCameraView&#039;&#039;, &#039;&#039;idCombatNode&#039;&#039;, &#039;&#039;idDamagable&#039;&#039;, &#039;&#039;idEarthQuake&#039;&#039;, &#039;&#039;idEntityFx&#039;&#039;, &#039;&#039;idExplodable&#039;&#039;, &#039;&#039;idForceField&#039;&#039;, &#039;&#039;idFuncAASObstacle&#039;&#039;, &#039;&#039;idFuncAASPortal&#039;&#039;, &#039;&#039;idFuncPortal&#039;&#039;, &#039;&#039;idFuncSmoke&#039;&#039;, &#039;&#039;idItem&#039;&#039;, &#039;&#039;idLight&#039;&#039;, &#039;&#039;idListener&#039;&#039;, &#039;&#039;idMoveable&#039;&#039;, &#039;&#039;idMover&#039;&#039;, &#039;&#039;idMover_Binary&#039;&#039;, &#039;&#039;idPhantomObjects&#039;&#039;, &#039;&#039;idPlayerStart&#039;&#039;, &#039;&#039;idPortalSky&#039;&#039;, &#039;&#039;idRiser&#039;&#039;, &#039;&#039;idRotater&#039;&#039;, &#039;&#039;idShaking&#039;&#039;, &#039;&#039;idSound&#039;&#039;, &#039;&#039;idStaticEntity&#039;&#039;, &#039;&#039;idTarget_CallObjectFunction&#039;&#039;, &#039;&#039;idTarget_Damage&#039;&#039;, &#039;&#039;idTarget_EnableLevelWeapons&#039;&#039;, &#039;&#039;idTarget_EndLevel&#039;&#039;, &#039;&#039;idTarget_FadeEntity&#039;&#039;, &#039;&#039;idTarget_FadeSoundClass&#039;&#039;, &#039;&#039;idTarget_Give&#039;&#039;, &#039;&#039;idTarget_LightFadeIn&#039;&#039;, &#039;&#039;idTarget_LightFadeOut&#039;&#039;, &#039;&#039;idTarget_PostScriptEvent&#039;&#039;, &#039;&#039;idTarget_Remove&#039;&#039;, &#039;&#039;idTarget_RemoveWeapons&#039;&#039;, &#039;&#039;idTarget_SessionCommand&#039;&#039;, &#039;&#039;idTarget_SetFov&#039;&#039;, &#039;&#039;idTarget_SetGlobalShaderTime&#039;&#039;, &#039;&#039;idTarget_SetInfluence&#039;&#039;, &#039;&#039;idTarget_SetKeyVal&#039;&#039;, &#039;&#039;idTarget_SetModel&#039;&#039;, &#039;&#039;idTarget_SetShaderParm&#039;&#039;, &#039;&#039;idTarget_SetShaderTime&#039;&#039;, &#039;&#039;idTarget_Show&#039;&#039;, &#039;&#039;idTarget_WaitForButton&#039;&#039;, &#039;&#039;idTrigger_Count&#039;&#039;, &#039;&#039;idTrigger_EntityName&#039;&#039;, &#039;&#039;idTrigger_Fade&#039;&#039;, &#039;&#039;idTrigger_Hurt&#039;&#039;, &#039;&#039;idTrigger_Multi&#039;&#039;, &#039;&#039;idTrigger_Timer&#039;&#039;, &#039;&#039;idTrigger_Touch&#039;&#039;, &#039;&#039;idVacuumSeparatorEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activateContacts&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Activate objects sitting on this object.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activateTargets&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Causes this entity to activate all it&#039;s targets. Similar to how a trigger activates entities.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addDescendant&#039;&#039;&#039;(entity vine); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmVine&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addInvItem&#039;&#039;&#039;(entity inv_item); ====&lt;br /&gt;
&lt;br /&gt;
:Adds the given item to the inventory. Depending on the type the passed entity will be removed from the game (as for loot items) or hidden.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addItemToInv&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Adds the entity to the given entity&#039;s inventory. Depending on the type the entity will be removed from the game (as for loot items) or hidden. Example: $book-&amp;gt;addItemToInv($player1);&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addTarget&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Add a target to this entity.&lt;br /&gt;
::&#039;&#039;target&#039;&#039;: the entity to add as target&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addToClip&#039;&#039;&#039;(float amount); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;alert&#039;&#039;&#039;(string type, float val); ====&lt;br /&gt;
&lt;br /&gt;
:ai generalized alerts&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;alertAI&#039;&#039;&#039;(string type, float amount, entity actor); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
::&#039;&#039;type&#039;&#039;: alert type&lt;br /&gt;
::&#039;&#039;amount&#039;&#039;: alert amount&lt;br /&gt;
::&#039;&#039;actor&#039;&#039;: actor causing alert&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowDamage&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:The AI can take damage again.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowDrop&#039;&#039;&#039;(float allow); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowHiddenMovement&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:Normally, when hidden, monsters do not run physics. This enables physics when hidden.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowMovement&#039;&#039;&#039;(float allow); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;ammoAvailable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Number of shots left in inventory&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;ammoInClip&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;angToForward&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a forward vector for the given Euler angles.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;angToRight&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a right vector for the given Euler angles.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;angToUp&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns an up vector for the given Euler angles.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animDistance&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the distance that the anim travels. If the entity has multiple anims with animName, the distance may not match the anim that is played. Use chooseAnim to get a non-random anim and pass that string into animDistance.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animDone&#039;&#039;&#039;(float channel, float blendOutFrames); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the animation playing on the given channel is completed considering a number of blend frames.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animIsPaused&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Return whether the given anim channel is paused&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animLength&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the length of the anim in seconds. If the entity has multiple anims with animName, length may not match the anim that is played. Use chooseAnim to get a non-random anim and pass that string into animLength.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;animState&#039;&#039;&#039;(float channel, string stateFunction, float blendFrame); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a new animation state script function for the given channel.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;animTurn&#039;&#039;&#039;(float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Enable/disable animation controlled turning.&lt;br /&gt;
::&#039;&#039;angle&#039;&#039;: Pass in the maximum # of degrees the animation turns. Use an amount of 0 to disable.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;applyImpulse&#039;&#039;&#039;(entity source, float bodyid, vector point, vector impulse); ====&lt;br /&gt;
&lt;br /&gt;
:Applies an impulse to the entity. Example: entity.applyImpulse($player1, 0, entity.getOrigin(), &#039;0 0 2&#039;);&lt;br /&gt;
::&#039;&#039;source&#039;&#039;: Pass $null_entity or the entity that applies the impulse&lt;br /&gt;
::&#039;&#039;bodyid&#039;&#039;: For articulated figures, ID of the body, 0 for the first (main) body. Otherwise use 0.&lt;br /&gt;
::&#039;&#039;point&#039;&#039;: Point on the body where the impulse is applied to&lt;br /&gt;
::&#039;&#039;impulse&#039;&#039;: Vector of the impulse&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;asin&#039;&#039;&#039;(float sine); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the angle in degrees with the given sine.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;assert&#039;&#039;&#039;(float condition); ====&lt;br /&gt;
&lt;br /&gt;
:Breaks if the condition is zero. (Only works in debug builds.)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attach&#039;&#039;&#039;(entity ent, string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Attach an entity to the AI. Entity spawnArgs checked for attachments are:  - &amp;quot;origin&amp;quot;, &amp;quot;angles&amp;quot;, and &amp;quot;joint&amp;quot;. These must be set prior to calling attach.&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the desired name of the attachment, e.g., &#039;melee_weapon&#039;&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attachToPos&#039;&#039;&#039;(entity ent, string position, string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Attach an entity to the AI, using a named attachment position&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the desired name of the attachment, e.g., &#039;melee_weapon&#039;&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attackBegin&#039;&#039;&#039;(string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attackEnd&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;attackMelee&#039;&#039;&#039;(string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the attack hit&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;attackMissile&#039;&#039;&#039;(string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:returns projectile fired&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bark&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Let the AI bark a certain sound.&lt;br /&gt;
::&#039;&#039;sound&#039;&#039;: sound name, e.g. &#039;snd_warn_response&#039;&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;becomeNonSolid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Makes the moveable non-solid for other entities.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;, &#039;&#039;idMoveable&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;becomeRagdoll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:enables the ragdoll if the entity has one&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;becomeSolid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bind&#039;&#039;&#039;(entity master); ====&lt;br /&gt;
&lt;br /&gt;
:Fixes this entity&#039;s position and orientation relative to another entity, such that when the master entity moves, so does this entity.&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: the entity to bind to&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bindPosition&#039;&#039;&#039;(entity master); ====&lt;br /&gt;
&lt;br /&gt;
:Fixes this entity&#039;s position (but not orientation) relative to another entity, such that when the master entity moves, so does this entity.&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: the entity to bind to&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bindToBody&#039;&#039;&#039;(entity master, float bodyID, float orientated); ====&lt;br /&gt;
&lt;br /&gt;
:Bind to AF body&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: entity to bind to&lt;br /&gt;
::&#039;&#039;bodyID&#039;&#039;: AF body ID to bind to&lt;br /&gt;
::&#039;&#039;orientated&#039;&#039;: binds the orientation as well as position, if set to 1&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bindToJoint&#039;&#039;&#039;(entity master, string boneName, float rotateWithMaster); ====&lt;br /&gt;
&lt;br /&gt;
:Fixes this entity&#039;s position and orientation relative to a bone on another entity, such that when the master&#039;s bone moves, so does this entity.&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: the entity to bind to&lt;br /&gt;
::&#039;&#039;boneName&#039;&#039;: the bone name&lt;br /&gt;
::&#039;&#039;rotateWithMaster&#039;&#039;: -&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bob&#039;&#039;&#039;(float speed, float phase, vector distance); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation back and forth along the given vector with the given speed and phase.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;burn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;cacheSoundShader&#039;&#039;&#039;(string shaderName); ====&lt;br /&gt;
&lt;br /&gt;
:Ensure the specified sound shader is loaded by the system. Prevents cache misses when playing sound shaders.&lt;br /&gt;
::&#039;&#039;shaderName&#039;&#039;: the sound shader to cache&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;, &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;callFunction&#039;&#039;&#039;(string functionName); ====&lt;br /&gt;
&lt;br /&gt;
:Calls a function on an entity&#039;s script object. See also callGlobalFunction().&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;callGlobalFunction&#039;&#039;&#039;(string functionName, entity other); ====&lt;br /&gt;
&lt;br /&gt;
:calls a global function and passes the other entity along as the first argument calls the function in a new thread, so it continues executing in the current thread right away (unlike entity.callFunction( &amp;quot;blah&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;callGui&#039;&#039;&#039;(float handle, string namedEvent); ====&lt;br /&gt;
&lt;br /&gt;
:Calls a named event in a GUI.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canBecomeSolid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canBeUsedBy&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the entity can be used by the argument entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canHitEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canHitEnemyFromAnim&#039;&#039;&#039;(string anim); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canHitEnemyFromJoint&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canPlant&#039;&#039;&#039;(vector traceStart, vector traceEnd, entity ignore, entity vine); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canReachEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if character can walk to enemy&#039;s position. For walking monsters, enemy should be near the floor.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canReachEntity&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if character can walk to entity&#039;s position. For walking monsters, entity should be near the floor.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canReachPosition&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if character can walk to specified position. For walking monsters, position should be near the floor.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSee&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;, &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSeeEntity&#039;&#039;&#039;(entity target, float useLighting); ====&lt;br /&gt;
&lt;br /&gt;
:This is a general version of idAI::canSee, that can be used by all entities. It doesn&#039;t regard FOV, it just performs a trace to check whether the target is occluded by world geometry. Is probably useful for stim/response as well Pass useLighting = true to take the lighting of the target entity into account. Use &amp;quot;isEntityHidden&amp;quot; as a script event with a threshold. The constant threshold value for useLighting is defined within the SDK in game/entity.h.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSeeExt&#039;&#039;&#039;(entity ent, float b_useFOV, float b_useLighting); ====&lt;br /&gt;
&lt;br /&gt;
:This is an alternate version of canSee that can optionally choose to use field of vision and lighting calculations.&lt;br /&gt;
::&#039;&#039;b_useFOV&#039;&#039;: If 0 the entity will be visible even if the AI&#039;s back is turned to it&lt;br /&gt;
::&#039;&#039;b_useLighting&#039;&#039;: If b_useLighting is 0 the entity will be visible in complete darkness. If it is 1, the entity will only be visible if there is light shining on it, but the slightest light is enought. Use &amp;quot;isEntityHidden&amp;quot; as a script event with a threshold instead.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSeePositionExt&#039;&#039;&#039;(vector position, float b_useFOV, float b_useLighting); ====&lt;br /&gt;
&lt;br /&gt;
:This is an alternate version of canSeeExt that tests a location rather than an entity. Note that any actor at the position may make it not seeable from a distance.&lt;br /&gt;
::&#039;&#039;b_useFOV&#039;&#039;: If 0 the entity will be visible even if the AI&#039;s back is turned to it&lt;br /&gt;
::&#039;&#039;b_useLighting&#039;&#039;: If 0 the entity will be visible in complete darkness&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canWater&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmVine&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;ceil&#039;&#039;&#039;(float x); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the smallest integer that is greater than or equal to the given value.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeEntityRelation&#039;&#039;&#039;(entity ent, float relationChange); ====&lt;br /&gt;
&lt;br /&gt;
:This changes the current relation to an entity by adding the new amount.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeInvIcon&#039;&#039;&#039;(string name, string category, string icon); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the inventory icon of the given item in the given category to &amp;lt;icon&amp;gt;.&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: name of the item&lt;br /&gt;
::&#039;&#039;category&#039;&#039;: the item&#039;s category&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeInvItemCount&#039;&#039;&#039;(string name, string category, float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Decreases the inventory item stack count by amount. The item is addressed using the name and category of the item. These are usually defined on the inventory item entity (&amp;quot;inv_name&amp;quot;, &amp;quot;inv_category&amp;quot;)  Amount can be both negative and positive.&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: name of the item&lt;br /&gt;
::&#039;&#039;category&#039;&#039;: the item&#039;s category&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeInvLightgemModifier&#039;&#039;&#039;(string name, string category, float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the lightgem modifier value of the given item. Valid arguments are between 0 and 32 (which is the maximum lightgem value).&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: name of the item&lt;br /&gt;
::&#039;&#039;category&#039;&#039;: the item&#039;s category&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;changeLootAmount&#039;&#039;&#039;(float type, float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Changes the loot amount of the given Type (e.g. GOODS) by &amp;lt;amount&amp;gt;.  The mission statisic for loot found gets changed too.  The new value of the changed type is returned (e.g. the new GOODS value if this has been changed).  Note: The LOOT_TOTAL type can&#039;t be changed and 0 is returned.&lt;br /&gt;
::&#039;&#039;type&#039;&#039;: one of: LOOT_GOLD, LOOT_GOODS, LOOT_JEWELRY&lt;br /&gt;
::&#039;&#039;amount&#039;&#039;: can be negative&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeWeaponName&#039;&#039;&#039;(string weaponName, string displayName); ====&lt;br /&gt;
&lt;br /&gt;
:Changes the display name of the given weapon item to something different. Pass an empty string to reset the display name to the definition as found in the weaponDef.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeWeaponProjectile&#039;&#039;&#039;(string weaponName, string projectileDefName); ====&lt;br /&gt;
&lt;br /&gt;
:Changes the projectile entityDef name of the given weapon (e.g. &amp;quot;broadhead&amp;quot;) to the specified entityDef (e.g. &amp;quot;atdm:projectile_broadhead&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;chargeAttack&#039;&#039;&#039;(string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;checkAAS&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;checkAbsence&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:description missing&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;checkAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Ensures that the animation exists and causes an error if it doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;chooseAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Chooses a random anim and returns the name. Useful for doing move tests on anims.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearActiveInventoryMap&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clear the active inventory map entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearActiveInventoryMapEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clear the active inventory map entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearAllJoints&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Removes any custom transforms on all joints.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimatedEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearBurn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearController&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Need separate clearController because scripting doesn&#039;t like passing in $null_entity? (greebo: one could remove this function and set the argument type of setController to &#039;E&#039;.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CAIVehicle&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clears the enemy entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearFlyOffset&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the preferred height relative to the player&#039;s view height to fly at to the value set in the def file.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearJoint&#039;&#039;&#039;(float jointnum); ====&lt;br /&gt;
&lt;br /&gt;
:Removes any custom transforms on the specified joint.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimatedEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearMouseDeadTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearPersistantArgs&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clears data that persists between maps.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearSignal&#039;&#039;&#039;(float signalNum); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the callback function on the specified signal.&lt;br /&gt;
::&#039;&#039;signalNum&#039;&#039;: signal number&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearSignalThread&#039;&#039;&#039;(float signalNum, entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Clears the script callback function set for when the given signal is raised on the given entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearWatered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmVine&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;clipSize&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Close&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Closes the frobmover, regardless of its previous state. Mover must be open, otherwise nothing happens.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;closePortal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Closes the renderer portal associated with this mover.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;, &#039;&#039;idMover_Binary&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;closestEnemyToPoint&#039;&#039;&#039;(vector point); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the enemy closest to the given location.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;closestReachableEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Used for determining tactile alert targets&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;closestReachableEnemyOfEntity&#039;&#039;&#039;(entity team_mate); ====&lt;br /&gt;
&lt;br /&gt;
:Finds another character&#039;s closest reachable enemy&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;copyBind&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:copy bind information of other to this entity (i.e., bind this entity to the same entity that other is bound to)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;copySpawnArgs&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:copies the spawn args from an entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;cos&#039;&#039;&#039;(float degrees); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the cosine of the given angle in degrees.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;createMissile&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:returns projectile created&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;createMissileFromDef&#039;&#039;&#039;(string defName, string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;createOverlay&#039;&#039;&#039;(string guiFile, float layer); ====&lt;br /&gt;
&lt;br /&gt;
:Creates a GUI overlay. (must be used on the player)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;createProjectile&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;CreateTimer&#039;&#039;&#039;(float stimId, float hour, float minutes, float seconds, float milliseconds); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;CrossProduct&#039;&#039;&#039;(vector vec1, vector vec2); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the cross product of the two vectors.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;cullAll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cull (remove from world) all entities.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;Seed&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;customDeath&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;damage&#039;&#039;&#039;(entity inflictor, entity attacker, vector dir, string damageDefName, float damageScale); ====&lt;br /&gt;
&lt;br /&gt;
:Deals damage to this entity (gets translated into the idEntity::Damage() method within the SDK).&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: the entity causing the damage (maybe a projectile)&lt;br /&gt;
::&#039;&#039;attacker&#039;&#039;: the &amp;quot;parent&amp;quot; entity of the inflictor, the one that is responsible for the inflictor (can be the same)&lt;br /&gt;
::&#039;&#039;dir&#039;&#039;: the direction the attack is coming from.&lt;br /&gt;
::&#039;&#039;damageDefName&#039;&#039;: the name of the damage entityDef to know what damage is being dealt to &amp;lt;self&amp;gt; (e.g. &amp;quot;damage_lava&amp;quot;)&lt;br /&gt;
::&#039;&#039;damageScale&#039;&#039;: the scale of the damage (pass 1.0 as default, this should be ok).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dampenSound&#039;&#039;&#039;(float dampen); ====&lt;br /&gt;
&lt;br /&gt;
:Toggle whether the shattering sound is dampened on the window, e.g., when covered by moss.&lt;br /&gt;
::&#039;&#039;dampen&#039;&#039;: 1 = dampened, 0 = not dampened&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idBrittleFracture&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;deathMenu&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debug_tdm_material&#039;&#039;&#039;(string file); ====&lt;br /&gt;
&lt;br /&gt;
:For temporary debuging purposes only. Should be removed eventually.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugArrow&#039;&#039;&#039;(vector color, vector start, vector end, float size, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugBounds&#039;&#039;&#039;(vector color, vector mins, vector maxs, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugCircle&#039;&#039;&#039;(vector color, vector origin, vector dir, float radius, float numSteps, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugLine&#039;&#039;&#039;(vector color, vector start, vector end, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;decelSound&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound to be played when the mover decelerates.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;decelTime&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the deceleration time. Set this deceleration time before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;decelTo&#039;&#039;&#039;(float speed, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a deceleration to the given speed over the given time in seconds.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;destroyOverlay&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Destroys a GUI overlay. (must be used on the player)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;directDamage&#039;&#039;&#039;(entity damageTarget, string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;Seed&#039;&#039;, &#039;&#039;idMover_Binary&#039;&#039;, &#039;&#039;idTrigger&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableAFPush&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableAnimchannel&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Used to disable a certain animchannel (for example if the ai is dead)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableClip&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableEyeFocus&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables eye focus.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableGravity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;DisableLegIK&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:disables leg IK&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disablePain&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables pain animations.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableSplineAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables aligning the mover with the spline direction.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;DisableWalkIK&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:disables walk IK&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Lowers and disables the player weapon.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;distanceTo&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the distance of this entity to another entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;distanceToPoint&#039;&#039;&#039;(vector point); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the distance of this entity to a point.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;DotProduct&#039;&#039;&#039;(vector vec1, vector vec2); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the dot product of the two vectors.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;drawText&#039;&#039;&#039;(string text, vector origin, float scale, vector color, float align, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:text drawing for debugging. lifetime of 0 == 1 frame.&lt;br /&gt;
::&#039;&#039;align&#039;&#039;: 0 = left, 1 = center, 2 = right&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dropAttachment&#039;&#039;&#039;(string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Drop the attachment for the given attachment name.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dropAttachmentInd&#039;&#039;&#039;(float index); ====&lt;br /&gt;
&lt;br /&gt;
:Drop the attachment for the given index.&lt;br /&gt;
::&#039;&#039;index&#039;&#039;: starts at 0&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dropTorch&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ejectBrass&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;emitParticle&#039;&#039;&#039;(string particle, float startTime, float diversity, vector origin, vector angle); ====&lt;br /&gt;
&lt;br /&gt;
:Start a particle effect in the world without using an entity emitter. Will emit one quad per particle stage when first called with sys.getTime() as the start time. Designed to be called once per frame with the same startTime each call to achieve a normal particle effect, or on demand with sys.getTime() as the startTime for finer grained control, 1 quad at a time. Returns True (1) if there are more particles to be emitted from the stage, False (0) if the stage has released all its quads.&lt;br /&gt;
::&#039;&#039;particle&#039;&#039;: String: name of particle effect.&lt;br /&gt;
::&#039;&#039;startTime&#039;&#039;: Game seconds since map start: use sys.getTime() for the first call unless you want to back-date the particle so that it starts part way through its cycle.&lt;br /&gt;
::&#039;&#039;diversity&#039;&#039;: Randomizer value between 0 and 1. All particles with the same diversity will have the same path and rotation. Use sys.random(1) for a random path.&lt;br /&gt;
::&#039;&#039;origin&#039;&#039;: Origin of the particle effect.&lt;br /&gt;
::&#039;&#039;angle&#039;&#039;: Axis for the particle effect. Use $&amp;lt;entityname&amp;gt;.getAngles() to align the particle to an entity. use &#039;0 0 0&#039; for an upright (world-aligned) particle effect.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;emitterAddModel&#039;&#039;&#039;(string modelName, vector modelOffset); ====&lt;br /&gt;
&lt;br /&gt;
:Adds a new particle (or regular, if you wish) model to the emitter, located at modelOffset units away from the emitter&#039;s origin.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idFuncEmitter&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;emitterGetNumModels&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of models/particles this emitter has. Always &amp;gt;= 1.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idFuncEmitter&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;emptyHand&#039;&#039;&#039;(string hand); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;Seed&#039;&#039;, &#039;&#039;idMover_Binary&#039;&#039;, &#039;&#039;idTrigger&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableAFPush&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableAnim&#039;&#039;&#039;(float channel, float blendFrames); ====&lt;br /&gt;
&lt;br /&gt;
:Enables animation on the given channel.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableClip&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableDamage&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:enable/disable damage&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMoveable&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableEyeFocus&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables eye focus.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableGravity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;EnableLegIK&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:enables leg IK&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enablePain&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables pain animations.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableSplineAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables aligning the mover with the spline direction.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;EnableWalkIK&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:enables walk IK&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables the player weapon.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;endState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Ends the current state with the given name, returns TRUE if more than one state is remaining.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;endZoom&#039;&#039;&#039;(float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Starts the zoom out event, which performs a gradual transition back to the default FOV. May be called during a transition as well to intercept a pending zoom in transition.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: duration of the transition in msec&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyInCombatCone&#039;&#039;&#039;(entity combatNode, float use_current_enemy_location); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyPositionValid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyRange&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyRange2D&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;entityInAttackCone&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;error&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Issues an error.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;exitTeleporter&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;extinguishLights&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Extinguishes all lights (i.e. the &amp;lt;self&amp;gt; entity plus all bound lights)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;faceEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;faceEntity&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;facingIdeal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeIn&#039;&#039;&#039;(vector color, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades towards the given color over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeInLight&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the light on over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeOut&#039;&#039;&#039;(vector color, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades from the given color over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeOutLight&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the light out over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeSound&#039;&#039;&#039;(float channel, float newLevel, float fadeTime); ====&lt;br /&gt;
&lt;br /&gt;
:Fades the sound on this entity to a new level over a period of time.  Use SND_CHANNEL_ANY for all currently playing sounds.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeTo&#039;&#039;&#039;(vector color, float alpha, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades to the given color up to the given alpha over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeToLight&#039;&#039;&#039;(vector color, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades the light to the given color over a given time.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findActorsInBounds&#039;&#039;&#039;(vector mins, vector maxs); ====&lt;br /&gt;
&lt;br /&gt;
:Returns an entity within the bounds specified&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findEnemy&#039;&#039;&#039;(float onlyInFov); ====&lt;br /&gt;
&lt;br /&gt;
:Finds enemy player in PVS&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findEnemyAI&#039;&#039;&#039;(float onlyInFov); ====&lt;br /&gt;
&lt;br /&gt;
:Finds enemy monster in PVS&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findEnemyInCombatNodes&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Finds enemy player in attack cones&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findFriendlyAI&#039;&#039;&#039;(float team); ====&lt;br /&gt;
&lt;br /&gt;
:Use this to find a visible AI friendly to ourselves. It basically iterates over all active entities in the map and looks for friendly actors. The pythagorean distance is taken to evaluate the distance.  Don&#039;t call this every frame, this might get expensive in larger maps. Returns the nearest visible actor entity or the $null_entity, if none was found.&lt;br /&gt;
::&#039;&#039;team&#039;&#039;: used to constrain the search to a given team. Set this to -1 to let the code ignore this argument&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;finishAction&#039;&#039;&#039;(string action); ====&lt;br /&gt;
&lt;br /&gt;
:Finishes the given wait action.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;finishChannelAction&#039;&#039;&#039;(float channel, string animname); ====&lt;br /&gt;
&lt;br /&gt;
:Overloaded finishAction function for setting the waitstate on each channel separately&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;fireMissileAtTarget&#039;&#039;&#039;(string jointname, string targetname); ====&lt;br /&gt;
&lt;br /&gt;
:Launches a missile at entity specified by &#039;attack_target&#039;.  returns projectile fired&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;firstPerson&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns view control to the player entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;flashlight&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;flee&#039;&#039;&#039;(entity entToFleeFrom, float algorithm, float distanceOption); ====&lt;br /&gt;
&lt;br /&gt;
:Flee from the given entity. Pass the escape point lookup algorithm (e.g. EP_FIND_GUARDED) and the distanceOption (e.g. EP_DIST_NEAREST) to specify how the best escape point can be found. Refer to the tdm_defs.script file to see all the constants.  When algorithm is set to EP_FIND_AAS_AREA_FAR_FROM_THREAT, the distanceOption is interpreted as minimum threat distance. Returns FALSE if no escape point could be found.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;floor&#039;&#039;&#039;(float x); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the largest integer that is less than or equal to the given value.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;footstep&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idAnimated&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;foundBody&#039;&#039;&#039;(entity body); ====&lt;br /&gt;
&lt;br /&gt;
:Objective callback for when an AI finds a body.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;frob&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Frobs the entity (i.e. simulates a frob action performed by the player). Returns TRUE if the entity is frobable, FALSE otherwise.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;frobHilight&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:ishtvan: Tries to make the entity frobhilight or not&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;frobRidable&#039;&#039;&#039;(entity playerController); ====&lt;br /&gt;
&lt;br /&gt;
:Called when a player directly mounts or dismounts a ridable AI.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CAIVehicle&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Gas_Knockout&#039;&#039;&#039;(entity inflictor); ====&lt;br /&gt;
&lt;br /&gt;
:AI knockout&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: the entity causing the knockout, can be the $null_entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getActualStruckEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAcuity&#039;&#039;&#039;(string type); ====&lt;br /&gt;
&lt;br /&gt;
:ai generalized alerts&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAlertActor&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the actor that alerted the AI in this frame.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAlertLevelOfOtherAI&#039;&#039;&#039;(entity otherEntity); ====&lt;br /&gt;
&lt;br /&gt;
:This event gets the alert number of another AI (AI_AlertLevel variable value) Returns the alert number of the other AI, 0.0 if its not an AI or is NULL&lt;br /&gt;
::&#039;&#039;otherEntity&#039;&#039;: the other AI entity who&#039;s alert number is being queried&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current orientation of this entity (relative to bind parent if any).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAngularVelocity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current angular velocity of this entity. The angular velocity of a physics object is a vector that passes through the center of mass. The direction of this vector defines the axis of rotation and the magnitude defines the rate of rotation about the axis in radians per second.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAngularVelocityB&#039;&#039;&#039;(float id); ====&lt;br /&gt;
&lt;br /&gt;
:Get the angular velocitiy of a particular body Returns (0,0,0) if the body ID is invalid.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Base&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getAnimState&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the current animation state script function used for the given channel.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAttachment&#039;&#039;&#039;(string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Get the attached entity with the given attachment name Will be NULL if the name is invalid or if the entity no longer exists&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAttachmentInd&#039;&#039;&#039;(float index); ====&lt;br /&gt;
&lt;br /&gt;
:Get the attached entity at the given index. Will be NULL if the index is invalid or the entity no longer exists&lt;br /&gt;
::&#039;&#039;index&#039;&#039;: starts at 0&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAttacker&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the attacking entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAttackFlag&#039;&#039;&#039;(float combatType); ====&lt;br /&gt;
&lt;br /&gt;
:Returns 1 if the given attack flag is activated.&lt;br /&gt;
::&#039;&#039;combatType&#039;&#039;: see tdm_defs.script for possible enum values&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAudThresh&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAxialDir&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getBindChild&#039;&#039;&#039;(float ind); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the ind_th bind child of this entity or NULL if index is invalid. NOTE: indices start at zero&lt;br /&gt;
::&#039;&#039;ind&#039;&#039;: child index&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getBindMaster&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity&#039;s bindmaster&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getBlendFrames&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of frames to blend between animations on the given channel.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getBoolKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the boolean value of a specific spawn arg, defaulting to false.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getButtons&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the button state from the current user command.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getCalibratedLightgemValue&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the calibrated light gem value.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getClipMask&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the clipmask of the physics object.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getClosestHiddenTarget&#039;&#039;&#039;(string entity_type); ====&lt;br /&gt;
&lt;br /&gt;
:Finds the closest targeted entity of the specified type.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getColor&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the color of this entity (shader parms Parm0, Parm1, Parm2).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getCombatNode&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getContents&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the contents of the physics object.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvCategory&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the currently highlighted inventory category.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvIcon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the icon of the currently highlighted inventory item.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getCurInvItemEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently highlighted inventory item entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvItemId&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the currently highlighted inventory item (the one defined in &amp;quot;inv_item_id&amp;quot;). Most items will return an empty string, unless the &amp;quot;inv_item_id&amp;quot; is set on purpose.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvItemName&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the currently highlighted inventory item (the one defined in &amp;quot;inv_name&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getCurrentMissionNum&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of the current mission (0-based, the first mission has number 0).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurrentWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns weaponX where X is the number of the weapon the player is currently holding.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getCurrentYaw&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurWeaponName&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the current weapon, as defined by &amp;quot;inv_weapon_name&amp;quot; in the weaponDef.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getcvar&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string for a cvar.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getDifficultyLevel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns 0 (Easy), 1 (Medium) or 2 (Hard), depending on the difficulty level of the current mission.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getDifficultyName&#039;&#039;&#039;(float difficultyLevel); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the (translated) name of the difficulty level passed as the argument.&lt;br /&gt;
::&#039;&#039;difficultyLevel&#039;&#039;: 0 (Easy), 1 (Medium), 2 (Hard)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetDoor&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the associated door entity for this handle.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CFrobDoorHandle&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetDoorhandle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the handle entity of this door. Can return NULL (== $null_entity)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CFrobDoor&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getDragged&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently dragged body. Returns $null_entity if the body is shouldered, the player has nothing in his hands, or he has a non-AF entity in his hands. See also getShouldered(), getGrabbed() and getFrobbed().&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;, &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getEnemyEyePos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getEnemyPos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getEntity&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a reference to the entity with the specified name.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getEntityFlag&#039;&#039;&#039;(string flagName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the value of the specified entity flag.&lt;br /&gt;
::&#039;&#039;flagName&#039;&#039;: Can be one of (case insensitive): 	&lt;br /&gt;
notarget: if true never attack or target this entity 	&lt;br /&gt;
noknockback: if true no knockback from hits 	&lt;br /&gt;
takedamage: if true this entity can be damaged 	&lt;br /&gt;
hidden: if true this entity is not visible 	&lt;br /&gt;
bindOrientated: if true both the master orientation is used for binding 	&lt;br /&gt;
solidForTeam: if true this entity is considered solid when a physics team mate pushes entities 	&lt;br /&gt;
forcePhysicsUpdate: if true always update from the physics whether the object moved or not 	&lt;br /&gt;
selected: if true the entity is selected for editing 	&lt;br /&gt;
neverDormant: if true the entity never goes dormant 	&lt;br /&gt;
isDormant: if true the entity is dormant 	&lt;br /&gt;
hasAwakened: before a monster has been awakened the first time, use full PVS for dormant instead of area-connected 	&lt;br /&gt;
invisible: if true this entity cannot be seen 	&lt;br /&gt;
inaudible: if true this entity cannot be heard &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getEntityKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the entity specified by the spawn arg.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getEyePos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get eye position of the player and the AI&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getFinalAngVel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getFinalVel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getFloatKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the floating point value of a specific spawn arg, defaulting to 0.0f.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getFov&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:This returns the current FOV of the player. You can modify the current FOV with startZoom() and endZoom().&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;GetFractionalPosition&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a fraction between 0.00 (closed) and 1.00 (open).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getFrameTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:returns the length of time between game frames.  this is not related to renderer frame rate.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getFrobbed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently frobhilighted entity. This includes entities the player has in his hands. Sets &amp;quot;frob only used by&amp;quot; mode&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getGrabbed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently entity in the players hands. Returns $null_entity if the player has nothing in his hands Dragging or shouldering a body counts as grabbing it. See also getDragged(), getShouldered(), getFrobbed().&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getGui&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the file currently loaded by a GUI.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getGuiFloat&#039;&#039;&#039;(float handle, string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getGuiInt&#039;&#039;&#039;(float handle, string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getGuiString&#039;&#039;&#039;(float handle, string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getHead&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity used for the character&#039;s head, if it has one.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getHealth&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current health.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getHinderance&#039;&#039;&#039;(string source); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get hinderance from a source.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getIdealWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getImmobilization&#039;&#039;&#039;(string source); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get immobilization from a source. Warning: Not a finalized version. It&#039;s subject to change, so use it at your own risk.)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getIncidenceAngle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getIntKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the integer value of a specific spawn arg, defaulting to 0.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getInventoryOverlay&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the default inventory overlay for the player. All other entities will return an invalid value.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getJointAngle&#039;&#039;&#039;(float jointnum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the angular orientation of the joint in world space.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimatedEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getJointHandle&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:Looks up the number of the specified joint. Returns INVALID_JOINT if the joint is not found.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimatedEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getJointPos&#039;&#039;&#039;(float jointnum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the position of the joint in world space.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimatedEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getJumpVelocity&#039;&#039;&#039;(vector pos, float speed, float max_jump_height); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the value of a specific spawn arg, defaulting to &#039;&#039;.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLightInPVS&#039;&#039;&#039;(float falloff, float scaling); ====&lt;br /&gt;
&lt;br /&gt;
:Computes the sum of all light in the PVS of the entity you call this on, and returns a vector with the sum.&lt;br /&gt;
::&#039;&#039;falloff&#039;&#039;: 0: no falloff with distance  0.5: sqrt(linear) falloff	(dist 100 =&amp;gt; 1/10)  1: linear falloff			(dist 100 =&amp;gt; 1/100)  2: square falloff			(dist 100 =&amp;gt; 1/10000) &lt;br /&gt;
::&#039;&#039;scaling&#039;&#039;: factor to scale the distance, can be used to lower/raise distance factor  after the linear or square scaling has been used good looking values are approx: sqrt(linear): 0.01, linear: 0.1, square 1.0&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getLightLevel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get level (intensity) of a light, &amp;lt;= 0.0 indicates it is off&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLightOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the light origin (independent of its visual model)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getLightParm&#039;&#039;&#039;(float parmNum); ====&lt;br /&gt;
&lt;br /&gt;
:Gets a shader parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLinearVelocity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current linear velocity of this entity. The linear velocity of a physics object is a vector that defines the translation of the center of mass in units per second.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLinearVelocityB&#039;&#039;&#039;(float id); ====&lt;br /&gt;
&lt;br /&gt;
:Get the linear velocitiy of a particular body Returns (0,0,0) if the body ID is invalid.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Base&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getLocation&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the idLocation entity corresponding to the entity&#039;s current location. This was player-specific before, but is now available to all entities.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getLocationPoint&#039;&#039;&#039;(vector point); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the idLocation entity corresponding to the specified point&#039;s location.&lt;br /&gt;
::&#039;&#039;point&#039;&#039;: point whose location to check&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetLock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the associated lock of this handle.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CFrobLockHandle&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getLootAmount&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the amount of loot for the given type (e.g. LOOT_GOODS). Pass LOOT_TOTAL to return the sum of all loot types.&lt;br /&gt;
::&#039;&#039;type&#039;&#039;: one of: LOOT_GOLD, LOOT_GOODS, LOOT_JEWELRY, LOOT_TOTAL&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getMainAmbientLight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity of the main ambient light.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMass&#039;&#039;&#039;(float body); ====&lt;br /&gt;
&lt;br /&gt;
:Gets mass of a body for an entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getMaxs&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the maximum corner of this entity&#039;s bounding box.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeActPhase&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current melee action phase (holding,recovering,etc).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeActState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current melee action state (attacking/defending).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeActType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current melee action type (overhead,thrust,etc.).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeLastActTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the melee type of the last attack to hit this actor. Defaults to MELEETYPE_UNBLOCKABLE if we were not hit before.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeLastHitByType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the game time that the most recent melee action ended (in ms)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeResult&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the result of the last melee action Follows MELEERESULT_* enum defined in tdm_defs.script&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getMins&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the minimum corner of this entity&#039;s bounding box.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMissionStatistic&#039;&#039;&#039;(string statisticName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns current mission statistic.&lt;br /&gt;
::&#039;&#039;statisticName&#039;&#039;: Can be one of (case insensitive): 	gamePlayTime: gameplay time in seconds 	damageDealt: damage dealt to enemies 	damageReceived: damage received by player 	healthReceived: health received by player 	pocketsPicked: pockets picked by player 	foundLoot: loot found by player 	missionLoot: total loot available in mission 	totalTimePlayerSeen: total time the player was seen by enemies in seconds. Updates only when AI lose sight of player 	numberTimesPlayerSeen: number of times player was seen by enemies 	numberTimesAISuspicious: number of times AI was &#039;observant&#039; or &#039;suspicious&#039;. A single AI passing through both alert levels will add 2 to the score. 	numberTimesAISearched: number of times AI was &#039;investigating&#039; or &#039;searching&#039;. A single AI passing through both alert levels will add 2 to the score. 	sightingScore: sighting score (number of times player was seen * weight) 	stealthScore: stealth score (sighting score + alerts * weights) 	killedByPlayer: number of enemies killed by player 	knockedOutByPlayer: number of enemies knocked out by player 	bodiesFound: number of times enemies have spotted a body 	secretsFound: number of secrets found by the player 	secretsTotal: total number of secrets in the mission &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMouseGesture&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the results of the last mouse gesture in enum form. (see the definition for MOUSEDIR_* for which numbers correspond to which directions)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the movement relative to the player&#039;s view angles from the current user command. vector_x = forward, vector_y = right, vector_z = up&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getMoveAnim&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the player-requested movement anim for a player controlled AI vehicle&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CAIVehicle&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMoveSpeed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the movement speed.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMoveTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the movement time.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMoveType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current movetype&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getName&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of this entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getNextEntity&#039;&#039;&#039;(string key, string value, entity lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Discover all entities in the map. Returns $null_entity when no more found.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: Optional string: prefix for spawnarg key match. E.g. &amp;quot;target&amp;quot; will match &amp;quot;target&amp;quot;, &amp;quot;target1&amp;quot; etc.&lt;br /&gt;
::&#039;&#039;value&#039;&#039;: Optional string: spawnarg value to match. Can be used independently of &#039;&#039;key&#039;&#039;. If &#039;&#039;key&#039;&#039; is not set, all spawnargs will be checked for the value.&lt;br /&gt;
::&#039;&#039;lastMatch&#039;&#039;: Last match: search will start after this entity. Use $null_entity or pass an uninitialized entity variable to start a new search.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextHinderance&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get the next hinderance from a source.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextIdleAnim&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:This returns the name of the next idle anim to be played on this AI (used by AnimState scripts).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextImmobilization&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get immobilization from a source. Warning: Not a finalized version. It&#039;s subject to change, so use it at your own risk.)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getNextInvItem&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cycles the standard cursor to the next inventory item. Returns the item entity pointed to after the operation is complete.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextKey&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Searches for the name of a spawn arg that matches the prefix.  For example, passing in &amp;quot;attack_target&amp;quot; matches &amp;quot;attack_target1&amp;quot;, &amp;quot;attack_targetx&amp;quot;, &amp;quot;attack_target_enemy&amp;quot;,  etc. The returned string is the name of the key which can then be passed into functions like getKey() to lookup the value of that spawn arg.  This is useful for when you have multiple values to look up, like when you target multiple objects.  To find the next matching key, pass in the previous result and the next key returned will be the first one that matches after the previous result. Pass in &amp;quot;&amp;quot; to get the first match. Passing in a non-existent key is the same as passing in &amp;quot;&amp;quot;. Returns &amp;quot;&amp;quot; when no  more keys match.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextTurnHinderance&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Get the next hinderance on the view turning from a source&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumAttachments&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Return the number of attachments on an AI. Used to iterate through the attachments if desired.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumBodies&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of bodies in the AF. If the AF physics pointer is NULL, it returns 0.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Base&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumMeleeWeapons&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of melee weapons attached to an actor. This refers to the TDM-style attachments with the spawnarg &#039;is_weapon_melee&#039; set to &#039;1&#039;.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumRangedWeapons&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of ranged weapons attached to an actor. This refers to the TDM-style attachments with the spawnarg &#039;is_weapon_ranged&#039; set to &#039;1&#039;.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getObjectiveComp&#039;&#039;&#039;(float ObjNum, float CompNum); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get the state of custom objective components&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
::&#039;&#039;CompNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getObjectiveState&#039;&#039;&#039;(float ObjNum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current state of the objective with the number ObjNum.  State is one of the following: OBJ_INCOMPLETE = 0, OBJ_COMPLETE = 1, OBJ_INVALID = 2, OBJ_FAILED = 3&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getObjectiveVisible&#039;&#039;&#039;(float ObjNum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current visibility of the objective with the number ObjNum.&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getObservationPosition&#039;&#039;&#039;(vector targetPoint, float visualAcuityZeroToOne); ====&lt;br /&gt;
&lt;br /&gt;
:This event is used to get a position that the AI can move to observe a  given position.  It is useful for looking at hiding spots that can&#039;t be reached, and performing other investigation functions.  Returns a world position from which the observation can take place. Returns the current AI origin if no such point is found.  @sideEffect This uses the AI_DEST_UNREACHABLE flag variable  to indicate if a point was found. It will be true if none was found, false if one was found.&lt;br /&gt;
::&#039;&#039;targetPoint&#039;&#039;: the world position to be observed&lt;br /&gt;
::&#039;&#039;visualAcuityZeroToOne&#039;&#039;: the visual acuity of the AI on a scale of 0.0 to 1.0 where 0.0 is blind and 1.0 is perfect vision.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getObstacle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the obstacle in the character&#039;s path&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current position of this entity (relative to bind parent if any).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getOwner&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the owning entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getPainAnim&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the pain animation.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPersistantFloat&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the floating point value for the given persistent arg&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getPersistantString&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string for the given persistent arg&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getPersistantVector&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the vector for the given persistent arg&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortAISoundLoss&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:AI sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortalHandle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the portal handle.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPortalEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortPlayerSoundLoss&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Player sound loss  scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortSoundLoss&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getPrevInvItem&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cycles the standard cursor to the previous inventory item. Returns the item entity pointed to after the operation is complete.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getPreviousWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns weaponX where X is the number of the weapon the player was previously holding.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getPrime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmVine&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getProjectileState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current state of the projectile. States are defined in tdm_defs.script&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idProjectile&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getProjMass&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getRadius&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the light radius.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getRandomTarget&#039;&#039;&#039;(string entity_type); ====&lt;br /&gt;
&lt;br /&gt;
:Finds a random targeted entity of the specified type.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getReachableEntityPosition&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the position of the entity within the AAS if possible, otherwise just the entity position.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getRelation&#039;&#039;&#039;(float team1, float team2); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getRelationEnt&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetResponseEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity which should take the response. Some entities like AI heads are not responding themselves to stims, but relay it to another entity (i.e. the bodies they&#039;re attached to).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getSecurityCameraState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the security camera&#039;s state. 1 = unalerted, 2 = suspicious, 3 = fully alerted, 4 = inactive, 5 = destroyed.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getShader&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the shader name used by the light.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getShaderParm&#039;&#039;&#039;(float parm); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the value of the specified shader parm.&lt;br /&gt;
::&#039;&#039;parm&#039;&#039;: shader parm index&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getShouldered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently shouldered body, otherwise $null_entity. See also getDragged(), getGrabbed() and getFrobbed().&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getSize&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the size of this entity&#039;s bounding box.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getSndDir&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:ai hearing of sound &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getSoundLoss&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the sound loss value (dB).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPortalEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getSoundVolume&#039;&#039;&#039;(string soundName); ====&lt;br /&gt;
&lt;br /&gt;
:Get the volume of the sound to play.&lt;br /&gt;
::&#039;&#039;soundName&#039;&#039;: the name of the sound&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getSpotLight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the spotlight used by the camera. Returns null_entity if none is used.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current state.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getStruckEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getSurfNormal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getSurfType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTactEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:ai sense of touch&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTalkTarget&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity (player) trying to talk to the character&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTarget&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the requested target entity.&lt;br /&gt;
::&#039;&#039;num&#039;&#039;: The target number. Starts at 0.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTDMVersion&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the current TDM version as integer. The value will be 108 for v1.08, 109 for v1.09 and 200 for v2.00 etc.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTeam&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current team number.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTicsPerSecond&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:returns the number of game frames per second.  this is not related to renderer frame rate.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current game time in seconds.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getTraceBody&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of the body part of the entity which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getTraceEndPos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the position the trace stopped due to a collision with solid geometry during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTraceEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a reference to the entity which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTraceFraction&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the fraction of movement completed during the last call to trace or tracePoint.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getTraceJoint&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of the skeletal joint closest to the location on the entity which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getTraceNormal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the normal of the hit plane during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getTraceSurfType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the type of the surface (i.e. metal, snow) which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTurnDelta&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getTurnHinderance&#039;&#039;&#039;(string source); ====&lt;br /&gt;
&lt;br /&gt;
:* Get the hinderance on the view turning from a source&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTurnRate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the rate the character turns.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVectorKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the vector value of a specific spawn arg, defaulting to &#039;0 0 0&#039;.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVectorToIdealOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the vector from where the AI is to where he ideally should be&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getViewAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the player view angles.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVinePlantLoc&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event important to the growing of vines from vine arrows&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVinePlantNormal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event important to the growing of vines from vine arrows&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVisDir&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns position of the last visual alert.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getWeaponEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity for the player&#039;s weapon&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getWorldModel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity that controls the world model&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getWorldOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current world-space position of this entity (regardless of any bind parent).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;gib&#039;&#039;&#039;(string damageDefName); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Gibbable&#039;&#039;, &#039;&#039;idMoveableItem&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;giveHealthPool&#039;&#039;&#039;(float amount); ====&lt;br /&gt;
&lt;br /&gt;
:This increases/decreases the healthpool of the player by the given amount. The healthpool is gradually decreased over time, healing (damaging?) the player.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;handleMissionEvent&#039;&#039;&#039;(entity objEnt, float eventType, string argument); ====&lt;br /&gt;
&lt;br /&gt;
:Generic interface for passing on mission events from scripts to the SDK. Available since TDM 1.02&lt;br /&gt;
::&#039;&#039;objEnt&#039;&#039;: the entity that triggered this event (e.g. a readable)&lt;br /&gt;
::&#039;&#039;eventType&#039;&#039;: a numeric identifier (enumerated both in MissionData.h and tdm_defs.script) specifying the type of event&lt;br /&gt;
::&#039;&#039;argument&#039;&#039;: an optional string parameter, eventtype-specific.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true when an entity has a specific animation.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasEnemies&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the actor has one or more enemies.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasFunction&#039;&#039;&#039;(string functionName); ====&lt;br /&gt;
&lt;br /&gt;
:checks if an entity&#039;s script object has a specific function&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasSeenEvidence&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:This returns 1 when the AI has seen evidence of intruders before (an enemy, a body...)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;heal&#039;&#039;&#039;(string healDefName, float healScale); ====&lt;br /&gt;
&lt;br /&gt;
:Heals the entity this is called on using the specified healing entityDef. Returns 1 if the entity could be healed, 0 otherwise (if the entity is already at full health, for ex.)&lt;br /&gt;
::&#039;&#039;healDefName&#039;&#039;: the name of the entityDef containing the healing information (e.g. &amp;quot;heal_potion&amp;quot;)&lt;br /&gt;
::&#039;&#039;healScale&#039;&#039;: the scaling value to be applied to the healAmount found in the healEntityDef&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;heldEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity currently being held, or $null_entity if the player&#039;s hands are empty.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;hide&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Makes this entity invisible.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;hideByLODBias&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;holdEntity&#039;&#039;&#039;(entity entity); ====&lt;br /&gt;
&lt;br /&gt;
:Forces the player to hold an entity (e.g. puts it into the grabber). Drops whatever is in the player&#039;s hands if $null_entity is passed to it. Returns 1 if successful, 0 if not.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;idleAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Plays the given idle animation on the given channel.  Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ignoreDamage&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:The AI can no longer take damage.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;inAnimState&#039;&#039;&#039;(float channel, string stateFunc); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given animation state script function is currently used for the given channel.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;influenceActive&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Checks if an influence is active&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;inPVS&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns non-zero if this entity is in PVS. For lights, it will return true when the light&#039;s bounding box is in PVS, even though the light may not actually be in PVS. (an unmoved shadowcasting light may not be visible to PVS areas its bounding box intersects with)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isAtRest&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if object is not moving&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMoveable&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isDroppable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get whether an item may be dropped from the inventory&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isEnemy&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given entity is an enemy.&lt;br /&gt;
::&#039;&#039;ent&#039;&#039;: The entity in question&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isEntityHidden&#039;&#039;&#039;(entity ent, float f_sightThreshold); ====&lt;br /&gt;
&lt;br /&gt;
:This is an alternate version of canSee, using FOV, distance and lighting.&lt;br /&gt;
::&#039;&#039;f_sightThreshold&#039;&#039;: goes from 0.0 (entity visible in complete darkness) to 1.0 (entity only visible if completely lit up).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isFriend&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given entity is a friend.&lt;br /&gt;
::&#039;&#039;ent&#039;&#039;: The entity in question&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isFrobable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get whether the entity is frobable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isHidden&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:checks if the entity&#039;s model is invisible.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isHilighted&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if entity is currently frobhilighted.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isInLiquid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns 1 if the entity is in or touching a liquid.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isInvisible&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isLeaning&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get whether the player is leaning&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isLight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;IsLocked&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true (nonzero) if the mover is currently locked.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isMoving&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if a mover is moving&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isNeutral&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given entity is neutral.&lt;br /&gt;
::&#039;&#039;ent&#039;&#039;: The entity in question&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;IsOpen&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true (nonzero) if the mover is open, which is basically the same as &amp;quot;not closed&amp;quot;. A mover is considered closed when it is at its close position.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;IsPickable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true (nonzero) if this frobmover is pickable.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isPlayerResponsibleForDeath&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the player was responsible for the AI&#039;s caller&#039;s death.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isRotating&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if a mover is rotating&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isType&#039;&#039;&#039;(string spawnclass); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if this entity is of the given type.&lt;br /&gt;
::&#039;&#039;spawnclass&#039;&#039;: spawn class name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isVineFriendly&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Vine-arrow event&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CProjectileResult&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;kickObstacles&#039;&#039;&#039;(entity kickEnt, float force); ====&lt;br /&gt;
&lt;br /&gt;
:Kicks any obstacle in the character&#039;s path.&lt;br /&gt;
::&#039;&#039;kickEnt&#039;&#039;: pass in $null_entity if you don&#039;t have a specific entity to kick&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;kill&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Kills the monster.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;killthread&#039;&#039;&#039;(string threadName); ====&lt;br /&gt;
&lt;br /&gt;
:Kills all threads with the specified name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;KO_Knockout&#039;&#039;&#039;(entity inflictor); ====&lt;br /&gt;
&lt;br /&gt;
:AI knockout&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: is the entity causing the knockout, can be the $null_entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;launch&#039;&#039;&#039;(vector start, vector dir, vector velocity); ====&lt;br /&gt;
&lt;br /&gt;
:Launches the projectile from &amp;lt;start&amp;gt; in direction &amp;lt;dir&amp;gt; with the given &amp;lt;velocity&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idProjectile&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;launchMissile&#039;&#039;&#039;(vector origin, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the projectile entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;launchMissiles&#039;&#039;&#039;(string projectilename, string sound, string launchbone, string targetbone, float numshots, float framedelay); ====&lt;br /&gt;
&lt;br /&gt;
:Launches a projectile.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimated&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;launchProjectiles&#039;&#039;&#039;(float num_projectiles, float spread, float fuseOffset, float launchPower, float dmgPower); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;leftFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to left foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idAnimated&#039;&#039;, &#039;&#039;idTestModel&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;loadExternalData&#039;&#039;&#039;(string declFile, string prefix); ====&lt;br /&gt;
&lt;br /&gt;
:Load an external xdata declaration.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;locateEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Updates the last known position of the enemy independent from whether or not the enemy is visible.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Lock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Locks the mover. Calls to Open() will not succeed after this call. &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;log&#039;&#039;&#039;(float x); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the log of the given argument.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;logString&#039;&#039;&#039;(float logClass, float logType, string output); ====&lt;br /&gt;
&lt;br /&gt;
:This is the script counterpart to DM_LOG&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAt&#039;&#039;&#039;(entity focusEntity, float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Aims the character&#039;s eyes and head toward an entity for a period of time.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAtAngles&#039;&#039;&#039;(float yawAngleClockwise, float pitchAngleUp, float rollAngle, float durationInSeconds); ====&lt;br /&gt;
&lt;br /&gt;
:A look at event that just looks at a set of angles relative  to the current body facing of the AI. This method is just like the vanilla Doom3 lookAt and lookAtEnemy methods, but it looks at the specified angles from the current body facing of the AI.&lt;br /&gt;
::&#039;&#039;yawAngleClockwise&#039;&#039;: Negative angles are to the left of  the AIs body and positive angles are to the right.&lt;br /&gt;
::&#039;&#039;pitchAngleUp&#039;&#039;: Negative values are down and positive values are up  where down and up are defined by the body axis.&lt;br /&gt;
::&#039;&#039;rollAngle&#039;&#039;: This is currently unused and does nothing.&lt;br /&gt;
::&#039;&#039;durationInSeconds&#039;&#039;: The duration to look in seconds.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAtEnemy&#039;&#039;&#039;(float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Aims the character&#039;s eyes and head toward the current enemy for a period of time.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAtPosition&#039;&#039;&#039;(vector lookAtWorldPosition, float durationInSeconds); ====&lt;br /&gt;
&lt;br /&gt;
:This method is just like the vanilla Doom3 lookAt and lookAtEnemy methods, but instead of looking at an entity, it looks at a position in worldspace.  That is, it turns the head of the AI to look at the position.&lt;br /&gt;
::&#039;&#039;lookAtWorldPosition&#039;&#039;: position in space to look at&lt;br /&gt;
::&#039;&#039;durationInSeconds&#039;&#039;: duration to look in seconds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;lookupReplacementAnim&#039;&#039;&#039;(string anim); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current replacement animation for &amp;quot;anim&amp;quot;. Returns empty if no replacement anim &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;markUsed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the combat node if &amp;quot;use_once&amp;quot; is set on the entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idCombatNode&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;melee&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeActionFinished&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Called when the animation for the melee action has finished.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeActionHeld&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Called when the melee action reaches the &amp;quot;hold&amp;quot; point.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeActionReleased&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Called when the melee action is released from the hold point.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeAttackStarted&#039;&#039;&#039;(float attType); ====&lt;br /&gt;
&lt;br /&gt;
:Registers the start of a given melee attack Intended to be called from a script that also starts the animation&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;meleeAttackToJoint&#039;&#039;&#039;(string joint, string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;meleeBestParry&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the melee type integer of the best parry given the enemy attacks at the time If no attacking enemy is found, returns default of MELEETYPE_RL Follows MELEETYPE_* enum defined in tdm_defs.script&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;meleeNameForNum&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:Converts a melee type integer to a string name suffix Used for finding the right animation for a given type, etc. Possible names are, in order: &amp;quot;Over, LR, RL, Thrust, General&amp;quot; Where general blocks all attacks types except unblockable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeParryStarted&#039;&#039;&#039;(float parType); ====&lt;br /&gt;
&lt;br /&gt;
:Registers the start of a given melee parry Intended to be called from a script that also starts the animation&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;missionFailed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;missionSuccess&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;mouseGestureFinished&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the player is not currently doing a mouse gesture.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;move&#039;&#039;&#039;(float angle, float distance); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation with the given distance in the given yaw direction. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveOutOfRange&#039;&#039;&#039;(entity ent, float range); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveSound&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound to be played when the moving.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;moveStatus&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveTo&#039;&#039;&#039;(entity targetEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation to the position of an entity. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToAttackPosition&#039;&#039;&#039;(entity ent, string attack_anim); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToCover&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToCoverFrom&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToEnemyHeight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToEntity&#039;&#039;&#039;(entity destination); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToPos&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation to an absolute position. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToPosition&#039;&#039;&#039;(vector position); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;music&#039;&#039;&#039;(string shaderName); ====&lt;br /&gt;
&lt;br /&gt;
:Starts playing background music.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;muzzleFlash&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;netEndReload&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;netReload&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;nextEnemy&#039;&#039;&#039;(entity lastEnemy); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the next enemy the actor has acquired.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;nextWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;noShadows&#039;&#039;&#039;(float noShadows); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the noShadow property on the entity to true/false, turning shadowcasting on or off for this entity.&lt;br /&gt;
::&#039;&#039;noShadows&#039;&#039;: 1 = disable shadows, 0 = enable shadows&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;noShadowsDelayed&#039;&#039;&#039;(float noShadows, float delay); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the noShadow property on the entity to true/false after delay in ms, turning shadows cast by this entity on or off.&lt;br /&gt;
::&#039;&#039;noShadows&#039;&#039;: 1 = disable shadows, 0 = enable shadows&lt;br /&gt;
::&#039;&#039;delay&#039;&#039;: delay in ms&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;numBindChildren&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of bound entities lower down in the bind chain than this entity, but be sure to give it the topmost bindmaster&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;numSmokeEmitters&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the # of emitters defined by &#039;smokeParticleSystem&#039; in the entitydef&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;numTargets&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of entities this entity has targeted.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;objectiveCompUnlatch&#039;&#039;&#039;(float ObjNum, float CompNum); ====&lt;br /&gt;
&lt;br /&gt;
:Unlatch an irreversible objective component that has latched into a state&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;objectiveUnlatch&#039;&#039;&#039;(float ObjNum); ====&lt;br /&gt;
&lt;br /&gt;
:Unlatch an irreversible objective that has latched into a state&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Off&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity off.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;, &#039;&#039;idSecurityCamera&#039;&#039;, &#039;&#039;idSound&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;offsetRelation&#039;&#039;&#039;(float team1, float team2, float val); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;On&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity on.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;, &#039;&#039;idSecurityCamera&#039;&#039;, &#039;&#039;idSound&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;onSignal&#039;&#039;&#039;(float signalNum, entity ent, string functionName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a script callback function for when the given signal is raised on the given entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Open&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Opens the frobmover, regardless of its previous state. The mover will not move when it&#039;s locked. &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;, &#039;&#039;CFrobLock&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;OpenDoor&#039;&#039;&#039;(float master); ====&lt;br /&gt;
&lt;br /&gt;
:The OpenDoor method is necessary to give the FrobDoorHandles a  &amp;quot;low level&amp;quot; open routine. The CFrobDoor::Open() call is re-routed to the FrobDoorHandle::Tap() method, so there must be a way to actually let the door open. Which is what this method does.  Note: Shouldn&#039;t be called directly by scripters, call handle-&amp;gt;Tap() instead. Unless you know what you&#039;re doing.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CFrobDoor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;openPortal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Opens the renderer portal associated with this mover.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;, &#039;&#039;idMover_Binary&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Operate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Call this to operate this entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CFrobButton&#039;&#039;, &#039;&#039;CFrobLever&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;overrideAnim&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the animation currently playing on the given channel and syncs the animation with the animation of the nearest animating channel.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pause&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Pauses the current thread.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pauseAnim&#039;&#039;&#039;(float channel, float bPause); ====&lt;br /&gt;
&lt;br /&gt;
:Pause all animations playing on the given channel. NOTE: Can also be used used by idWeapons&lt;br /&gt;
::&#039;&#039;bPause&#039;&#039;: true = pause, false = unpause&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pauseGame&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Pauses the game. This should only be called for threads that are explicitly maintained by a special SDK method, because ordinary threads won&#039;t get executed during g_stopTime == true. Note: This is used by the objective GUI threads. Note: Must be called on the player entity, not the sys entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;performRelight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Deal with doused lights.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playAndLipSync&#039;&#039;&#039;(string soundName, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Play the given sound, using the given lipsync animation. The lipsync animation should just be a simple non-loopable animation of the mouth opening in a linear fashion. The code will select individual frames from this to construct a simple lipsyncing effect which is in time with the sound.  Returns the length of the played sound in seconds.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Do not use, this is part of TDM&#039;s internal mechanics. Use playCustomAnim() on AI.in scripts instead of this. Plays the given animation on the given channel. Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playCustomAnim&#039;&#039;&#039;(string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Plays the given animation on legs and torso. Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playCycle&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Continuously repeats the given animation on the given channel.  Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;playStartSound&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;pointInLiquid&#039;&#039;&#039;(vector point, entity ignoreEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Checks if a point is in a liquid, returns 1 if this is the case.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;pointIsInBounds&#039;&#039;&#039;(vector point, vector mins, vector maxs); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the point is within the bounds specified.&lt;br /&gt;
::&#039;&#039;point&#039;&#039;: test whether this point is in the bounds&lt;br /&gt;
::&#039;&#039;mins&#039;&#039;: minimal corner of the bounds&lt;br /&gt;
::&#039;&#039;maxs&#039;&#039;: maximal corner of the bounds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;pow&#039;&#039;&#039;(float x, float y); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the power of x to y.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;preBurn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;predictEnemyPos&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Tries to predict the player&#039;s movement based on the AAS and his direction of movement.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;preventPain&#039;&#039;&#039;(float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Prevents any pain animation from being played for the given time in seconds.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: time in seconds&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;print&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Prints the given string to the console.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;println&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Prints the given line to the console.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;processBlindStim&#039;&#039;&#039;(entity stimSource, float skipVisibilityCheck); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;processVisualStim&#039;&#039;&#039;(entity stimSource); ====&lt;br /&gt;
&lt;br /&gt;
:Use this call to let the AI react to a visual stim (coming from the source entity).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;projectDecal&#039;&#039;&#039;(vector traceOrigin, vector traceEnd, entity passEntity, string decal, float decalSize, float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Performs a trace from the specified origin and end positions, then projects a decal in that direction.&lt;br /&gt;
::&#039;&#039;traceOrigin&#039;&#039;: Start of the trace.&lt;br /&gt;
::&#039;&#039;traceEnd&#039;&#039;: End of the trace.&lt;br /&gt;
::&#039;&#039;passEntity&#039;&#039;: This entity will be considered non-solid by the trace.&lt;br /&gt;
::&#039;&#039;decal&#039;&#039;: Decal to be projected.&lt;br /&gt;
::&#039;&#039;decalSize&#039;&#039;: Size of the decal quad.&lt;br /&gt;
::&#039;&#039;angle&#039;&#039;: Angle of the decal quad.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;propagateSound&#039;&#039;&#039;(string soundName, float propVolMod, float msgTag); ====&lt;br /&gt;
&lt;br /&gt;
:Generates a propagated sound&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;propSound&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Sound propagation scriptfunctions on all entities propagate a sound directly without playing an audible sound&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;propSoundMod&#039;&#039;&#039;(string name, float volMod); ====&lt;br /&gt;
&lt;br /&gt;
:propagate a sound directly with a volume modifier&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;pushPointIntoAAS&#039;&#039;&#039;(vector post); ====&lt;br /&gt;
&lt;br /&gt;
:Tries to push the point into a valid AAS area&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pushState&#039;&#039;&#039;(string stateName); ====&lt;br /&gt;
&lt;br /&gt;
:Pushes the state with the given name, current one is postponed.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;radiusDamage&#039;&#039;&#039;(vector origin, entity inflictor, entity attacker, entity ignore, string damageDefName, float dmgPower); ====&lt;br /&gt;
&lt;br /&gt;
:damages entities within a radius defined by the damageDef.  inflictor is the entity  causing the damage and can be the same as the attacker (in the case   of projectiles, the projectile is the inflictor, while the attacker is the character  that fired the projectile).&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: the entity causing the damage&lt;br /&gt;
::&#039;&#039;ignore&#039;&#039;: an entity to not cause damage to&lt;br /&gt;
::&#039;&#039;dmgPower&#039;&#039;: scales the damage (for cases where damage is dependent on time)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;radiusDamageFromJoint&#039;&#039;&#039;(string jointname, string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;random&#039;&#039;&#039;(float range); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a random value X where 0 &amp;lt;= X &amp;lt; range.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;randomPath&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;, &#039;&#039;idPathCorner&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;randomTarget&#039;&#039;&#039;(string ignoreName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a random targeted entity. Pass in an entity name to skip that entity.&lt;br /&gt;
::&#039;&#039;ignoreName&#039;&#039;: the name of an entity to ignore&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;rangedThreatTo&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Could this entity threaten the given (target) entity from a distance?&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;readLightgemModifierFromWorldspawn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reAttachToCoords&#039;&#039;&#039;(string attName, string joint, vector offset, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Reattach an existing attachment&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the name of the attachment we want to reattach. &lt;br /&gt;
::&#039;&#039;joint&#039;&#039;: the name of the joint to attach to&lt;br /&gt;
::&#039;&#039;offset&#039;&#039;: the translation offset from joint&lt;br /&gt;
::&#039;&#039;angles&#039;&#039;: a (pitch, yaw, roll) angle vector that defines the rotation  of the attachment relative to the joint&#039;s orientation&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reAttachToPos&#039;&#039;&#039;(string attName, string position); ====&lt;br /&gt;
&lt;br /&gt;
:Reattach an existing attachment to a named attachment position. Example: reAttachToPos( melee_weapon, right_hand_held )&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the name of the attachment we want to reattach.&lt;br /&gt;
::&#039;&#039;position&#039;&#039;: the new position we want to attach it to.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reloadTorchReplacementAnims&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:If actor has a torch, reload the torch&#039;s replacement anims.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;remove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Removes the entity from the game. For AI, use kill() instead.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idClass&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeBinds&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Removes all attached entities from the game&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeInitialSplineAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Subtracts the initial spline angles to maintain the initial orientation of the mover.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Removes a key from an object&#039;s spawnargs, so things like getNextKey() don&#039;t retrieve it.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: the spawnarg to remove&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeReplacementAnim&#039;&#039;&#039;(string anim); ====&lt;br /&gt;
&lt;br /&gt;
:Removes the replacement for the given &amp;quot;anim&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeTarget&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Remove a target from this entity.&lt;br /&gt;
::&#039;&#039;target&#039;&#039;: the entity to remove from the targets&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;replaceInvItem&#039;&#039;&#039;(entity oldItem, entity newItem); ====&lt;br /&gt;
&lt;br /&gt;
:Replaces the entity &amp;lt;oldItem&amp;gt; with &amp;lt;newItem&amp;gt; in the inventory, while keeping &amp;lt;oldItem&amp;gt;&#039;s inventory position intact.  Note: The position guarantee only applies if &amp;lt;oldItem&amp;gt; and newItem  share the same category. If the categories are different, the position of &amp;lt;newItem&amp;gt; is likely to be different than the one of &amp;lt;oldItem&amp;gt;.  Note that &amp;lt;oldItem&amp;gt; will be removed from the inventory.  If &amp;lt;newItem&amp;gt; is the $null_entity, &amp;lt;oldItem&amp;gt; is just removed and no replacement happens.  Returns 1 if the operation was successful, 0 otherwise.&lt;br /&gt;
::&#039;&#039;newItem&#039;&#039;: can be $null_entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResetTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;resetWeaponProjectile&#039;&#039;&#039;(string weaponName); ====&lt;br /&gt;
&lt;br /&gt;
:Reloads the original projectile def name from the weaponDef. Used to revert a change made by the event changeWeaponProjectile().&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;resetZoom&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cancels any pending zoom transitions and resets the FOV to normal.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reskinCollisionModel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:For use after setSkin() on moveables and static models, if the CM needs to be refreshed to update surface properties after a skin change. CM will be regenerated from the original model file with the new skin.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;respawn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Respawn&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idItem&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseAdd&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseAllow&#039;&#039;&#039;(float type, entity responder); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseEnable&#039;&#039;&#039;(float type, float state); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 0 = disabled, 1 = enabled&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseIgnore&#039;&#039;&#039;(float type, entity responder); ====&lt;br /&gt;
&lt;br /&gt;
:This functions must be called on the stim entity. It will add the response to the ignore list, so that subsequent stims, should not trigger the stim anymore.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseRemove&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseSetAction&#039;&#039;&#039;(float type, string action); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseTrigger&#039;&#039;&#039;(entity source, float stimType); ====&lt;br /&gt;
&lt;br /&gt;
:Fires a response on this entity, without a stim (a stand-alone response, so to say)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restartPatrol&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;RestartTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restoreAddedEnts&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Base&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restoreMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restorePosition&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns this entity to the position stored in the &amp;quot;origin&amp;quot; spawn arg. This is the position the entity was spawned in unless the &amp;quot;origin&amp;quot; key is changed. Note that there is no guarantee that the entity won&#039;t be stuck in another entity when moved, so care should be taken to make sure that isn&#039;t possible.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rightFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to right foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idAnimated&#039;&#039;, &#039;&#039;idTestModel&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ropeRemovalCleanup&#039;&#039;&#039;(entity ropeEnt); ====&lt;br /&gt;
&lt;br /&gt;
:Called when rope arrow ropes are removed, removes stale pointers on the player object.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotate&#039;&#039;&#039;(vector angleSpeed); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation with the given angular speed. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateDownTo&#039;&#039;&#039;(float axis, float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation about the given axis by decreasing the current angle towards the given angle. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateOnce&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation towards the current angles plus the given Euler angles. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateTo&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation towards the given Euler angles. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateUpTo&#039;&#039;&#039;(float axis, float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation about the given axis by increasing the current angle towards the given angle. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;saveConDump&#039;&#039;&#039;(string cmd, string cmd); ====&lt;br /&gt;
&lt;br /&gt;
:Saves condump into FM directory; first argument is appended to dump filename, everything before last occurence of second argument is removed&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;saveGame&#039;&#039;&#039;(string filename); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;saveMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;say&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Multiplayer - Print this line on the network&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;scaleVine&#039;&#039;&#039;(float factor); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmVine&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;selectWeapon&#039;&#039;&#039;(string weapon); ====&lt;br /&gt;
&lt;br /&gt;
:Selects the weapon the player is holding.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;sessionCommand&#039;&#039;&#039;(string cmd); ====&lt;br /&gt;
&lt;br /&gt;
:Sends the sessioncommand to the game&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setActiveInventoryMapEnt&#039;&#039;&#039;(entity mapEnt); ====&lt;br /&gt;
&lt;br /&gt;
:Notify the player about a new active map entity. This clears out any previously active maps.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAcuity&#039;&#039;&#039;(string type, float val); ====&lt;br /&gt;
&lt;br /&gt;
:ai generalized alerts&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAlertGracePeriod&#039;&#039;&#039;(float frac, float duration, float count); ====&lt;br /&gt;
&lt;br /&gt;
:This starts the alert grace period for an AI. Should be called in the same frame as the alert that pushes them into a higher state.&lt;br /&gt;
::&#039;&#039;frac&#039;&#039;: the fraction of the alert below which they should ignore alerts during the grace period.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: the duration of the period in seconds&lt;br /&gt;
::&#039;&#039;count&#039;&#039;: the number of alerts ignored above which the grace period is invalid&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAlertLevel&#039;&#039;&#039;(float newLevel); ====&lt;br /&gt;
&lt;br /&gt;
:Set the alert level (AI_AlertLevel). This should always be called instead of setting AI_AlertLevel directly.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAngles&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current orientation of this entity (relative to bind parent if any)&lt;br /&gt;
::&#039;&#039;angles&#039;&#039;: the new orientation&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAngularVelocity&#039;&#039;&#039;(vector velocity); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current angular velocity of this entity. The angular velocity of a physics object is a vector that passes through the center of mass. The direction of this vector defines the axis of rotation and the magnitude defines the rate of rotation about the axis in radians per second.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAngularVelocityB&#039;&#039;&#039;(vector velocity, float id); ====&lt;br /&gt;
&lt;br /&gt;
:Set the angular velocity of a particular body&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Base&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAnimPrefix&#039;&#039;&#039;(string prefix); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a string which is placed in front of any animation names.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAttackFlag&#039;&#039;&#039;(float combatType, float enabled); ====&lt;br /&gt;
&lt;br /&gt;
:Activate or deactivate the given attack flag&lt;br /&gt;
::&#039;&#039;combatType&#039;&#039;: see tdm_defs.script for possible enum values&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAudThresh&#039;&#039;&#039;(float val); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setBlendFrames&#039;&#039;&#039;(float channel, float blendFrame); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the number of frames to blend between animations on the given channel.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setBoneMod&#039;&#039;&#039;(float allowBoneMod); ====&lt;br /&gt;
&lt;br /&gt;
:Enables or disables head looking (may be obsolete).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setCamera&#039;&#039;&#039;(entity cameraEnt); ====&lt;br /&gt;
&lt;br /&gt;
:Turns over view control to the given camera entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setClipMask&#039;&#039;&#039;(float clipMask); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the clipmask of the physics object.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setColor&#039;&#039;&#039;(float parm0, float parm1, float parm2); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the RGB color of this entity (shader parms Parm0, Parm1, Parm2).&lt;br /&gt;
::&#039;&#039;parm0&#039;&#039;: red&lt;br /&gt;
::&#039;&#039;parm1&#039;&#039;: green&lt;br /&gt;
::&#039;&#039;parm2&#039;&#039;: blue&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;SetConstraintPosition&#039;&#039;&#039;(string constraintName, vector position); ====&lt;br /&gt;
&lt;br /&gt;
:Moves the constraint with the given name that binds this entity to another entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Base&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setContents&#039;&#039;&#039;(float contents); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the contents of the physics object.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setController&#039;&#039;&#039;(entity playerController); ====&lt;br /&gt;
&lt;br /&gt;
:Let a player assume movement control of an AI vehicle (may be remote control as in a player on a coach pulled by a horse)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CAIVehicle&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;setCurInvCategory&#039;&#039;&#039;(string categoryName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the inventory cursor to the first item of the named category. Returns 1 on success, 0 on failure (e.g. wrong category name)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;setCurInvItem&#039;&#039;&#039;(string itemName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the inventory cursor to the named item. Returns: the item entity of the newly selected item (can be $null_entity).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setcvar&#039;&#039;&#039;(string name, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a cvar.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setDroppable&#039;&#039;&#039;(float droppable); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether an item may be dropped from the inventory. &lt;br /&gt;
::&#039;&#039;droppable&#039;&#039;: if non-zero the item becomes droppable, when called with 0 the item becomes non-droppable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setEnemy&#039;&#039;&#039;(entity enemy); ====&lt;br /&gt;
&lt;br /&gt;
:Make the given entity an enemy.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setEntityRelation&#039;&#039;&#039;(entity ent, float relation); ====&lt;br /&gt;
&lt;br /&gt;
:Set a relation to another entity, this can be friendly (&amp;gt;0), neutral(0) or hostile (&amp;lt;0)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFlyOffset&#039;&#039;&#039;(float offset); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the preferred height relative to the player&#039;s view height to fly at.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFlySpeed&#039;&#039;&#039;(float speed); ====&lt;br /&gt;
&lt;br /&gt;
:Set the speed flying creatures move at. Also sets speed for moveTypeSlide.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFrobable&#039;&#039;&#039;(float frobable); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the entity is frobable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFrobOnlyUsedByInv&#039;&#039;&#039;(float OnOff); ====&lt;br /&gt;
&lt;br /&gt;
:Engages or disengages a mode where we only frobhilight entities that can be used by our current inventory item. This also disables general frobactions and only allows &amp;quot;used by&amp;quot; frob actions.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGui&#039;&#039;&#039;(float handle, string guiFile); ====&lt;br /&gt;
&lt;br /&gt;
:Loads a new file into an existing GUI.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiFloat&#039;&#039;&#039;(float handle, string key, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiInt&#039;&#039;&#039;(float handle, string key, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiString&#039;&#039;&#039;(float handle, string key, string val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiStringFromKey&#039;&#039;&#039;(float handle, string key, entity src, string srcKey); ====&lt;br /&gt;
&lt;br /&gt;
:This is a kludge. It is equivelant to: setGuiString( handle, key, src.getKey(srcKey) ) However, it&#039;s used to bypass the 127 char size limit on script strings.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setHealth&#039;&#039;&#039;(float health); ====&lt;br /&gt;
&lt;br /&gt;
:Use these to set the health of AI or players (this also updates the AI_DEAD flag)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setHinderance&#039;&#039;&#039;(string source, float mCap, float fCap); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set hinderance from a source.&lt;br /&gt;
::&#039;&#039;mCap&#039;&#039;: mCap values from all sources are multiplied together to define a cap&lt;br /&gt;
::&#039;&#039;fCap&#039;&#039;: fCap values are not additive, the smallest one among all the sources is used&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setImmobilization&#039;&#039;&#039;(string source, float type); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set immobilization from a source. Warning: Not a finalized version. It&#039;s subject to change, so use it at your own risk.)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setJointAngle&#039;&#039;&#039;(float jointnum, float transform_type, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Modifies the orientation of the joint based on the transform type.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimatedEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setJointPos&#039;&#039;&#039;(float jointnum, float transform_type, vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Modifies the position of the joint based on the transform type.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimatedEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setKey&#039;&#039;&#039;(string key, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a key on this entity&#039;s spawn args. Note that most spawn args are evaluated when this entity spawns in, so this will not change the entity&#039;s behavior in most cases. This is chiefly for saving data the script needs in an entity for later retrieval.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: the spawnarg to set&lt;br /&gt;
::&#039;&#039;value&#039;&#039;: the value to store&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightgemModifier&#039;&#039;&#039;(string modifierName, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the named lightgem modifier to a certain value. An example would be the player lantern: setLightgemModifier(&amp;quot;lantern&amp;quot;, 32). This way multiple modifiers can be set by concurrent script threads.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightOrigin&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Set origin of lights independent of model origin&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightParm&#039;&#039;&#039;(float parmNum, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a shader parameter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightParms&#039;&#039;&#039;(float parm0, float parm1, float parm2, float parm3); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the red/green/blue/alpha shader parms on the light and the model.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLinearVelocity&#039;&#039;&#039;(vector velocity); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current linear velocity of this entity in units per second. The linear velocity of a physics object is a vector that defines the translation of the center of mass in units per second.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLinearVelocityB&#039;&#039;&#039;(vector velocity, float id); ====&lt;br /&gt;
&lt;br /&gt;
:Set the linear velocity of a particular body&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAFEntity_Base&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setModel&#039;&#039;&#039;(string modelName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the model this entity uses&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setMoveType&#039;&#039;&#039;(float movetype); ====&lt;br /&gt;
&lt;br /&gt;
:Set the current movetype.  movetypes are defined in tdm_ai.script&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setName&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the name of this entity.&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: the new name&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setNeverDormant&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:enables or prevents an entity from going dormant&lt;br /&gt;
::&#039;&#039;enable&#039;&#039;: 1 = enable, 0 = disable&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setNextState&#039;&#039;&#039;(string stateFunc); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the next state and waits until thread exits, or a frame delay before calling it. Handy for setting the state in the constructor.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveComp&#039;&#039;&#039;(float ObjNum, float CompNum, float state); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set the state of custom objective components&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: objective number. Starts counting at 1&lt;br /&gt;
::&#039;&#039;CompNum&#039;&#039;: component number. Starts counting at 1&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 1 or 0 for true or false&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveEnabling&#039;&#039;&#039;(float ObjNum, string strIn); ====&lt;br /&gt;
&lt;br /&gt;
:Set an objective&#039;s enabling objectives (objectives that must be completed before that objective may be completed).&lt;br /&gt;
::&#039;&#039;strIn&#039;&#039;: takes the form of a string that is a space-delimited list of integer objectives representing the new enabling objectives. E.g. : &#039;1 2 3 4&#039;&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveOngoing&#039;&#039;&#039;(float ObjNum, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets objective ongoing.&lt;br /&gt;
::&#039;&#039;val&#039;&#039;: 1 for true, 0 for false&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveOptional&#039;&#039;&#039;(float ObjNum, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets objective mandatory.&lt;br /&gt;
::&#039;&#039;val&#039;&#039;: 1 for true, 0 for false&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveState&#039;&#039;&#039;(float ObjNum, float State); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set the state of objectives from the script. For example, use this to invalidate an objective when something happens in your mission. The first argument is the numerical index of the objective (taking &#039;user&#039; objective indices, starting at 1). Choose from the following for the second argument: OBJ_INCOMPLETE, OBJ_COMPLETE, OBJ_INVALID, OBJ_FAILED. Use this on $player1 like $player1.setObjectiveState(1, OBJ_COMPLETE);&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveText&#039;&#039;&#039;(float ObjNum, string newText); ====&lt;br /&gt;
&lt;br /&gt;
:Modify the displayed text for an objective. Can also be a string template like #str_20000&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveVisible&#039;&#039;&#039;(float ObjNum, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets objective visibility.&lt;br /&gt;
::&#039;&#039;val&#039;&#039;: 1 for true, 0 for false&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setOrigin&#039;&#039;&#039;(vector origin); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current position of this entity (relative to it&#039;s bind parent if any)&lt;br /&gt;
::&#039;&#039;origin&#039;&#039;: the new origin&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setOwner&#039;&#039;&#039;(entity owner); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the owner of this entity. Entities will never collide with their owner.&lt;br /&gt;
::&#039;&#039;owner&#039;&#039;: the entity which will be made owner of this entity&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPeekOverlayBackground&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the background overlay for peeking, depending on aspect ratio.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPeekView&#039;&#039;&#039;(float OnOff, vector origin); ====&lt;br /&gt;
&lt;br /&gt;
:Toggle whether we should use a view from a peek entity as the player&#039;s view&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPersistantArg&#039;&#039;&#039;(string key, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a key/value pair that persists between maps&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPortAISoundLoss&#039;&#039;&#039;(float handle, float value); ====&lt;br /&gt;
&lt;br /&gt;
:AI sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPortPlayerSoundLoss&#039;&#039;&#039;(float handle, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Player sound loss scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPortSoundLoss&#039;&#039;&#039;(float handle, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPrime&#039;&#039;&#039;(entity vine); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmVine&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setRadius&#039;&#039;&#039;(float radius); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the size of the bounding box, x=y=z=radius.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setRadiusXYZ&#039;&#039;&#039;(float x, float y, float z); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the width/length/height of the light bounding box.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setRelation&#039;&#039;&#039;(float team1, float team2, float val); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setReplacementAnim&#039;&#039;&#039;(string animToReplace, string replacement); ====&lt;br /&gt;
&lt;br /&gt;
:Replaces the animation &amp;quot;animToReplace&amp;quot; with &amp;quot;replacement&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSavePermissions&#039;&#039;&#039;(float permission); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
::&#039;&#039;permission&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSecretsFound&#039;&#039;&#039;(float secrets); ====&lt;br /&gt;
&lt;br /&gt;
:Set how many secrets the player has found. Use getMissionStatistic() for getting the current value.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSecretsTotal&#039;&#039;&#039;(float secrets); ====&lt;br /&gt;
&lt;br /&gt;
:Set how many secrets exist in the map in total. Use getMissionStatistic() for getting the current value.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setShader&#039;&#039;&#039;(string shader); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the shader to be used for the light.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setShaderParm&#039;&#039;&#039;(float parm, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the value of the specified shader parm.&lt;br /&gt;
::&#039;&#039;parm&#039;&#039;: shader parm index&lt;br /&gt;
::&#039;&#039;value&#039;&#039;: new value&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;, &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setShaderParms&#039;&#039;&#039;(float parm0, float parm1, float parm2, float parm3); ====&lt;br /&gt;
&lt;br /&gt;
:Sets shader parms Parm0, Parm1, Parm2, and Parm3 (red, green, blue, and alpha respectively).&lt;br /&gt;
::&#039;&#039;parm0&#039;&#039;: red&lt;br /&gt;
::&#039;&#039;parm1&#039;&#039;: green&lt;br /&gt;
::&#039;&#039;parm2&#039;&#039;: blue&lt;br /&gt;
::&#039;&#039;parm3&#039;&#039;: alpha&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSightThreshold&#039;&#039;&#039;(float sightThreshold); ====&lt;br /&gt;
&lt;br /&gt;
:Set the sight threshold of the security camera: how lit up the player&#039;s lightgem needs to be in order to be seen. 0.0 to 1.0&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSize&#039;&#039;&#039;(vector min, vector max); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the size of this entity&#039;s bounding box.&lt;br /&gt;
::&#039;&#039;min&#039;&#039;: minimum corner coordinates&lt;br /&gt;
::&#039;&#039;max&#039;&#039;: maximum corner coordinates&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSkin&#039;&#039;&#039;(string skinName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the skin this entity uses.  Set to &amp;quot;&amp;quot; to turn off the skin.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSmokeVisibility&#039;&#039;&#039;(float particle_num, float on); ====&lt;br /&gt;
&lt;br /&gt;
:enables/disables smoke particles on bones.  pass in the particle #, or ALL_PARTICLES for turning on/off all particle systems. particles are spawned in the order they appear in the entityDef&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSolid&#039;&#039;&#039;(float solidity); ====&lt;br /&gt;
&lt;br /&gt;
:Set the solidity of the entity. If the entity has never been solid before it will be assigned solid and opaque contents/clip masks.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSoundLoss&#039;&#039;&#039;(float loss); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound loss value (dB).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPortalEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSoundVolume&#039;&#039;&#039;(float newLevel); ====&lt;br /&gt;
&lt;br /&gt;
:Set the volume of the sound to play, must be issued before startSoundShader.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSpawnArg&#039;&#039;&#039;(string key, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a key/value pair to be used when a new entity is spawned.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSpyglassOverlayBackground&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the background overlay for the spyglass, depending on aspect ratio.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setStartedOff&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setState&#039;&#039;&#039;(string stateFunc); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the next state and goes to it immediately&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSyncedAnimWeight&#039;&#039;&#039;(float channel, float animindex, float weight); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the blend amount on multi-point anims.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTalkState&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:Sets whether the player can talk to this character or not.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTalkTarget&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the entity (player) trying to talk to the character&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTeam&#039;&#039;&#039;(float newTeam); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the team number of this entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;SetTimerState&#039;&#039;&#039;(float stimId, float state); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTurnHinderance&#039;&#039;&#039;(string source, float mCap, float fCap); ====&lt;br /&gt;
&lt;br /&gt;
:Set the hinderance on the view turning from a source&lt;br /&gt;
::&#039;&#039;mCap&#039;&#039;: mCap values from all sources are multiplied together to define a cap&lt;br /&gt;
::&#039;&#039;fCap&#039;&#039;: fCap values are not additive, the smallest one among all the sources is used&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTurnRate&#039;&#039;&#039;(float rate); ====&lt;br /&gt;
&lt;br /&gt;
:Set the rate the character turns at&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setViewAngles&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the player view angles, e.g. make the player facing this direction. 0 0 0 is east (along the X axis in DR), 0 90 0 north (along the Y axis in DR) 0 180 0 west, 0 270 0 south.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setWatered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmVine&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setWorldOrigin&#039;&#039;&#039;(vector origin); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current position of this entity (regardless of any bind parent).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shooterFireProjectile&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Fires a projectile.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmFuncShooter&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;shooterGetAmmo&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the ammonition&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmFuncShooter&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;shooterGetState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current state of this shooter.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmFuncShooter&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shooterSetAmmo&#039;&#039;&#039;(float newAmmo); ====&lt;br /&gt;
&lt;br /&gt;
:Set the ammonition&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmFuncShooter&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shooterSetState&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:Activates / deactivates the shooter entity.&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 1 = active, 0 = inactive&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;tdmFuncShooter&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;show&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Makes this entity visible if it has a model.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;showAttachment&#039;&#039;&#039;(string attName, float show); ====&lt;br /&gt;
&lt;br /&gt;
:Show or hide an attachment.&lt;br /&gt;
::&#039;&#039;show&#039;&#039;: 1 shows attachment, 0 hides it.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;showAttachmentInd&#039;&#039;&#039;(float index, float show); ====&lt;br /&gt;
&lt;br /&gt;
:Show or hide an attachment by array index.&lt;br /&gt;
::&#039;&#039;index&#039;&#039;: starts at 0&lt;br /&gt;
::&#039;&#039;show&#039;&#039;: 1 shows attachment, 0 hides it.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;, &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shrivel&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;sin&#039;&#039;&#039;(float degrees); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the sine of the given angle in degrees.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;slideTo&#039;&#039;&#039;(vector position, float time); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;smoking&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:flame is now smoking (1), or not (0)&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 1 = smoking, 0 = not smoking&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idLight&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;spawn&#039;&#039;&#039;(string classname); ====&lt;br /&gt;
&lt;br /&gt;
:Creates an entity of the specified classname and returns a reference to the entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;SpawnFloat&#039;&#039;&#039;(string key, float default); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the floating point value for the given spawn argument.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;SpawnString&#039;&#039;&#039;(string key, string default); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string for the given spawn argument.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;spawnThrowableProjectile&#039;&#039;&#039;(string projectileName, string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:This method spawns a projectile of the type named by the caller and attaches it to the joint given by the caller.  The projectile becomes the AI&#039;s firable projectile. Returns a pointer to a projectile entity that can be  thrown by the AI. You can use AI_LaunchMissle (e* = launchMissle(v,v) ) to throw the stone.&lt;br /&gt;
::&#039;&#039;projectileName&#039;&#039;: The name of the projectile to spawn (as seen in a .def file) Must be descended from idProjectile&lt;br /&gt;
::&#039;&#039;jointName&#039;&#039;: The name of the joint on the model to which the particle should be attached for throwing. If this is NULL or the empty string, then it is attached to the model center.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;SpawnVector&#039;&#039;&#039;(string key, vector default); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the vector for the given spawn argument.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;speed&#039;&#039;&#039;(float speed); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the movement speed. Set this speed before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;sqrt&#039;&#039;&#039;(float square); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the square root of the given number.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;start&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Starts a spline or anim camera moving.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idCameraAnim&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startFx&#039;&#039;&#039;(string fx); ====&lt;br /&gt;
&lt;br /&gt;
:Starts an FX on this entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startGamePlayTimer&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Resets the game play timer to zero and (re)starts it.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startMouseGesture&#039;&#039;&#039;(float key, float thresh, float test, float inverted, float turnHinderance, float decideTime, float deadTime); ====&lt;br /&gt;
&lt;br /&gt;
:Start tracking a mouse gesture that started when the key impulse was pressed. Discretizes analog mouse movement into a few different gesture possibilities. Impulse arg can also be a button, see the UB_* enum in usercmdgen.h. For now, only one mouse gesture check at a time.&lt;br /&gt;
::&#039;&#039;thresh&#039;&#039;: Waits until the threshold mouse input thresh is reached before deciding.&lt;br /&gt;
::&#039;&#039;test&#039;&#039;: determines which test to do (0 = up/down, 1 = left/right, 2 = 4 directions, 3 = 8 directions).&lt;br /&gt;
::&#039;&#039;inverted&#039;&#039;: inverts the movement if set to 1, does not if 0&lt;br /&gt;
::&#039;&#039;turnHinderance&#039;&#039;: Sets the max player view turn rate when checking this mouse gesture (0 =&amp;gt; player view locked, 1.0 =&amp;gt; no effect on view turning)&lt;br /&gt;
::&#039;&#039;decideTime&#039;&#039;: time in milliseconds after which the mouse gesture is auto-decided, in the event that the mouse movement threshold was not reached. A DecideTime of -1 means wait forever until the button is released.&lt;br /&gt;
::&#039;&#039;deadTime&#039;&#039;: how long after attack is pressed that mouse control remains dampened by the fraction turnHinderance.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startRagdoll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Switches to a ragdoll taking over the animation.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAnimated&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;startSound&#039;&#039;&#039;(string sound, float channel, float netSync); ====&lt;br /&gt;
&lt;br /&gt;
:Plays the sound specified by the snd_* key/value pair on the channel and returns the length of the sound in seconds. This is the preferred method for playing sounds on an entity since it ensures that the sound is precached.&lt;br /&gt;
::&#039;&#039;sound&#039;&#039;: the spawnarg to reference, e.g. &#039;snd_move&#039;&lt;br /&gt;
::&#039;&#039;channel&#039;&#039;: the channel to play on&lt;br /&gt;
::&#039;&#039;netSync&#039;&#039;: -&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;startSoundShader&#039;&#039;&#039;(string shaderName, float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Plays a specific sound shader on the channel and returns the length of the sound in seconds. This is not the preferred method of playing a sound since you must ensure that the sound is loaded.&lt;br /&gt;
::&#039;&#039;shaderName&#039;&#039;: the sound shader to play&lt;br /&gt;
::&#039;&#039;channel&#039;&#039;: the channel to play the sound on&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startSpline&#039;&#039;&#039;(entity spline); ====&lt;br /&gt;
&lt;br /&gt;
:Starts moving along a spline stored on the given entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StartTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startZoom&#039;&#039;&#039;(float duration, float startFOV, float endFOV); ====&lt;br /&gt;
&lt;br /&gt;
:Call this to start the zoom in event. The player FOV is gradually zoomed in until over the given timespan.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: duration of the transition in msec&lt;br /&gt;
::&#039;&#039;startFOV&#039;&#039;: The start FOV, this is clamped to [1..179]&lt;br /&gt;
::&#039;&#039;endFOV&#039;&#039;: The end FOV, this is clamped to [1..179]&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_light&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Switches the spotlight on or off. Respects the security camera&#039;s power state.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_AI&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see AIs.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_animals&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see animals. Checked after seeAI or seeBodies.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_bodies&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see bodies.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_player&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see the player.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_sweep&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Enables or disables the camera&#039;s sweeping.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimAdd&#039;&#039;&#039;(float type, float radius); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimClearIgnoreList&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:This clears the ignore list for the stim of the given type It can be used if an entity changes state in some way that it would no longer be ignored&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimEnable&#039;&#039;&#039;(float type, float state); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 0 = disabled, 1 = enabled&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimRemove&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stop&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops a spline or anim camera moving.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idCameraAnim&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopAnim&#039;&#039;&#039;(float channel, float frames); ====&lt;br /&gt;
&lt;br /&gt;
:Stops the animation currently playing on the given channel over the given number of frames.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopFxFov&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopMouseGesture&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopMoving&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops any translational movement.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopPatrol&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops an AI from patrolling&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopRagdoll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:turns off the ragdoll&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopRotating&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops any rotational movement.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopSound&#039;&#039;&#039;(float channel, float netSync); ====&lt;br /&gt;
&lt;br /&gt;
:Stops a specific sound shader on the channel.&lt;br /&gt;
::&#039;&#039;channel&#039;&#039;: the channel to stop playback on&lt;br /&gt;
::&#039;&#039;netSync&#039;&#039;: -&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopSpline&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops moving along a spline.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopThinking&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StopTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strFind&#039;&#039;&#039;(string text, string find, float casesensitive, float start, float end); ====&lt;br /&gt;
&lt;br /&gt;
:Return the position of the given substring, counting from 0, or -1 if not found.&lt;br /&gt;
::&#039;&#039;casesensitive&#039;&#039;: 0&lt;br /&gt;
::&#039;&#039;start&#039;&#039;: 0&lt;br /&gt;
::&#039;&#039;end&#039;&#039;: -1&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strLeft&#039;&#039;&#039;(string text, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a string composed of the first num characters&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strLength&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of characters in the string&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strMid&#039;&#039;&#039;(string text, float start, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a string composed of the characters from start to start + num&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strRemove&#039;&#039;&#039;(string text, string remove); ====&lt;br /&gt;
&lt;br /&gt;
:Replace all occurances of the given substring with &amp;quot;&amp;quot;. Example: StrRemove(&amp;quot;abba&amp;quot;,&amp;quot;bb&amp;quot;) results in &amp;quot;aa&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strReplace&#039;&#039;&#039;(string text, string remove, string replace); ====&lt;br /&gt;
&lt;br /&gt;
:Replace all occurances of the given string with the replacement string. Example: StrRemove(&amp;quot;abba&amp;quot;,&amp;quot;bb&amp;quot;,&amp;quot;ccc&amp;quot;) results in &amp;quot;accca&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strRight&#039;&#039;&#039;(string text, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a string composed of the last num characters&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strSkip&#039;&#039;&#039;(string text, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string following the first num characters&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strToFloat&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the numeric value of the given string.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strToInt&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the integer value of the given string.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;sway&#039;&#039;&#039;(float speed, float phase, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation back and forth along the given angles with the given speed and phase.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Switch&#039;&#039;&#039;(float newState); ====&lt;br /&gt;
&lt;br /&gt;
:Move the lever to the on or off position (0 = off).&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CFrobLever&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;switchState&#039;&#039;&#039;(string stateName); ====&lt;br /&gt;
&lt;br /&gt;
:Switches to the state with the given name, current one is ended.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;syncAnimChannels&#039;&#039;&#039;(float fromChannel, float toChannel, float blendFrames); ====&lt;br /&gt;
&lt;br /&gt;
:Synchronises the channels&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idActor&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Tap&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Operates this handle.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CFrobHandle&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;TDM_Lock_OnLockPicked&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;, &#039;&#039;CFrobLock&#039;&#039;, &#039;&#039;idProjectile&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;TDM_Lock_StatusUpdate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;, &#039;&#039;CFrobLock&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;teleportTo&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:Teleports the entity to the position of the other entity, plus a possible offset and random offset (defined on the spawnargs of the entity to be teleported)&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;terminate&#039;&#039;&#039;(float threadNumber); ====&lt;br /&gt;
&lt;br /&gt;
:Terminates a thread.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testAnimAttack&#039;&#039;&#039;(string animname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testAnimMove&#039;&#039;&#039;(string animname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testAnimMoveTowardEnemy&#039;&#039;&#039;(string animname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testChargeAttack&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testEvent1&#039;&#039;&#039;(float float_pi, float int_beef, float float_exp, string string_tdm, float float_exp10, float int_food); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;testEvent2&#039;&#039;&#039;(float int_prevres, vector vec_123, float int_food, entity ent_player, entity ent_null, float float_pi, float float_exp); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;testEvent3&#039;&#039;&#039;(entity ent_prevres, vector vec_123, float float_pi, entity ent_player); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testMeleeAttack&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testMoveToPosition&#039;&#039;&#039;(vector position); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;threadname&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the name of the current thread.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;throwAF&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;throwMoveable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;time&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the movement time. Set this time before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Toggle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the forcefield on and off.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idForceField&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_light&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the spotlight on/off.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_AI&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see AIs.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_animals&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see bodies. Checked after seeAI or seeBodies.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_bodies&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see bodies.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_player&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see the player.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_sweep&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the camera sweep.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idSecurityCamera&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ToggleLock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the lock state. Unlocked movers will be locked and vice versa. The notes above concerning Unlock() still apply if this call unlocks the mover. &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ToggleOpen&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the mover state. Closes when fully open, opens when fully closed. If the mover is &amp;quot;interrupted&amp;quot; (e.g. when the player frobbed the mover in between), the move direction depends on the state of the internal &amp;quot;intent_open&amp;quot; flag. &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;totalAmmoCount&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Amount of ammo in inventory. since each shot may use more than 1 ammo, this is different than ammoAvailable()&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;touches&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if this entity touches the other entity.&lt;br /&gt;
::&#039;&#039;other&#039;&#039;: the entity to check against&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;trace&#039;&#039;&#039;(vector start, vector end, vector mins, vector maxs, float contents_mask, entity passEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the fraction of movement completed before the box from &#039;mins&#039; to &#039;maxs&#039; hits solid geometry when moving from &#039;start&#039; to &#039;end&#039;. The &#039;passEntity&#039; is considered non-solid during the move.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;tracePoint&#039;&#039;&#039;(vector start, vector end, float contents_mask, entity passEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the fraction of movement completed before the trace hits solid geometry when moving from &#039;start&#039; to &#039;end&#039;. The &#039;passEntity&#039; is considered non-solid during the move.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;translate&#039;&#039;&#039;(string input); ====&lt;br /&gt;
&lt;br /&gt;
:Translates a string (like #str_12345) into the current language&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceBetweenEntities&#039;&#039;&#039;(entity source, entity dest); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance between two entities.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceBetweenPoints&#039;&#039;&#039;(vector source, vector dest); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance between two points.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceToEntity&#039;&#039;&#039;(entity destination); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance to entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceToPoint&#039;&#039;&#039;(vector destination); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance to point.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;trigger&#039;&#039;&#039;(entity entityToTrigger); ====&lt;br /&gt;
&lt;br /&gt;
:Triggers the given entity.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;triggerMissionEnd&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;triggerParticles&#039;&#039;&#039;(string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;turnTo&#039;&#039;&#039;(float yaw); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;turnToEntity&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;turnToPos&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;unbind&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Detaches this entity from its master.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Unlock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Unlocks the mover. Calls to Open() will succeed after this call. Depending on the value of the spawnarg &amp;quot;open_on_unlock&amp;quot; the mover might automatically open after this call. &lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;CBinaryFrobMover&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;unpauseGame&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Unpauses the game. Most scripts are not executed during g_stopTime == true and won&#039;t get into the position of calling this.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;useAmmo&#039;&#039;&#039;(float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Eats the specified amount of ammo&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;vecLength&#039;&#039;&#039;(vector vec); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the length of the given vector.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;vecNormalize&#039;&#039;&#039;(vector vec); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the normalized version of the given vector.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;VecRotate&#039;&#039;&#039;(vector vector, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Rotates a vector by the specified angles.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;VecToAngles&#039;&#039;&#039;(vector vec); ====&lt;br /&gt;
&lt;br /&gt;
:Returns Euler angles for the given direction.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;visScan&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Checks for enemies or player in the AI&#039;s FOV, using light level and distance. For now the check is only done on the player.  Returns a reference to the sighted actor.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;wait&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends execution of the current thread for the given number of seconds.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;, &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitAction&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitFor&#039;&#039;&#039;(entity mover); ====&lt;br /&gt;
&lt;br /&gt;
:Waits for the given entity to complete its move.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitForRender&#039;&#039;&#039;(entity e); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends the current thread until &#039;e&#039; might have been rendered. It&#039;s event based, so it doesn&#039;t waste CPU repeatedly checking inPVS(). e.inPVS() will very likely be true when the thread resumes. If e.inPVS() is true, calling waitForRender() will probably just wait a frame, unless D3 can figure out that the entity doesn&#039;t need to be rendered. Optimizations regarding shadowcasting lights may not apply to this function - it is based purely off whether or not the entity&#039;s bounding box is visible.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitForThread&#039;&#039;&#039;(float threadNumber); ====&lt;br /&gt;
&lt;br /&gt;
:Waits for the given thread to terminate.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitFrame&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends execution of current thread for one game frame.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idEntity&#039;&#039;, &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;wakeOnFlashlight&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:Tells the monster to activate when flashlight shines on them.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;wander&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idAI&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;warning&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Issues a warning.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idThread&#039;&#039;&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;wasDamaged&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Check if the player was damaged this frame.&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idPlayer&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponHolstered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponLowering&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponOutOfAmmo&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponReady&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponReloading&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponRising&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponState&#039;&#039;&#039;(string stateFunction, float blendFrames); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
:Spawnclasses responding to this event: &#039;&#039;idWeapon&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Events by Spawnclass / Entity Type ==&lt;br /&gt;
=== idClass ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;remove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Removes the entity from the game. For AI, use kill() instead.&lt;br /&gt;
&lt;br /&gt;
=== idActor ===&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animDistance&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the distance that the anim travels. If the entity has multiple anims with animName, the distance may not match the anim that is played. Use chooseAnim to get a non-random anim and pass that string into animDistance.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animDone&#039;&#039;&#039;(float channel, float blendOutFrames); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the animation playing on the given channel is completed considering a number of blend frames.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animIsPaused&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Return whether the given anim channel is paused&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animLength&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the length of the anim in seconds. If the entity has multiple anims with animName, length may not match the anim that is played. Use chooseAnim to get a non-random anim and pass that string into animLength.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;animState&#039;&#039;&#039;(float channel, string stateFunction, float blendFrame); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a new animation state script function for the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attach&#039;&#039;&#039;(entity ent, string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Attach an entity to the AI. Entity spawnArgs checked for attachments are:  - &amp;quot;origin&amp;quot;, &amp;quot;angles&amp;quot;, and &amp;quot;joint&amp;quot;. These must be set prior to calling attach.&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the desired name of the attachment, e.g., &#039;melee_weapon&#039;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attachToPos&#039;&#039;&#039;(entity ent, string position, string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Attach an entity to the AI, using a named attachment position&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the desired name of the attachment, e.g., &#039;melee_weapon&#039;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;checkAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Ensures that the animation exists and causes an error if it doesn&#039;t.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;chooseAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Chooses a random anim and returns the name. Useful for doing move tests on anims.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;closestEnemyToPoint&#039;&#039;&#039;(vector point); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the enemy closest to the given location.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableAnimchannel&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Used to disable a certain animchannel (for example if the ai is dead)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableEyeFocus&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables eye focus.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;DisableLegIK&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:disables leg IK&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disablePain&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables pain animations.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;DisableWalkIK&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:disables walk IK&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dropAttachment&#039;&#039;&#039;(string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Drop the attachment for the given attachment name.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dropAttachmentInd&#039;&#039;&#039;(float index); ====&lt;br /&gt;
&lt;br /&gt;
:Drop the attachment for the given index.&lt;br /&gt;
::&#039;&#039;index&#039;&#039;: starts at 0&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableAnim&#039;&#039;&#039;(float channel, float blendFrames); ====&lt;br /&gt;
&lt;br /&gt;
:Enables animation on the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableEyeFocus&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables eye focus.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;EnableLegIK&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:enables leg IK&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enablePain&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables pain animations.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;EnableWalkIK&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:enables walk IK&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;finishAction&#039;&#039;&#039;(string action); ====&lt;br /&gt;
&lt;br /&gt;
:Finishes the given wait action.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;finishChannelAction&#039;&#039;&#039;(float channel, string animname); ====&lt;br /&gt;
&lt;br /&gt;
:Overloaded finishAction function for setting the waitstate on each channel separately&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;footstep&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getAnimState&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the current animation state script function used for the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAttachment&#039;&#039;&#039;(string attName); ====&lt;br /&gt;
&lt;br /&gt;
:Get the attached entity with the given attachment name Will be NULL if the name is invalid or if the entity no longer exists&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAttachmentInd&#039;&#039;&#039;(float index); ====&lt;br /&gt;
&lt;br /&gt;
:Get the attached entity at the given index. Will be NULL if the index is invalid or the entity no longer exists&lt;br /&gt;
::&#039;&#039;index&#039;&#039;: starts at 0&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAttackFlag&#039;&#039;&#039;(float combatType); ====&lt;br /&gt;
&lt;br /&gt;
:Returns 1 if the given attack flag is activated.&lt;br /&gt;
::&#039;&#039;combatType&#039;&#039;: see tdm_defs.script for possible enum values&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getBlendFrames&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of frames to blend between animations on the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getEyePos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get eye position of the player and the AI&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getHead&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity used for the character&#039;s head, if it has one.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeActPhase&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current melee action phase (holding,recovering,etc).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeActState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current melee action state (attacking/defending).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeActType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current melee action type (overhead,thrust,etc.).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeLastActTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the melee type of the last attack to hit this actor. Defaults to MELEETYPE_UNBLOCKABLE if we were not hit before.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeLastHitByType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the game time that the most recent melee action ended (in ms)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMeleeResult&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the result of the last melee action Follows MELEERESULT_* enum defined in tdm_defs.script&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumAttachments&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Return the number of attachments on an AI. Used to iterate through the attachments if desired.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumMeleeWeapons&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of melee weapons attached to an actor. This refers to the TDM-style attachments with the spawnarg &#039;is_weapon_melee&#039; set to &#039;1&#039;.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumRangedWeapons&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of ranged weapons attached to an actor. This refers to the TDM-style attachments with the spawnarg &#039;is_weapon_ranged&#039; set to &#039;1&#039;.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getPainAnim&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the pain animation.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current state.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true when an entity has a specific animation.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasEnemies&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the actor has one or more enemies.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;idleAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Plays the given idle animation on the given channel.  Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;inAnimState&#039;&#039;&#039;(float channel, string stateFunc); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given animation state script function is currently used for the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;leftFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to left foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;lookupReplacementAnim&#039;&#039;&#039;(string anim); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current replacement animation for &amp;quot;anim&amp;quot;. Returns empty if no replacement anim &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeActionFinished&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Called when the animation for the melee action has finished.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeActionHeld&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Called when the melee action reaches the &amp;quot;hold&amp;quot; point.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeActionReleased&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Called when the melee action is released from the hold point.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeAttackStarted&#039;&#039;&#039;(float attType); ====&lt;br /&gt;
&lt;br /&gt;
:Registers the start of a given melee attack Intended to be called from a script that also starts the animation&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;meleeBestParry&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the melee type integer of the best parry given the enemy attacks at the time If no attacking enemy is found, returns default of MELEETYPE_RL Follows MELEETYPE_* enum defined in tdm_defs.script&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;meleeNameForNum&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:Converts a melee type integer to a string name suffix Used for finding the right animation for a given type, etc. Possible names are, in order: &amp;quot;Over, LR, RL, Thrust, General&amp;quot; Where general blocks all attacks types except unblockable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;meleeParryStarted&#039;&#039;&#039;(float parType); ====&lt;br /&gt;
&lt;br /&gt;
:Registers the start of a given melee parry Intended to be called from a script that also starts the animation&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;nextEnemy&#039;&#039;&#039;(entity lastEnemy); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the next enemy the actor has acquired.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;overrideAnim&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the animation currently playing on the given channel and syncs the animation with the animation of the nearest animating channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pauseAnim&#039;&#039;&#039;(float channel, float bPause); ====&lt;br /&gt;
&lt;br /&gt;
:Pause all animations playing on the given channel. NOTE: Can also be used used by idWeapons&lt;br /&gt;
::&#039;&#039;bPause&#039;&#039;: true = pause, false = unpause&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Do not use, this is part of TDM&#039;s internal mechanics. Use playCustomAnim() on AI.in scripts instead of this. Plays the given animation on the given channel. Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playCycle&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Continuously repeats the given animation on the given channel.  Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;preventPain&#039;&#039;&#039;(float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Prevents any pain animation from being played for the given time in seconds.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: time in seconds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reAttachToCoords&#039;&#039;&#039;(string attName, string joint, vector offset, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Reattach an existing attachment&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the name of the attachment we want to reattach. &lt;br /&gt;
::&#039;&#039;joint&#039;&#039;: the name of the joint to attach to&lt;br /&gt;
::&#039;&#039;offset&#039;&#039;: the translation offset from joint&lt;br /&gt;
::&#039;&#039;angles&#039;&#039;: a (pitch, yaw, roll) angle vector that defines the rotation  of the attachment relative to the joint&#039;s orientation&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reAttachToPos&#039;&#039;&#039;(string attName, string position); ====&lt;br /&gt;
&lt;br /&gt;
:Reattach an existing attachment to a named attachment position. Example: reAttachToPos( melee_weapon, right_hand_held )&lt;br /&gt;
::&#039;&#039;attName&#039;&#039;: the name of the attachment we want to reattach.&lt;br /&gt;
::&#039;&#039;position&#039;&#039;: the new position we want to attach it to.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reloadTorchReplacementAnims&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:If actor has a torch, reload the torch&#039;s replacement anims.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeReplacementAnim&#039;&#039;&#039;(string anim); ====&lt;br /&gt;
&lt;br /&gt;
:Removes the replacement for the given &amp;quot;anim&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rightFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to right foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAnimPrefix&#039;&#039;&#039;(string prefix); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a string which is placed in front of any animation names.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAttackFlag&#039;&#039;&#039;(float combatType, float enabled); ====&lt;br /&gt;
&lt;br /&gt;
:Activate or deactivate the given attack flag&lt;br /&gt;
::&#039;&#039;combatType&#039;&#039;: see tdm_defs.script for possible enum values&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setBlendFrames&#039;&#039;&#039;(float channel, float blendFrame); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the number of frames to blend between animations on the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setNextState&#039;&#039;&#039;(string stateFunc); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the next state and waits until thread exits, or a frame delay before calling it. Handy for setting the state in the constructor.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setReplacementAnim&#039;&#039;&#039;(string animToReplace, string replacement); ====&lt;br /&gt;
&lt;br /&gt;
:Replaces the animation &amp;quot;animToReplace&amp;quot; with &amp;quot;replacement&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setState&#039;&#039;&#039;(string stateFunc); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the next state and goes to it immediately&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSyncedAnimWeight&#039;&#039;&#039;(float channel, float animindex, float weight); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the blend amount on multi-point anims.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;showAttachment&#039;&#039;&#039;(string attName, float show); ====&lt;br /&gt;
&lt;br /&gt;
:Show or hide an attachment.&lt;br /&gt;
::&#039;&#039;show&#039;&#039;: 1 shows attachment, 0 hides it.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;showAttachmentInd&#039;&#039;&#039;(float index, float show); ====&lt;br /&gt;
&lt;br /&gt;
:Show or hide an attachment by array index.&lt;br /&gt;
::&#039;&#039;index&#039;&#039;: starts at 0&lt;br /&gt;
::&#039;&#039;show&#039;&#039;: 1 shows attachment, 0 hides it.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopAnim&#039;&#039;&#039;(float channel, float frames); ====&lt;br /&gt;
&lt;br /&gt;
:Stops the animation currently playing on the given channel over the given number of frames.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;syncAnimChannels&#039;&#039;&#039;(float fromChannel, float toChannel, float blendFrames); ====&lt;br /&gt;
&lt;br /&gt;
:Synchronises the channels&lt;br /&gt;
&lt;br /&gt;
=== idAFEntity_Base ===&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAngularVelocityB&#039;&#039;&#039;(float id); ====&lt;br /&gt;
&lt;br /&gt;
:Get the angular velocitiy of a particular body Returns (0,0,0) if the body ID is invalid.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLinearVelocityB&#039;&#039;&#039;(float id); ====&lt;br /&gt;
&lt;br /&gt;
:Get the linear velocitiy of a particular body Returns (0,0,0) if the body ID is invalid.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getNumBodies&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of bodies in the AF. If the AF physics pointer is NULL, it returns 0.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restoreAddedEnts&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAngularVelocityB&#039;&#039;&#039;(vector velocity, float id); ====&lt;br /&gt;
&lt;br /&gt;
:Set the angular velocity of a particular body&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;SetConstraintPosition&#039;&#039;&#039;(string constraintName, vector position); ====&lt;br /&gt;
&lt;br /&gt;
:Moves the constraint with the given name that binds this entity to another entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLinearVelocityB&#039;&#039;&#039;(vector velocity, float id); ====&lt;br /&gt;
&lt;br /&gt;
:Set the linear velocity of a particular body&lt;br /&gt;
&lt;br /&gt;
=== idAFEntity_Gibbable ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;gib&#039;&#039;&#039;(string damageDefName); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
=== idAFEntity_Generic ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idAFEntity_WithAttachedHead ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CAIVehicle ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearController&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Need separate clearController because scripting doesn&#039;t like passing in $null_entity? (greebo: one could remove this function and set the argument type of setController to &#039;E&#039;.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;frobRidable&#039;&#039;&#039;(entity playerController); ====&lt;br /&gt;
&lt;br /&gt;
:Called when a player directly mounts or dismounts a ridable AI.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getMoveAnim&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the player-requested movement anim for a player controlled AI vehicle&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setController&#039;&#039;&#039;(entity playerController); ====&lt;br /&gt;
&lt;br /&gt;
:Let a player assume movement control of an AI vehicle (may be remote control as in a player on a coach pulled by a horse)&lt;br /&gt;
&lt;br /&gt;
=== idCombatNode ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;markUsed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the combat node if &amp;quot;use_once&amp;quot; is set on the entity.&lt;br /&gt;
&lt;br /&gt;
=== idAI ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;alert&#039;&#039;&#039;(string type, float val); ====&lt;br /&gt;
&lt;br /&gt;
:ai generalized alerts&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;alertAI&#039;&#039;&#039;(string type, float amount, entity actor); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
::&#039;&#039;type&#039;&#039;: alert type&lt;br /&gt;
::&#039;&#039;amount&#039;&#039;: alert amount&lt;br /&gt;
::&#039;&#039;actor&#039;&#039;: actor causing alert&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowDamage&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:The AI can take damage again.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowHiddenMovement&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:Normally, when hidden, monsters do not run physics. This enables physics when hidden.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowMovement&#039;&#039;&#039;(float allow); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;animTurn&#039;&#039;&#039;(float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Enable/disable animation controlled turning.&lt;br /&gt;
::&#039;&#039;angle&#039;&#039;: Pass in the maximum # of degrees the animation turns. Use an amount of 0 to disable.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attackBegin&#039;&#039;&#039;(string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;attackEnd&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;attackMelee&#039;&#039;&#039;(string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the attack hit&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;attackMissile&#039;&#039;&#039;(string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:returns projectile fired&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bark&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Let the AI bark a certain sound.&lt;br /&gt;
::&#039;&#039;sound&#039;&#039;: sound name, e.g. &#039;snd_warn_response&#039;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;becomeNonSolid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Makes the moveable non-solid for other entities.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;becomeRagdoll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:enables the ragdoll if the entity has one&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;becomeSolid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;burn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canBecomeSolid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canHitEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canHitEnemyFromAnim&#039;&#039;&#039;(string anim); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canHitEnemyFromJoint&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canReachEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if character can walk to enemy&#039;s position. For walking monsters, enemy should be near the floor.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canReachEntity&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if character can walk to entity&#039;s position. For walking monsters, entity should be near the floor.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canReachPosition&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if character can walk to specified position. For walking monsters, position should be near the floor.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSee&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSeeExt&#039;&#039;&#039;(entity ent, float b_useFOV, float b_useLighting); ====&lt;br /&gt;
&lt;br /&gt;
:This is an alternate version of canSee that can optionally choose to use field of vision and lighting calculations.&lt;br /&gt;
::&#039;&#039;b_useFOV&#039;&#039;: If 0 the entity will be visible even if the AI&#039;s back is turned to it&lt;br /&gt;
::&#039;&#039;b_useLighting&#039;&#039;: If b_useLighting is 0 the entity will be visible in complete darkness. If it is 1, the entity will only be visible if there is light shining on it, but the slightest light is enought. Use &amp;quot;isEntityHidden&amp;quot; as a script event with a threshold instead.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSeePositionExt&#039;&#039;&#039;(vector position, float b_useFOV, float b_useLighting); ====&lt;br /&gt;
&lt;br /&gt;
:This is an alternate version of canSeeExt that tests a location rather than an entity. Note that any actor at the position may make it not seeable from a distance.&lt;br /&gt;
::&#039;&#039;b_useFOV&#039;&#039;: If 0 the entity will be visible even if the AI&#039;s back is turned to it&lt;br /&gt;
::&#039;&#039;b_useLighting&#039;&#039;: If 0 the entity will be visible in complete darkness&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;chargeAttack&#039;&#039;&#039;(string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearBurn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clears the enemy entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearFlyOffset&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the preferred height relative to the player&#039;s view height to fly at to the value set in the def file.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;closestReachableEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Used for determining tactile alert targets&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;closestReachableEnemyOfEntity&#039;&#039;&#039;(entity team_mate); ====&lt;br /&gt;
&lt;br /&gt;
:Finds another character&#039;s closest reachable enemy&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;createMissile&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:returns projectile created&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;createMissileFromDef&#039;&#039;&#039;(string defName, string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;directDamage&#039;&#039;&#039;(entity damageTarget, string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableAFPush&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableClip&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableGravity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dropTorch&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;emptyHand&#039;&#039;&#039;(string hand); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableAFPush&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableClip&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableGravity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;endState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Ends the current state with the given name, returns TRUE if more than one state is remaining.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyInCombatCone&#039;&#039;&#039;(entity combatNode, float use_current_enemy_location); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyPositionValid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyRange&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;enemyRange2D&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;entityInAttackCone&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;faceEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;faceEntity&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;facingIdeal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findActorsInBounds&#039;&#039;&#039;(vector mins, vector maxs); ====&lt;br /&gt;
&lt;br /&gt;
:Returns an entity within the bounds specified&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findEnemy&#039;&#039;&#039;(float onlyInFov); ====&lt;br /&gt;
&lt;br /&gt;
:Finds enemy player in PVS&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findEnemyAI&#039;&#039;&#039;(float onlyInFov); ====&lt;br /&gt;
&lt;br /&gt;
:Finds enemy monster in PVS&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findEnemyInCombatNodes&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Finds enemy player in attack cones&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;findFriendlyAI&#039;&#039;&#039;(float team); ====&lt;br /&gt;
&lt;br /&gt;
:Use this to find a visible AI friendly to ourselves. It basically iterates over all active entities in the map and looks for friendly actors. The pythagorean distance is taken to evaluate the distance.  Don&#039;t call this every frame, this might get expensive in larger maps. Returns the nearest visible actor entity or the $null_entity, if none was found.&lt;br /&gt;
::&#039;&#039;team&#039;&#039;: used to constrain the search to a given team. Set this to -1 to let the code ignore this argument&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;fireMissileAtTarget&#039;&#039;&#039;(string jointname, string targetname); ====&lt;br /&gt;
&lt;br /&gt;
:Launches a missile at entity specified by &#039;attack_target&#039;.  returns projectile fired&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;flee&#039;&#039;&#039;(entity entToFleeFrom, float algorithm, float distanceOption); ====&lt;br /&gt;
&lt;br /&gt;
:Flee from the given entity. Pass the escape point lookup algorithm (e.g. EP_FIND_GUARDED) and the distanceOption (e.g. EP_DIST_NEAREST) to specify how the best escape point can be found. Refer to the tdm_defs.script file to see all the constants.  When algorithm is set to EP_FIND_AAS_AREA_FAR_FROM_THREAT, the distanceOption is interpreted as minimum threat distance. Returns FALSE if no escape point could be found.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;foundBody&#039;&#039;&#039;(entity body); ====&lt;br /&gt;
&lt;br /&gt;
:Objective callback for when an AI finds a body.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Gas_Knockout&#039;&#039;&#039;(entity inflictor); ====&lt;br /&gt;
&lt;br /&gt;
:AI knockout&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: the entity causing the knockout, can be the $null_entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAcuity&#039;&#039;&#039;(string type); ====&lt;br /&gt;
&lt;br /&gt;
:ai generalized alerts&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAlertActor&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the actor that alerted the AI in this frame.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAlertLevelOfOtherAI&#039;&#039;&#039;(entity otherEntity); ====&lt;br /&gt;
&lt;br /&gt;
:This event gets the alert number of another AI (AI_AlertLevel variable value) Returns the alert number of the other AI, 0.0 if its not an AI or is NULL&lt;br /&gt;
::&#039;&#039;otherEntity&#039;&#039;: the other AI entity who&#039;s alert number is being queried&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getAttacker&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the attacking entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getAudThresh&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getClosestHiddenTarget&#039;&#039;&#039;(string entity_type); ====&lt;br /&gt;
&lt;br /&gt;
:Finds the closest targeted entity of the specified type.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getCombatNode&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getCurrentYaw&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getEnemyEyePos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getEnemyPos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getJumpVelocity&#039;&#039;&#039;(vector pos, float speed, float max_jump_height); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMoveType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current movetype&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextIdleAnim&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:This returns the name of the next idle anim to be played on this AI (used by AnimState scripts).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getObservationPosition&#039;&#039;&#039;(vector targetPoint, float visualAcuityZeroToOne); ====&lt;br /&gt;
&lt;br /&gt;
:This event is used to get a position that the AI can move to observe a  given position.  It is useful for looking at hiding spots that can&#039;t be reached, and performing other investigation functions.  Returns a world position from which the observation can take place. Returns the current AI origin if no such point is found.  @sideEffect This uses the AI_DEST_UNREACHABLE flag variable  to indicate if a point was found. It will be true if none was found, false if one was found.&lt;br /&gt;
::&#039;&#039;targetPoint&#039;&#039;: the world position to be observed&lt;br /&gt;
::&#039;&#039;visualAcuityZeroToOne&#039;&#039;: the visual acuity of the AI on a scale of 0.0 to 1.0 where 0.0 is blind and 1.0 is perfect vision.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getObstacle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the obstacle in the character&#039;s path&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getRandomTarget&#039;&#039;&#039;(string entity_type); ====&lt;br /&gt;
&lt;br /&gt;
:Finds a random targeted entity of the specified type.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getReachableEntityPosition&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the position of the entity within the AAS if possible, otherwise just the entity position.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getRelationEnt&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getSndDir&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:ai hearing of sound &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTactEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:ai sense of touch&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTalkTarget&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity (player) trying to talk to the character&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTurnDelta&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTurnRate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the rate the character turns.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVectorToIdealOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the vector from where the AI is to where he ideally should be&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVisDir&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns position of the last visual alert.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasSeenEvidence&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:This returns 1 when the AI has seen evidence of intruders before (an enemy, a body...)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ignoreDamage&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:The AI can no longer take damage.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isEntityHidden&#039;&#039;&#039;(entity ent, float f_sightThreshold); ====&lt;br /&gt;
&lt;br /&gt;
:This is an alternate version of canSee, using FOV, distance and lighting.&lt;br /&gt;
::&#039;&#039;f_sightThreshold&#039;&#039;: goes from 0.0 (entity visible in complete darkness) to 1.0 (entity only visible if completely lit up).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isPlayerResponsibleForDeath&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the player was responsible for the AI&#039;s caller&#039;s death.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;kickObstacles&#039;&#039;&#039;(entity kickEnt, float force); ====&lt;br /&gt;
&lt;br /&gt;
:Kicks any obstacle in the character&#039;s path.&lt;br /&gt;
::&#039;&#039;kickEnt&#039;&#039;: pass in $null_entity if you don&#039;t have a specific entity to kick&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;kill&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Kills the monster.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;KO_Knockout&#039;&#039;&#039;(entity inflictor); ====&lt;br /&gt;
&lt;br /&gt;
:AI knockout&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: is the entity causing the knockout, can be the $null_entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;launchMissile&#039;&#039;&#039;(vector origin, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the projectile entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;locateEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Updates the last known position of the enemy independent from whether or not the enemy is visible.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAt&#039;&#039;&#039;(entity focusEntity, float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Aims the character&#039;s eyes and head toward an entity for a period of time.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAtAngles&#039;&#039;&#039;(float yawAngleClockwise, float pitchAngleUp, float rollAngle, float durationInSeconds); ====&lt;br /&gt;
&lt;br /&gt;
:A look at event that just looks at a set of angles relative  to the current body facing of the AI. This method is just like the vanilla Doom3 lookAt and lookAtEnemy methods, but it looks at the specified angles from the current body facing of the AI.&lt;br /&gt;
::&#039;&#039;yawAngleClockwise&#039;&#039;: Negative angles are to the left of  the AIs body and positive angles are to the right.&lt;br /&gt;
::&#039;&#039;pitchAngleUp&#039;&#039;: Negative values are down and positive values are up  where down and up are defined by the body axis.&lt;br /&gt;
::&#039;&#039;rollAngle&#039;&#039;: This is currently unused and does nothing.&lt;br /&gt;
::&#039;&#039;durationInSeconds&#039;&#039;: The duration to look in seconds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAtEnemy&#039;&#039;&#039;(float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Aims the character&#039;s eyes and head toward the current enemy for a period of time.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;lookAtPosition&#039;&#039;&#039;(vector lookAtWorldPosition, float durationInSeconds); ====&lt;br /&gt;
&lt;br /&gt;
:This method is just like the vanilla Doom3 lookAt and lookAtEnemy methods, but instead of looking at an entity, it looks at a position in worldspace.  That is, it turns the head of the AI to look at the position.&lt;br /&gt;
::&#039;&#039;lookAtWorldPosition&#039;&#039;: position in space to look at&lt;br /&gt;
::&#039;&#039;durationInSeconds&#039;&#039;: duration to look in seconds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;meleeAttackToJoint&#039;&#039;&#039;(string joint, string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveOutOfRange&#039;&#039;&#039;(entity ent, float range); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;moveStatus&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToAttackPosition&#039;&#039;&#039;(entity ent, string attack_anim); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToCover&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToCoverFrom&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToEnemyHeight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToEntity&#039;&#039;&#039;(entity destination); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToPosition&#039;&#039;&#039;(vector position); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;muzzleFlash&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;numSmokeEmitters&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the # of emitters defined by &#039;smokeParticleSystem&#039; in the entitydef&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;performRelight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Deal with doused lights.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playAndLipSync&#039;&#039;&#039;(string soundName, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Play the given sound, using the given lipsync animation. The lipsync animation should just be a simple non-loopable animation of the mouth opening in a linear fashion. The code will select individual frames from this to construct a simple lipsyncing effect which is in time with the sound.  Returns the length of the played sound in seconds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playCustomAnim&#039;&#039;&#039;(string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Plays the given animation on legs and torso. Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;preBurn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;predictEnemyPos&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Tries to predict the player&#039;s movement based on the AAS and his direction of movement.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;processBlindStim&#039;&#039;&#039;(entity stimSource, float skipVisibilityCheck); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;processVisualStim&#039;&#039;&#039;(entity stimSource); ====&lt;br /&gt;
&lt;br /&gt;
:Use this call to let the AI react to a visual stim (coming from the source entity).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;pushPointIntoAAS&#039;&#039;&#039;(vector post); ====&lt;br /&gt;
&lt;br /&gt;
:Tries to push the point into a valid AAS area&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pushState&#039;&#039;&#039;(string stateName); ====&lt;br /&gt;
&lt;br /&gt;
:Pushes the state with the given name, current one is postponed.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;radiusDamageFromJoint&#039;&#039;&#039;(string jointname, string damageDef); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;randomPath&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restartPatrol&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restoreMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;saveMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAcuity&#039;&#039;&#039;(string type, float val); ====&lt;br /&gt;
&lt;br /&gt;
:ai generalized alerts&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAlertGracePeriod&#039;&#039;&#039;(float frac, float duration, float count); ====&lt;br /&gt;
&lt;br /&gt;
:This starts the alert grace period for an AI. Should be called in the same frame as the alert that pushes them into a higher state.&lt;br /&gt;
::&#039;&#039;frac&#039;&#039;: the fraction of the alert below which they should ignore alerts during the grace period.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: the duration of the period in seconds&lt;br /&gt;
::&#039;&#039;count&#039;&#039;: the number of alerts ignored above which the grace period is invalid&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAlertLevel&#039;&#039;&#039;(float newLevel); ====&lt;br /&gt;
&lt;br /&gt;
:Set the alert level (AI_AlertLevel). This should always be called instead of setting AI_AlertLevel directly.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAudThresh&#039;&#039;&#039;(float val); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setBoneMod&#039;&#039;&#039;(float allowBoneMod); ====&lt;br /&gt;
&lt;br /&gt;
:Enables or disables head looking (may be obsolete).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setEnemy&#039;&#039;&#039;(entity enemy); ====&lt;br /&gt;
&lt;br /&gt;
:Make the given entity an enemy.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFlyOffset&#039;&#039;&#039;(float offset); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the preferred height relative to the player&#039;s view height to fly at.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFlySpeed&#039;&#039;&#039;(float speed); ====&lt;br /&gt;
&lt;br /&gt;
:Set the speed flying creatures move at. Also sets speed for moveTypeSlide.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setMoveType&#039;&#039;&#039;(float movetype); ====&lt;br /&gt;
&lt;br /&gt;
:Set the current movetype.  movetypes are defined in tdm_ai.script&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSmokeVisibility&#039;&#039;&#039;(float particle_num, float on); ====&lt;br /&gt;
&lt;br /&gt;
:enables/disables smoke particles on bones.  pass in the particle #, or ALL_PARTICLES for turning on/off all particle systems. particles are spawned in the order they appear in the entityDef&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTalkState&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:Sets whether the player can talk to this character or not.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTalkTarget&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the entity (player) trying to talk to the character&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTurnRate&#039;&#039;&#039;(float rate); ====&lt;br /&gt;
&lt;br /&gt;
:Set the rate the character turns at&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shrivel&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;slideTo&#039;&#039;&#039;(vector position, float time); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;spawnThrowableProjectile&#039;&#039;&#039;(string projectileName, string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:This method spawns a projectile of the type named by the caller and attaches it to the joint given by the caller.  The projectile becomes the AI&#039;s firable projectile. Returns a pointer to a projectile entity that can be  thrown by the AI. You can use AI_LaunchMissle (e* = launchMissle(v,v) ) to throw the stone.&lt;br /&gt;
::&#039;&#039;projectileName&#039;&#039;: The name of the projectile to spawn (as seen in a .def file) Must be descended from idProjectile&lt;br /&gt;
::&#039;&#039;jointName&#039;&#039;: The name of the joint on the model to which the particle should be attached for throwing. If this is NULL or the empty string, then it is attached to the model center.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopPatrol&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops an AI from patrolling&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopRagdoll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:turns off the ragdoll&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopThinking&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;switchState&#039;&#039;&#039;(string stateName); ====&lt;br /&gt;
&lt;br /&gt;
:Switches to the state with the given name, current one is ended.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testAnimAttack&#039;&#039;&#039;(string animname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testAnimMove&#039;&#039;&#039;(string animname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testAnimMoveTowardEnemy&#039;&#039;&#039;(string animname); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testChargeAttack&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testMeleeAttack&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testMoveToPosition&#039;&#039;&#039;(vector position); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;throwAF&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;throwMoveable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceBetweenEntities&#039;&#039;&#039;(entity source, entity dest); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance between two entities.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceBetweenPoints&#039;&#039;&#039;(vector source, vector dest); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance between two points.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceToEntity&#039;&#039;&#039;(entity destination); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance to entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;travelDistanceToPoint&#039;&#039;&#039;(vector destination); ====&lt;br /&gt;
&lt;br /&gt;
:Approximate travel distance to point.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;triggerParticles&#039;&#039;&#039;(string jointName); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;turnTo&#039;&#039;&#039;(float yaw); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;turnToEntity&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;turnToPos&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;visScan&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Checks for enemies or player in the AI&#039;s FOV, using light level and distance. For now the check is only done on the player.  Returns a reference to the sighted actor.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitAction&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;wakeOnFlashlight&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:Tells the monster to activate when flashlight shines on them.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;wander&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
=== idTestModel ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;leftFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to left foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rightFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to right foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
=== CBinaryFrobMover ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Close&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Closes the frobmover, regardless of its previous state. Mover must be open, otherwise nothing happens.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;GetFractionalPosition&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a fraction between 0.00 (closed) and 1.00 (open).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;IsLocked&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true (nonzero) if the mover is currently locked.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;IsOpen&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true (nonzero) if the mover is open, which is basically the same as &amp;quot;not closed&amp;quot;. A mover is considered closed when it is at its close position.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;IsPickable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true (nonzero) if this frobmover is pickable.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Lock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Locks the mover. Calls to Open() will not succeed after this call. &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Open&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Opens the frobmover, regardless of its previous state. The mover will not move when it&#039;s locked. &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;TDM_Lock_OnLockPicked&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;TDM_Lock_StatusUpdate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ToggleLock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the lock state. Unlocked movers will be locked and vice versa. The notes above concerning Unlock() still apply if this call unlocks the mover. &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ToggleOpen&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the mover state. Closes when fully open, opens when fully closed. If the mover is &amp;quot;interrupted&amp;quot; (e.g. when the player frobbed the mover in between), the move direction depends on the state of the internal &amp;quot;intent_open&amp;quot; flag. &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Unlock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Unlocks the mover. Calls to Open() will succeed after this call. Depending on the value of the spawnarg &amp;quot;open_on_unlock&amp;quot; the mover might automatically open after this call. &lt;br /&gt;
&lt;br /&gt;
=== idBrittleFracture ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;dampenSound&#039;&#039;&#039;(float dampen); ====&lt;br /&gt;
&lt;br /&gt;
:Toggle whether the shattering sound is dampened on the window, e.g., when covered by moss.&lt;br /&gt;
::&#039;&#039;dampen&#039;&#039;: 1 = dampened, 0 = not dampened&lt;br /&gt;
&lt;br /&gt;
=== idCameraView ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idCameraAnim ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;start&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Starts a spline or anim camera moving.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stop&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops a spline or anim camera moving.&lt;br /&gt;
&lt;br /&gt;
=== idFuncEmitter ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;emitterAddModel&#039;&#039;&#039;(string modelName, vector modelOffset); ====&lt;br /&gt;
&lt;br /&gt;
:Adds a new particle (or regular, if you wish) model to the emitter, located at modelOffset units away from the emitter&#039;s origin.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;emitterGetNumModels&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of models/particles this emitter has. Always &amp;gt;= 1.&lt;br /&gt;
&lt;br /&gt;
=== idEntity ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activateContacts&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Activate objects sitting on this object.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activateTargets&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Causes this entity to activate all it&#039;s targets. Similar to how a trigger activates entities.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addInvItem&#039;&#039;&#039;(entity inv_item); ====&lt;br /&gt;
&lt;br /&gt;
:Adds the given item to the inventory. Depending on the type the passed entity will be removed from the game (as for loot items) or hidden.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addItemToInv&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Adds the entity to the given entity&#039;s inventory. Depending on the type the entity will be removed from the game (as for loot items) or hidden. Example: $book-&amp;gt;addItemToInv($player1);&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addTarget&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Add a target to this entity.&lt;br /&gt;
::&#039;&#039;target&#039;&#039;: the entity to add as target&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;applyImpulse&#039;&#039;&#039;(entity source, float bodyid, vector point, vector impulse); ====&lt;br /&gt;
&lt;br /&gt;
:Applies an impulse to the entity. Example: entity.applyImpulse($player1, 0, entity.getOrigin(), &#039;0 0 2&#039;);&lt;br /&gt;
::&#039;&#039;source&#039;&#039;: Pass $null_entity or the entity that applies the impulse&lt;br /&gt;
::&#039;&#039;bodyid&#039;&#039;: For articulated figures, ID of the body, 0 for the first (main) body. Otherwise use 0.&lt;br /&gt;
::&#039;&#039;point&#039;&#039;: Point on the body where the impulse is applied to&lt;br /&gt;
::&#039;&#039;impulse&#039;&#039;: Vector of the impulse&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bind&#039;&#039;&#039;(entity master); ====&lt;br /&gt;
&lt;br /&gt;
:Fixes this entity&#039;s position and orientation relative to another entity, such that when the master entity moves, so does this entity.&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: the entity to bind to&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bindPosition&#039;&#039;&#039;(entity master); ====&lt;br /&gt;
&lt;br /&gt;
:Fixes this entity&#039;s position (but not orientation) relative to another entity, such that when the master entity moves, so does this entity.&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: the entity to bind to&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bindToBody&#039;&#039;&#039;(entity master, float bodyID, float orientated); ====&lt;br /&gt;
&lt;br /&gt;
:Bind to AF body&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: entity to bind to&lt;br /&gt;
::&#039;&#039;bodyID&#039;&#039;: AF body ID to bind to&lt;br /&gt;
::&#039;&#039;orientated&#039;&#039;: binds the orientation as well as position, if set to 1&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bindToJoint&#039;&#039;&#039;(entity master, string boneName, float rotateWithMaster); ====&lt;br /&gt;
&lt;br /&gt;
:Fixes this entity&#039;s position and orientation relative to a bone on another entity, such that when the master&#039;s bone moves, so does this entity.&lt;br /&gt;
::&#039;&#039;master&#039;&#039;: the entity to bind to&lt;br /&gt;
::&#039;&#039;boneName&#039;&#039;: the bone name&lt;br /&gt;
::&#039;&#039;rotateWithMaster&#039;&#039;: -&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;cacheSoundShader&#039;&#039;&#039;(string shaderName); ====&lt;br /&gt;
&lt;br /&gt;
:Ensure the specified sound shader is loaded by the system. Prevents cache misses when playing sound shaders.&lt;br /&gt;
::&#039;&#039;shaderName&#039;&#039;: the sound shader to cache&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;callFunction&#039;&#039;&#039;(string functionName); ====&lt;br /&gt;
&lt;br /&gt;
:Calls a function on an entity&#039;s script object. See also callGlobalFunction().&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;callGlobalFunction&#039;&#039;&#039;(string functionName, entity other); ====&lt;br /&gt;
&lt;br /&gt;
:calls a global function and passes the other entity along as the first argument calls the function in a new thread, so it continues executing in the current thread right away (unlike entity.callFunction( &amp;quot;blah&amp;quot;))&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;callGui&#039;&#039;&#039;(float handle, string namedEvent); ====&lt;br /&gt;
&lt;br /&gt;
:Calls a named event in a GUI.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canBeUsedBy&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the entity can be used by the argument entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSeeEntity&#039;&#039;&#039;(entity target, float useLighting); ====&lt;br /&gt;
&lt;br /&gt;
:This is a general version of idAI::canSee, that can be used by all entities. It doesn&#039;t regard FOV, it just performs a trace to check whether the target is occluded by world geometry. Is probably useful for stim/response as well Pass useLighting = true to take the lighting of the target entity into account. Use &amp;quot;isEntityHidden&amp;quot; as a script event with a threshold. The constant threshold value for useLighting is defined within the SDK in game/entity.h.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeEntityRelation&#039;&#039;&#039;(entity ent, float relationChange); ====&lt;br /&gt;
&lt;br /&gt;
:This changes the current relation to an entity by adding the new amount.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeInvIcon&#039;&#039;&#039;(string name, string category, string icon); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the inventory icon of the given item in the given category to &amp;lt;icon&amp;gt;.&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: name of the item&lt;br /&gt;
::&#039;&#039;category&#039;&#039;: the item&#039;s category&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeInvItemCount&#039;&#039;&#039;(string name, string category, float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Decreases the inventory item stack count by amount. The item is addressed using the name and category of the item. These are usually defined on the inventory item entity (&amp;quot;inv_name&amp;quot;, &amp;quot;inv_category&amp;quot;)  Amount can be both negative and positive.&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: name of the item&lt;br /&gt;
::&#039;&#039;category&#039;&#039;: the item&#039;s category&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeInvLightgemModifier&#039;&#039;&#039;(string name, string category, float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the lightgem modifier value of the given item. Valid arguments are between 0 and 32 (which is the maximum lightgem value).&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: name of the item&lt;br /&gt;
::&#039;&#039;category&#039;&#039;: the item&#039;s category&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;changeLootAmount&#039;&#039;&#039;(float type, float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Changes the loot amount of the given Type (e.g. GOODS) by &amp;lt;amount&amp;gt;.  The mission statisic for loot found gets changed too.  The new value of the changed type is returned (e.g. the new GOODS value if this has been changed).  Note: The LOOT_TOTAL type can&#039;t be changed and 0 is returned.&lt;br /&gt;
::&#039;&#039;type&#039;&#039;: one of: LOOT_GOLD, LOOT_GOODS, LOOT_JEWELRY&lt;br /&gt;
::&#039;&#039;amount&#039;&#039;: can be negative&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;checkAbsence&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:description missing&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;copyBind&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:copy bind information of other to this entity (i.e., bind this entity to the same entity that other is bound to)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;createOverlay&#039;&#039;&#039;(string guiFile, float layer); ====&lt;br /&gt;
&lt;br /&gt;
:Creates a GUI overlay. (must be used on the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;CreateTimer&#039;&#039;&#039;(float stimId, float hour, float minutes, float seconds, float milliseconds); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;damage&#039;&#039;&#039;(entity inflictor, entity attacker, vector dir, string damageDefName, float damageScale); ====&lt;br /&gt;
&lt;br /&gt;
:Deals damage to this entity (gets translated into the idEntity::Damage() method within the SDK).&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: the entity causing the damage (maybe a projectile)&lt;br /&gt;
::&#039;&#039;attacker&#039;&#039;: the &amp;quot;parent&amp;quot; entity of the inflictor, the one that is responsible for the inflictor (can be the same)&lt;br /&gt;
::&#039;&#039;dir&#039;&#039;: the direction the attack is coming from.&lt;br /&gt;
::&#039;&#039;damageDefName&#039;&#039;: the name of the damage entityDef to know what damage is being dealt to &amp;lt;self&amp;gt; (e.g. &amp;quot;damage_lava&amp;quot;)&lt;br /&gt;
::&#039;&#039;damageScale&#039;&#039;: the scale of the damage (pass 1.0 as default, this should be ok).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;destroyOverlay&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Destroys a GUI overlay. (must be used on the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;distanceTo&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the distance of this entity to another entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;distanceToPoint&#039;&#039;&#039;(vector point); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the distance of this entity to a point.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;extinguishLights&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Extinguishes all lights (i.e. the &amp;lt;self&amp;gt; entity plus all bound lights)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeSound&#039;&#039;&#039;(float channel, float newLevel, float fadeTime); ====&lt;br /&gt;
&lt;br /&gt;
:Fades the sound on this entity to a new level over a period of time.  Use SND_CHANNEL_ANY for all currently playing sounds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;frob&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Frobs the entity (i.e. simulates a frob action performed by the player). Returns TRUE if the entity is frobable, FALSE otherwise.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;frobHilight&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:ishtvan: Tries to make the entity frobhilight or not&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current orientation of this entity (relative to bind parent if any).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAngularVelocity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current angular velocity of this entity. The angular velocity of a physics object is a vector that passes through the center of mass. The direction of this vector defines the axis of rotation and the magnitude defines the rate of rotation about the axis in radians per second.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getBindChild&#039;&#039;&#039;(float ind); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the ind_th bind child of this entity or NULL if index is invalid. NOTE: indices start at zero&lt;br /&gt;
::&#039;&#039;ind&#039;&#039;: child index&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getBindMaster&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity&#039;s bindmaster&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getBoolKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the boolean value of a specific spawn arg, defaulting to false.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getClipMask&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the clipmask of the physics object.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getColor&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the color of this entity (shader parms Parm0, Parm1, Parm2).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getContents&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the contents of the physics object.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvCategory&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the currently highlighted inventory category.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvIcon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the icon of the currently highlighted inventory item.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getCurInvItemEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently highlighted inventory item entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvItemId&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the currently highlighted inventory item (the one defined in &amp;quot;inv_item_id&amp;quot;). Most items will return an empty string, unless the &amp;quot;inv_item_id&amp;quot; is set on purpose.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurInvItemName&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the currently highlighted inventory item (the one defined in &amp;quot;inv_name&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getEntityFlag&#039;&#039;&#039;(string flagName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the value of the specified entity flag.&lt;br /&gt;
::&#039;&#039;flagName&#039;&#039;: Can be one of (case insensitive): 	&lt;br /&gt;
notarget: if true never attack or target this entity 	&lt;br /&gt;
noknockback: if true no knockback from hits 	&lt;br /&gt;
takedamage: if true this entity can be damaged 	&lt;br /&gt;
hidden: if true this entity is not visible 	&lt;br /&gt;
bindOrientated: if true both the master orientation is used for binding 	&lt;br /&gt;
solidForTeam: if true this entity is considered solid when a physics team mate pushes entities 	&lt;br /&gt;
forcePhysicsUpdate: if true always update from the physics whether the object moved or not 	&lt;br /&gt;
selected: if true the entity is selected for editing 	&lt;br /&gt;
neverDormant: if true the entity never goes dormant 	&lt;br /&gt;
isDormant: if true the entity is dormant 	&lt;br /&gt;
hasAwakened: before a monster has been awakened the first time, use full PVS for dormant instead of area-connected 	&lt;br /&gt;
invisible: if true this entity cannot be seen 	&lt;br /&gt;
inaudible: if true this entity cannot be heard &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getEntityKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the entity specified by the spawn arg.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getFloatKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the floating point value of a specific spawn arg, defaulting to 0.0f.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getGui&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the file currently loaded by a GUI.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getGuiFloat&#039;&#039;&#039;(float handle, string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getGuiInt&#039;&#039;&#039;(float handle, string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getGuiString&#039;&#039;&#039;(float handle, string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getHealth&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current health.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getIntKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the integer value of a specific spawn arg, defaulting to 0.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the value of a specific spawn arg, defaulting to &#039;&#039;.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLightInPVS&#039;&#039;&#039;(float falloff, float scaling); ====&lt;br /&gt;
&lt;br /&gt;
:Computes the sum of all light in the PVS of the entity you call this on, and returns a vector with the sum.&lt;br /&gt;
::&#039;&#039;falloff&#039;&#039;: 0: no falloff with distance  0.5: sqrt(linear) falloff	(dist 100 =&amp;gt; 1/10)  1: linear falloff			(dist 100 =&amp;gt; 1/100)  2: square falloff			(dist 100 =&amp;gt; 1/10000) &lt;br /&gt;
::&#039;&#039;scaling&#039;&#039;: factor to scale the distance, can be used to lower/raise distance factor  after the linear or square scaling has been used good looking values are approx: sqrt(linear): 0.01, linear: 0.1, square 1.0&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLinearVelocity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current linear velocity of this entity. The linear velocity of a physics object is a vector that defines the translation of the center of mass in units per second.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getLocation&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the idLocation entity corresponding to the entity&#039;s current location. This was player-specific before, but is now available to all entities.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getLootAmount&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the amount of loot for the given type (e.g. LOOT_GOODS). Pass LOOT_TOTAL to return the sum of all loot types.&lt;br /&gt;
::&#039;&#039;type&#039;&#039;: one of: LOOT_GOLD, LOOT_GOODS, LOOT_JEWELRY, LOOT_TOTAL&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMass&#039;&#039;&#039;(float body); ====&lt;br /&gt;
&lt;br /&gt;
:Gets mass of a body for an entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getMaxs&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the maximum corner of this entity&#039;s bounding box.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getMins&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the minimum corner of this entity&#039;s bounding box.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getName&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of this entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getNextInvItem&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cycles the standard cursor to the next inventory item. Returns the item entity pointed to after the operation is complete.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextKey&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Searches for the name of a spawn arg that matches the prefix.  For example, passing in &amp;quot;attack_target&amp;quot; matches &amp;quot;attack_target1&amp;quot;, &amp;quot;attack_targetx&amp;quot;, &amp;quot;attack_target_enemy&amp;quot;,  etc. The returned string is the name of the key which can then be passed into functions like getKey() to lookup the value of that spawn arg.  This is useful for when you have multiple values to look up, like when you target multiple objects.  To find the next matching key, pass in the previous result and the next key returned will be the first one that matches after the previous result. Pass in &amp;quot;&amp;quot; to get the first match. Passing in a non-existent key is the same as passing in &amp;quot;&amp;quot;. Returns &amp;quot;&amp;quot; when no  more keys match.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current position of this entity (relative to bind parent if any).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getPrevInvItem&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cycles the standard cursor to the previous inventory item. Returns the item entity pointed to after the operation is complete.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetResponseEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity which should take the response. Some entities like AI heads are not responding themselves to stims, but relay it to another entity (i.e. the bodies they&#039;re attached to).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getShaderParm&#039;&#039;&#039;(float parm); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the value of the specified shader parm.&lt;br /&gt;
::&#039;&#039;parm&#039;&#039;: shader parm index&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getSize&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the size of this entity&#039;s bounding box.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getSoundVolume&#039;&#039;&#039;(string soundName); ====&lt;br /&gt;
&lt;br /&gt;
:Get the volume of the sound to play.&lt;br /&gt;
::&#039;&#039;soundName&#039;&#039;: the name of the sound&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTarget&#039;&#039;&#039;(float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the requested target entity.&lt;br /&gt;
::&#039;&#039;num&#039;&#039;: The target number. Starts at 0.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTeam&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current team number.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVectorKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Retrieves the vector value of a specific spawn arg, defaulting to &#039;0 0 0&#039;.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: spawnarg name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVinePlantLoc&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event important to the growing of vines from vine arrows&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getVinePlantNormal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event important to the growing of vines from vine arrows&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getWorldOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current world-space position of this entity (regardless of any bind parent).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;hasFunction&#039;&#039;&#039;(string functionName); ====&lt;br /&gt;
&lt;br /&gt;
:checks if an entity&#039;s script object has a specific function&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;heal&#039;&#039;&#039;(string healDefName, float healScale); ====&lt;br /&gt;
&lt;br /&gt;
:Heals the entity this is called on using the specified healing entityDef. Returns 1 if the entity could be healed, 0 otherwise (if the entity is already at full health, for ex.)&lt;br /&gt;
::&#039;&#039;healDefName&#039;&#039;: the name of the entityDef containing the healing information (e.g. &amp;quot;heal_potion&amp;quot;)&lt;br /&gt;
::&#039;&#039;healScale&#039;&#039;: the scaling value to be applied to the healAmount found in the healEntityDef&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;hide&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Makes this entity invisible.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;hideByLODBias&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;inPVS&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns non-zero if this entity is in PVS. For lights, it will return true when the light&#039;s bounding box is in PVS, even though the light may not actually be in PVS. (an unmoved shadowcasting light may not be visible to PVS areas its bounding box intersects with)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isDroppable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get whether an item may be dropped from the inventory&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isEnemy&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given entity is an enemy.&lt;br /&gt;
::&#039;&#039;ent&#039;&#039;: The entity in question&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isFriend&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given entity is a friend.&lt;br /&gt;
::&#039;&#039;ent&#039;&#039;: The entity in question&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isFrobable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get whether the entity is frobable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isHidden&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:checks if the entity&#039;s model is invisible.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isHilighted&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if entity is currently frobhilighted.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isInLiquid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns 1 if the entity is in or touching a liquid.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isLight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isNeutral&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the given entity is neutral.&lt;br /&gt;
::&#039;&#039;ent&#039;&#039;: The entity in question&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isType&#039;&#039;&#039;(string spawnclass); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if this entity is of the given type.&lt;br /&gt;
::&#039;&#039;spawnclass&#039;&#039;: spawn class name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;loadExternalData&#039;&#039;&#039;(string declFile, string prefix); ====&lt;br /&gt;
&lt;br /&gt;
:Load an external xdata declaration.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;noShadows&#039;&#039;&#039;(float noShadows); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the noShadow property on the entity to true/false, turning shadowcasting on or off for this entity.&lt;br /&gt;
::&#039;&#039;noShadows&#039;&#039;: 1 = disable shadows, 0 = enable shadows&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;noShadowsDelayed&#039;&#039;&#039;(float noShadows, float delay); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the noShadow property on the entity to true/false after delay in ms, turning shadows cast by this entity on or off.&lt;br /&gt;
::&#039;&#039;noShadows&#039;&#039;: 1 = disable shadows, 0 = enable shadows&lt;br /&gt;
::&#039;&#039;delay&#039;&#039;: delay in ms&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;numBindChildren&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of bound entities lower down in the bind chain than this entity, but be sure to give it the topmost bindmaster&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;numTargets&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of entities this entity has targeted.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;propagateSound&#039;&#039;&#039;(string soundName, float propVolMod, float msgTag); ====&lt;br /&gt;
&lt;br /&gt;
:Generates a propagated sound&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;propSound&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Sound propagation scriptfunctions on all entities propagate a sound directly without playing an audible sound&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;propSoundMod&#039;&#039;&#039;(string name, float volMod); ====&lt;br /&gt;
&lt;br /&gt;
:propagate a sound directly with a volume modifier&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;randomTarget&#039;&#039;&#039;(string ignoreName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a random targeted entity. Pass in an entity name to skip that entity.&lt;br /&gt;
::&#039;&#039;ignoreName&#039;&#039;: the name of an entity to ignore&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;rangedThreatTo&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Could this entity threaten the given (target) entity from a distance?&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeBinds&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Removes all attached entities from the game&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeKey&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Removes a key from an object&#039;s spawnargs, so things like getNextKey() don&#039;t retrieve it.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: the spawnarg to remove&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeTarget&#039;&#039;&#039;(entity target); ====&lt;br /&gt;
&lt;br /&gt;
:Remove a target from this entity.&lt;br /&gt;
::&#039;&#039;target&#039;&#039;: the entity to remove from the targets&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;replaceInvItem&#039;&#039;&#039;(entity oldItem, entity newItem); ====&lt;br /&gt;
&lt;br /&gt;
:Replaces the entity &amp;lt;oldItem&amp;gt; with &amp;lt;newItem&amp;gt; in the inventory, while keeping &amp;lt;oldItem&amp;gt;&#039;s inventory position intact.  Note: The position guarantee only applies if &amp;lt;oldItem&amp;gt; and newItem  share the same category. If the categories are different, the position of &amp;lt;newItem&amp;gt; is likely to be different than the one of &amp;lt;oldItem&amp;gt;.  Note that &amp;lt;oldItem&amp;gt; will be removed from the inventory.  If &amp;lt;newItem&amp;gt; is the $null_entity, &amp;lt;oldItem&amp;gt; is just removed and no replacement happens.  Returns 1 if the operation was successful, 0 otherwise.&lt;br /&gt;
::&#039;&#039;newItem&#039;&#039;: can be $null_entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResetTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;reskinCollisionModel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:For use after setSkin() on moveables and static models, if the CM needs to be refreshed to update surface properties after a skin change. CM will be regenerated from the original model file with the new skin.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseAdd&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseAllow&#039;&#039;&#039;(float type, entity responder); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseEnable&#039;&#039;&#039;(float type, float state); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 0 = disabled, 1 = enabled&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseIgnore&#039;&#039;&#039;(float type, entity responder); ====&lt;br /&gt;
&lt;br /&gt;
:This functions must be called on the stim entity. It will add the response to the ignore list, so that subsequent stims, should not trigger the stim anymore.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseRemove&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseSetAction&#039;&#039;&#039;(float type, string action); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ResponseTrigger&#039;&#039;&#039;(entity source, float stimType); ====&lt;br /&gt;
&lt;br /&gt;
:Fires a response on this entity, without a stim (a stand-alone response, so to say)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;RestartTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;restorePosition&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns this entity to the position stored in the &amp;quot;origin&amp;quot; spawn arg. This is the position the entity was spawned in unless the &amp;quot;origin&amp;quot; key is changed. Note that there is no guarantee that the entity won&#039;t be stuck in another entity when moved, so care should be taken to make sure that isn&#039;t possible.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAngles&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current orientation of this entity (relative to bind parent if any)&lt;br /&gt;
::&#039;&#039;angles&#039;&#039;: the new orientation&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setAngularVelocity&#039;&#039;&#039;(vector velocity); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current angular velocity of this entity. The angular velocity of a physics object is a vector that passes through the center of mass. The direction of this vector defines the axis of rotation and the magnitude defines the rate of rotation about the axis in radians per second.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setClipMask&#039;&#039;&#039;(float clipMask); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the clipmask of the physics object.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setColor&#039;&#039;&#039;(float parm0, float parm1, float parm2); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the RGB color of this entity (shader parms Parm0, Parm1, Parm2).&lt;br /&gt;
::&#039;&#039;parm0&#039;&#039;: red&lt;br /&gt;
::&#039;&#039;parm1&#039;&#039;: green&lt;br /&gt;
::&#039;&#039;parm2&#039;&#039;: blue&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setContents&#039;&#039;&#039;(float contents); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the contents of the physics object.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;setCurInvCategory&#039;&#039;&#039;(string categoryName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the inventory cursor to the first item of the named category. Returns 1 on success, 0 on failure (e.g. wrong category name)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;setCurInvItem&#039;&#039;&#039;(string itemName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the inventory cursor to the named item. Returns: the item entity of the newly selected item (can be $null_entity).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setDroppable&#039;&#039;&#039;(float droppable); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether an item may be dropped from the inventory. &lt;br /&gt;
::&#039;&#039;droppable&#039;&#039;: if non-zero the item becomes droppable, when called with 0 the item becomes non-droppable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setEntityRelation&#039;&#039;&#039;(entity ent, float relation); ====&lt;br /&gt;
&lt;br /&gt;
:Set a relation to another entity, this can be friendly (&amp;gt;0), neutral(0) or hostile (&amp;lt;0)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFrobable&#039;&#039;&#039;(float frobable); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the entity is frobable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGui&#039;&#039;&#039;(float handle, string guiFile); ====&lt;br /&gt;
&lt;br /&gt;
:Loads a new file into an existing GUI.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiFloat&#039;&#039;&#039;(float handle, string key, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiInt&#039;&#039;&#039;(float handle, string key, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiString&#039;&#039;&#039;(float handle, string key, string val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a GUI parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setGuiStringFromKey&#039;&#039;&#039;(float handle, string key, entity src, string srcKey); ====&lt;br /&gt;
&lt;br /&gt;
:This is a kludge. It is equivelant to: setGuiString( handle, key, src.getKey(srcKey) ) However, it&#039;s used to bypass the 127 char size limit on script strings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setHealth&#039;&#039;&#039;(float health); ====&lt;br /&gt;
&lt;br /&gt;
:Use these to set the health of AI or players (this also updates the AI_DEAD flag)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setKey&#039;&#039;&#039;(string key, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a key on this entity&#039;s spawn args. Note that most spawn args are evaluated when this entity spawns in, so this will not change the entity&#039;s behavior in most cases. This is chiefly for saving data the script needs in an entity for later retrieval.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: the spawnarg to set&lt;br /&gt;
::&#039;&#039;value&#039;&#039;: the value to store&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLinearVelocity&#039;&#039;&#039;(vector velocity); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current linear velocity of this entity in units per second. The linear velocity of a physics object is a vector that defines the translation of the center of mass in units per second.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setModel&#039;&#039;&#039;(string modelName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the model this entity uses&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setName&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the name of this entity.&lt;br /&gt;
::&#039;&#039;name&#039;&#039;: the new name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setNeverDormant&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:enables or prevents an entity from going dormant&lt;br /&gt;
::&#039;&#039;enable&#039;&#039;: 1 = enable, 0 = disable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setOrigin&#039;&#039;&#039;(vector origin); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current position of this entity (relative to it&#039;s bind parent if any)&lt;br /&gt;
::&#039;&#039;origin&#039;&#039;: the new origin&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setOwner&#039;&#039;&#039;(entity owner); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the owner of this entity. Entities will never collide with their owner.&lt;br /&gt;
::&#039;&#039;owner&#039;&#039;: the entity which will be made owner of this entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setShaderParm&#039;&#039;&#039;(float parm, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the value of the specified shader parm.&lt;br /&gt;
::&#039;&#039;parm&#039;&#039;: shader parm index&lt;br /&gt;
::&#039;&#039;value&#039;&#039;: new value&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setShaderParms&#039;&#039;&#039;(float parm0, float parm1, float parm2, float parm3); ====&lt;br /&gt;
&lt;br /&gt;
:Sets shader parms Parm0, Parm1, Parm2, and Parm3 (red, green, blue, and alpha respectively).&lt;br /&gt;
::&#039;&#039;parm0&#039;&#039;: red&lt;br /&gt;
::&#039;&#039;parm1&#039;&#039;: green&lt;br /&gt;
::&#039;&#039;parm2&#039;&#039;: blue&lt;br /&gt;
::&#039;&#039;parm3&#039;&#039;: alpha&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSize&#039;&#039;&#039;(vector min, vector max); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the size of this entity&#039;s bounding box.&lt;br /&gt;
::&#039;&#039;min&#039;&#039;: minimum corner coordinates&lt;br /&gt;
::&#039;&#039;max&#039;&#039;: maximum corner coordinates&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSkin&#039;&#039;&#039;(string skinName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the skin this entity uses.  Set to &amp;quot;&amp;quot; to turn off the skin.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSolid&#039;&#039;&#039;(float solidity); ====&lt;br /&gt;
&lt;br /&gt;
:Set the solidity of the entity. If the entity has never been solid before it will be assigned solid and opaque contents/clip masks.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSoundVolume&#039;&#039;&#039;(float newLevel); ====&lt;br /&gt;
&lt;br /&gt;
:Set the volume of the sound to play, must be issued before startSoundShader.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTeam&#039;&#039;&#039;(float newTeam); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the team number of this entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;SetTimerState&#039;&#039;&#039;(float stimId, float state); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setWorldOrigin&#039;&#039;&#039;(vector origin); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the current position of this entity (regardless of any bind parent).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;show&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Makes this entity visible if it has a model.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startFx&#039;&#039;&#039;(string fx); ====&lt;br /&gt;
&lt;br /&gt;
:Starts an FX on this entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;startSound&#039;&#039;&#039;(string sound, float channel, float netSync); ====&lt;br /&gt;
&lt;br /&gt;
:Plays the sound specified by the snd_* key/value pair on the channel and returns the length of the sound in seconds. This is the preferred method for playing sounds on an entity since it ensures that the sound is precached.&lt;br /&gt;
::&#039;&#039;sound&#039;&#039;: the spawnarg to reference, e.g. &#039;snd_move&#039;&lt;br /&gt;
::&#039;&#039;channel&#039;&#039;: the channel to play on&lt;br /&gt;
::&#039;&#039;netSync&#039;&#039;: -&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;startSoundShader&#039;&#039;&#039;(string shaderName, float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Plays a specific sound shader on the channel and returns the length of the sound in seconds. This is not the preferred method of playing a sound since you must ensure that the sound is loaded.&lt;br /&gt;
::&#039;&#039;shaderName&#039;&#039;: the sound shader to play&lt;br /&gt;
::&#039;&#039;channel&#039;&#039;: the channel to play the sound on&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StartTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimAdd&#039;&#039;&#039;(float type, float radius); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimClearIgnoreList&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:This clears the ignore list for the stim of the given type It can be used if an entity changes state in some way that it would no longer be ignored&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimEnable&#039;&#039;&#039;(float type, float state); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 0 = disabled, 1 = enabled&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StimRemove&#039;&#039;&#039;(float type); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopSound&#039;&#039;&#039;(float channel, float netSync); ====&lt;br /&gt;
&lt;br /&gt;
:Stops a specific sound shader on the channel.&lt;br /&gt;
::&#039;&#039;channel&#039;&#039;: the channel to stop playback on&lt;br /&gt;
::&#039;&#039;netSync&#039;&#039;: -&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;StopTimer&#039;&#039;&#039;(float stimId); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;teleportTo&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:Teleports the entity to the position of the other entity, plus a possible offset and random offset (defined on the spawnargs of the entity to be teleported)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;touches&#039;&#039;&#039;(entity other); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if this entity touches the other entity.&lt;br /&gt;
::&#039;&#039;other&#039;&#039;: the entity to check against&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;unbind&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Detaches this entity from its master.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;wait&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends execution of the current thread for the given number of seconds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitFrame&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends execution of current thread for one game frame.&lt;br /&gt;
&lt;br /&gt;
=== idAnimatedEntity ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearAllJoints&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Removes any custom transforms on all joints.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearJoint&#039;&#039;&#039;(float jointnum); ====&lt;br /&gt;
&lt;br /&gt;
:Removes any custom transforms on the specified joint.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getJointAngle&#039;&#039;&#039;(float jointnum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the angular orientation of the joint in world space.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getJointHandle&#039;&#039;&#039;(string jointname); ====&lt;br /&gt;
&lt;br /&gt;
:Looks up the number of the specified joint. Returns INVALID_JOINT if the joint is not found.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getJointPos&#039;&#039;&#039;(float jointnum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the position of the joint in world space.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setJointAngle&#039;&#039;&#039;(float jointnum, float transform_type, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Modifies the orientation of the joint based on the transform type.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setJointPos&#039;&#039;&#039;(float jointnum, float transform_type, vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Modifies the position of the joint based on the transform type.&lt;br /&gt;
&lt;br /&gt;
=== CFrobButton ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Operate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Call this to operate this entity.&lt;br /&gt;
&lt;br /&gt;
=== CFrobDoor ===&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetDoorhandle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the handle entity of this door. Can return NULL (== $null_entity)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;OpenDoor&#039;&#039;&#039;(float master); ====&lt;br /&gt;
&lt;br /&gt;
:The OpenDoor method is necessary to give the FrobDoorHandles a  &amp;quot;low level&amp;quot; open routine. The CFrobDoor::Open() call is re-routed to the FrobDoorHandle::Tap() method, so there must be a way to actually let the door open. Which is what this method does.  Note: Shouldn&#039;t be called directly by scripters, call handle-&amp;gt;Tap() instead. Unless you know what you&#039;re doing.&lt;br /&gt;
&lt;br /&gt;
=== CFrobDoorHandle ===&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetDoor&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the associated door entity for this handle.&lt;br /&gt;
&lt;br /&gt;
=== CFrobHandle ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Tap&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Operates this handle.&lt;br /&gt;
&lt;br /&gt;
=== CFrobLever ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Operate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Call this to operate this entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Switch&#039;&#039;&#039;(float newState); ====&lt;br /&gt;
&lt;br /&gt;
:Move the lever to the on or off position (0 = off).&lt;br /&gt;
&lt;br /&gt;
=== CFrobLock ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Open&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Opens the frobmover, regardless of its previous state. The mover will not move when it&#039;s locked. &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;TDM_Lock_OnLockPicked&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;TDM_Lock_StatusUpdate&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
=== CFrobLockHandle ===&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;GetLock&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the associated lock of this handle.&lt;br /&gt;
&lt;br /&gt;
=== tdmFuncShooter ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shooterFireProjectile&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Fires a projectile.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;shooterGetAmmo&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the ammonition&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;shooterGetState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current state of this shooter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shooterSetAmmo&#039;&#039;&#039;(float newAmmo); ====&lt;br /&gt;
&lt;br /&gt;
:Set the ammonition&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;shooterSetState&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:Activates / deactivates the shooter entity.&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 1 = active, 0 = inactive&lt;br /&gt;
&lt;br /&gt;
=== idEntityFx ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idItem ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;respawn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Respawn&lt;br /&gt;
&lt;br /&gt;
=== idMoveableItem ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;gib&#039;&#039;&#039;(string damageDefName); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
=== idLight ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeInLight&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the light on over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeOutLight&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the light out over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeToLight&#039;&#039;&#039;(vector color, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades the light to the given color over a given time.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getLightLevel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get level (intensity) of a light, &amp;lt;= 0.0 indicates it is off&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getLightOrigin&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the light origin (independent of its visual model)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getLightParm&#039;&#039;&#039;(float parmNum); ====&lt;br /&gt;
&lt;br /&gt;
:Gets a shader parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getRadius&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the light radius.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getShader&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the shader name used by the light.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Off&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity off.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;On&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity on.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightOrigin&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Set origin of lights independent of model origin&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightParm&#039;&#039;&#039;(float parmNum, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a shader parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightParms&#039;&#039;&#039;(float parm0, float parm1, float parm2, float parm3); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the red/green/blue/alpha shader parms on the light and the model.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setRadius&#039;&#039;&#039;(float radius); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the size of the bounding box, x=y=z=radius.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setRadiusXYZ&#039;&#039;&#039;(float x, float y, float z); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the width/length/height of the light bounding box.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setShader&#039;&#039;&#039;(string shader); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the shader to be used for the light.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setStartedOff&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;smoking&#039;&#039;&#039;(float state); ====&lt;br /&gt;
&lt;br /&gt;
:flame is now smoking (1), or not (0)&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 1 = smoking, 0 = not smoking&lt;br /&gt;
&lt;br /&gt;
=== idListener ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idPlayerStart ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idActivator ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idPathCorner ===&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;randomPath&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
=== idDamagable ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idExplodable ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idForceField ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Toggle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the forcefield on and off.&lt;br /&gt;
&lt;br /&gt;
=== idAnimated ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;footstep&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;launchMissiles&#039;&#039;&#039;(string projectilename, string sound, string launchbone, string targetbone, float numshots, float framedelay); ====&lt;br /&gt;
&lt;br /&gt;
:Launches a projectile.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;leftFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to left foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rightFoot&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Changes to right foot and plays footstep sound.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startRagdoll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Switches to a ragdoll taking over the animation.&lt;br /&gt;
&lt;br /&gt;
=== idStaticEntity ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idFuncSmoke ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idVacuumSeparatorEntity ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idPortalEntity ===&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortalHandle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the portal handle.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getSoundLoss&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the sound loss value (dB).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSoundLoss&#039;&#039;&#039;(float loss); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound loss value (dB).&lt;br /&gt;
&lt;br /&gt;
=== idBeam ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idShaking ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idEarthQuake ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idFuncPortal ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idFuncAASPortal ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idFuncAASObstacle ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idPhantomObjects ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idPortalSky ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== tdmVine ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addDescendant&#039;&#039;&#039;(entity vine); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canWater&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearWatered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getPrime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;scaleVine&#039;&#039;&#039;(float factor); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPrime&#039;&#039;&#039;(entity vine); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setWatered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Event called using vine.*()&lt;br /&gt;
&lt;br /&gt;
=== idMoveable ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;becomeNonSolid&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Makes the moveable non-solid for other entities.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableDamage&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:enable/disable damage&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isAtRest&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if object is not moving&lt;br /&gt;
&lt;br /&gt;
=== idMover ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;accelSound&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound to be played when the mover accelerates.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;accelTime&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the acceleration time. Set this acceleration time before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;accelTo&#039;&#039;&#039;(float speed, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates an acceleration to the given speed over the given time in seconds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;bob&#039;&#039;&#039;(float speed, float phase, vector distance); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation back and forth along the given vector with the given speed and phase.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;closePortal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Closes the renderer portal associated with this mover.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;decelSound&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound to be played when the mover decelerates.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;decelTime&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the deceleration time. Set this deceleration time before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;decelTo&#039;&#039;&#039;(float speed, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a deceleration to the given speed over the given time in seconds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableSplineAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables aligning the mover with the spline direction.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableSplineAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables aligning the mover with the spline direction.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMoveSpeed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the movement speed.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMoveTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the movement time.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isMoving&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if a mover is moving&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isRotating&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if a mover is rotating&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;move&#039;&#039;&#039;(float angle, float distance); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation with the given distance in the given yaw direction. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveSound&#039;&#039;&#039;(string sound); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the sound to be played when the moving.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveTo&#039;&#039;&#039;(entity targetEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation to the position of an entity. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;moveToPos&#039;&#039;&#039;(vector pos); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a translation to an absolute position. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;openPortal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Opens the renderer portal associated with this mover.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;removeInitialSplineAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Subtracts the initial spline angles to maintain the initial orientation of the mover.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotate&#039;&#039;&#039;(vector angleSpeed); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation with the given angular speed. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateDownTo&#039;&#039;&#039;(float axis, float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation about the given axis by decreasing the current angle towards the given angle. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateOnce&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation towards the current angles plus the given Euler angles. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateTo&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation towards the given Euler angles. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;rotateUpTo&#039;&#039;&#039;(float axis, float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation about the given axis by increasing the current angle towards the given angle. Uses the current speed/time and acceleration and deceleration settings.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;speed&#039;&#039;&#039;(float speed); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the movement speed. Set this speed before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startSpline&#039;&#039;&#039;(entity spline); ====&lt;br /&gt;
&lt;br /&gt;
:Starts moving along a spline stored on the given entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopMoving&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops any translational movement.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopRotating&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops any rotational movement.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopSpline&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Stops moving along a spline.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;sway&#039;&#039;&#039;(float speed, float phase, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Initiates a rotation back and forth along the given angles with the given speed and phase.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;time&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the movement time. Set this time before initiating a new move.&lt;br /&gt;
&lt;br /&gt;
=== idMover_Binary ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;closePortal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Closes the renderer portal associated with this mover.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;openPortal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Opens the renderer portal associated with this mover.&lt;br /&gt;
&lt;br /&gt;
=== idRotater ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idRiser ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idPlayer ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeWeaponName&#039;&#039;&#039;(string weaponName, string displayName); ====&lt;br /&gt;
&lt;br /&gt;
:Changes the display name of the given weapon item to something different. Pass an empty string to reset the display name to the definition as found in the weaponDef.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;changeWeaponProjectile&#039;&#039;&#039;(string weaponName, string projectileDefName); ====&lt;br /&gt;
&lt;br /&gt;
:Changes the projectile entityDef name of the given weapon (e.g. &amp;quot;broadhead&amp;quot;) to the specified entityDef (e.g. &amp;quot;atdm:projectile_broadhead&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;checkAAS&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearActiveInventoryMap&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clear the active inventory map entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearActiveInventoryMapEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clear the active inventory map entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearMouseDeadTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;customDeath&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;deathMenu&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disableWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Lowers and disables the player weapon.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enableWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables the player weapon.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;endZoom&#039;&#039;&#039;(float duration); ====&lt;br /&gt;
&lt;br /&gt;
:Starts the zoom out event, which performs a gradual transition back to the default FOV. May be called during a transition as well to intercept a pending zoom in transition.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: duration of the transition in msec&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;exitTeleporter&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getButtons&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the button state from the current user command.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getCalibratedLightgemValue&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the calibrated light gem value.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurrentWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns weaponX where X is the number of the weapon the player is currently holding.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getCurWeaponName&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the name of the current weapon, as defined by &amp;quot;inv_weapon_name&amp;quot; in the weaponDef.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getDragged&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently dragged body. Returns $null_entity if the body is shouldered, the player has nothing in his hands, or he has a non-AF entity in his hands. See also getShouldered(), getGrabbed() and getFrobbed().&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getFov&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:This returns the current FOV of the player. You can modify the current FOV with startZoom() and endZoom().&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getFrobbed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently frobhilighted entity. This includes entities the player has in his hands. Sets &amp;quot;frob only used by&amp;quot; mode&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getGrabbed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently entity in the players hands. Returns $null_entity if the player has nothing in his hands Dragging or shouldering a body counts as grabbing it. See also getDragged(), getShouldered(), getFrobbed().&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getHinderance&#039;&#039;&#039;(string source); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get hinderance from a source.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getImmobilization&#039;&#039;&#039;(string source); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get immobilization from a source. Warning: Not a finalized version. It&#039;s subject to change, so use it at your own risk.)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getInventoryOverlay&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the default inventory overlay for the player. All other entities will return an invalid value.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMouseGesture&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the results of the last mouse gesture in enum form. (see the definition for MOUSEDIR_* for which numbers correspond to which directions)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getMove&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the movement relative to the player&#039;s view angles from the current user command. vector_x = forward, vector_y = right, vector_z = up&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextHinderance&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get the next hinderance from a source.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextImmobilization&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get immobilization from a source. Warning: Not a finalized version. It&#039;s subject to change, so use it at your own risk.)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getNextTurnHinderance&#039;&#039;&#039;(string prefix, string lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Get the next hinderance on the view turning from a source&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getObjectiveComp&#039;&#039;&#039;(float ObjNum, float CompNum); ====&lt;br /&gt;
&lt;br /&gt;
:Used to get the state of custom objective components&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
::&#039;&#039;CompNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getObjectiveState&#039;&#039;&#039;(float ObjNum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current state of the objective with the number ObjNum.  State is one of the following: OBJ_INCOMPLETE = 0, OBJ_COMPLETE = 1, OBJ_INVALID = 2, OBJ_FAILED = 3&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getObjectiveVisible&#039;&#039;&#039;(float ObjNum); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current visibility of the objective with the number ObjNum.&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getPreviousWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns weaponX where X is the number of the weapon the player was previously holding.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getShouldered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the currently shouldered body, otherwise $null_entity. See also getDragged(), getGrabbed() and getFrobbed().&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getTurnHinderance&#039;&#039;&#039;(string source); ====&lt;br /&gt;
&lt;br /&gt;
:* Get the hinderance on the view turning from a source&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getViewAngles&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the player view angles.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getWeaponEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity for the player&#039;s weapon&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;giveHealthPool&#039;&#039;&#039;(float amount); ====&lt;br /&gt;
&lt;br /&gt;
:This increases/decreases the healthpool of the player by the given amount. The healthpool is gradually decreased over time, healing (damaging?) the player.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;heldEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity currently being held, or $null_entity if the player&#039;s hands are empty.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;holdEntity&#039;&#039;&#039;(entity entity); ====&lt;br /&gt;
&lt;br /&gt;
:Forces the player to hold an entity (e.g. puts it into the grabber). Drops whatever is in the player&#039;s hands if $null_entity is passed to it. Returns 1 if successful, 0 if not.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isLeaning&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get whether the player is leaning&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;missionFailed&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;missionSuccess&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;mouseGestureFinished&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the player is not currently doing a mouse gesture.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;objectiveCompUnlatch&#039;&#039;&#039;(float ObjNum, float CompNum); ====&lt;br /&gt;
&lt;br /&gt;
:Unlatch an irreversible objective component that has latched into a state&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;objectiveUnlatch&#039;&#039;&#039;(float ObjNum); ====&lt;br /&gt;
&lt;br /&gt;
:Unlatch an irreversible objective that has latched into a state&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pauseGame&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Pauses the game. This should only be called for threads that are explicitly maintained by a special SDK method, because ordinary threads won&#039;t get executed during g_stopTime == true. Note: This is used by the objective GUI threads. Note: Must be called on the player entity, not the sys entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;playStartSound&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;readLightgemModifierFromWorldspawn&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;resetWeaponProjectile&#039;&#039;&#039;(string weaponName); ====&lt;br /&gt;
&lt;br /&gt;
:Reloads the original projectile def name from the weaponDef. Used to revert a change made by the event changeWeaponProjectile().&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;resetZoom&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cancels any pending zoom transitions and resets the FOV to normal.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ropeRemovalCleanup&#039;&#039;&#039;(entity ropeEnt); ====&lt;br /&gt;
&lt;br /&gt;
:Called when rope arrow ropes are removed, removes stale pointers on the player object.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;saveGame&#039;&#039;&#039;(string filename); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;selectWeapon&#039;&#039;&#039;(string weapon); ====&lt;br /&gt;
&lt;br /&gt;
:Selects the weapon the player is holding.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setActiveInventoryMapEnt&#039;&#039;&#039;(entity mapEnt); ====&lt;br /&gt;
&lt;br /&gt;
:Notify the player about a new active map entity. This clears out any previously active maps.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setFrobOnlyUsedByInv&#039;&#039;&#039;(float OnOff); ====&lt;br /&gt;
&lt;br /&gt;
:Engages or disengages a mode where we only frobhilight entities that can be used by our current inventory item. This also disables general frobactions and only allows &amp;quot;used by&amp;quot; frob actions.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setHinderance&#039;&#039;&#039;(string source, float mCap, float fCap); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set hinderance from a source.&lt;br /&gt;
::&#039;&#039;mCap&#039;&#039;: mCap values from all sources are multiplied together to define a cap&lt;br /&gt;
::&#039;&#039;fCap&#039;&#039;: fCap values are not additive, the smallest one among all the sources is used&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setImmobilization&#039;&#039;&#039;(string source, float type); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set immobilization from a source. Warning: Not a finalized version. It&#039;s subject to change, so use it at your own risk.)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightgemModifier&#039;&#039;&#039;(string modifierName, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the named lightgem modifier to a certain value. An example would be the player lantern: setLightgemModifier(&amp;quot;lantern&amp;quot;, 32). This way multiple modifiers can be set by concurrent script threads.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveComp&#039;&#039;&#039;(float ObjNum, float CompNum, float state); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set the state of custom objective components&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: objective number. Starts counting at 1&lt;br /&gt;
::&#039;&#039;CompNum&#039;&#039;: component number. Starts counting at 1&lt;br /&gt;
::&#039;&#039;state&#039;&#039;: 1 or 0 for true or false&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveEnabling&#039;&#039;&#039;(float ObjNum, string strIn); ====&lt;br /&gt;
&lt;br /&gt;
:Set an objective&#039;s enabling objectives (objectives that must be completed before that objective may be completed).&lt;br /&gt;
::&#039;&#039;strIn&#039;&#039;: takes the form of a string that is a space-delimited list of integer objectives representing the new enabling objectives. E.g. : &#039;1 2 3 4&#039;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveOngoing&#039;&#039;&#039;(float ObjNum, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets objective ongoing.&lt;br /&gt;
::&#039;&#039;val&#039;&#039;: 1 for true, 0 for false&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveOptional&#039;&#039;&#039;(float ObjNum, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets objective mandatory.&lt;br /&gt;
::&#039;&#039;val&#039;&#039;: 1 for true, 0 for false&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveState&#039;&#039;&#039;(float ObjNum, float State); ====&lt;br /&gt;
&lt;br /&gt;
:Used to set the state of objectives from the script. For example, use this to invalidate an objective when something happens in your mission. The first argument is the numerical index of the objective (taking &#039;user&#039; objective indices, starting at 1). Choose from the following for the second argument: OBJ_INCOMPLETE, OBJ_COMPLETE, OBJ_INVALID, OBJ_FAILED. Use this on $player1 like $player1.setObjectiveState(1, OBJ_COMPLETE);&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveText&#039;&#039;&#039;(float ObjNum, string newText); ====&lt;br /&gt;
&lt;br /&gt;
:Modify the displayed text for an objective. Can also be a string template like #str_20000&lt;br /&gt;
::&#039;&#039;ObjNum&#039;&#039;: Starts counting at 1&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setObjectiveVisible&#039;&#039;&#039;(float ObjNum, float val); ====&lt;br /&gt;
&lt;br /&gt;
:Sets objective visibility.&lt;br /&gt;
::&#039;&#039;val&#039;&#039;: 1 for true, 0 for false&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPeekOverlayBackground&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the background overlay for peeking, depending on aspect ratio.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPeekView&#039;&#039;&#039;(float OnOff, vector origin); ====&lt;br /&gt;
&lt;br /&gt;
:Toggle whether we should use a view from a peek entity as the player&#039;s view&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSavePermissions&#039;&#039;&#039;(float permission); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
::&#039;&#039;permission&#039;&#039;: 0&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSpyglassOverlayBackground&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the background overlay for the spyglass, depending on aspect ratio.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setTurnHinderance&#039;&#039;&#039;(string source, float mCap, float fCap); ====&lt;br /&gt;
&lt;br /&gt;
:Set the hinderance on the view turning from a source&lt;br /&gt;
::&#039;&#039;mCap&#039;&#039;: mCap values from all sources are multiplied together to define a cap&lt;br /&gt;
::&#039;&#039;fCap&#039;&#039;: fCap values are not additive, the smallest one among all the sources is used&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setViewAngles&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the player view angles, e.g. make the player facing this direction. 0 0 0 is east (along the X axis in DR), 0 90 0 north (along the Y axis in DR) 0 180 0 west, 0 270 0 south.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startGamePlayTimer&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Resets the game play timer to zero and (re)starts it.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startMouseGesture&#039;&#039;&#039;(float key, float thresh, float test, float inverted, float turnHinderance, float decideTime, float deadTime); ====&lt;br /&gt;
&lt;br /&gt;
:Start tracking a mouse gesture that started when the key impulse was pressed. Discretizes analog mouse movement into a few different gesture possibilities. Impulse arg can also be a button, see the UB_* enum in usercmdgen.h. For now, only one mouse gesture check at a time.&lt;br /&gt;
::&#039;&#039;thresh&#039;&#039;: Waits until the threshold mouse input thresh is reached before deciding.&lt;br /&gt;
::&#039;&#039;test&#039;&#039;: determines which test to do (0 = up/down, 1 = left/right, 2 = 4 directions, 3 = 8 directions).&lt;br /&gt;
::&#039;&#039;inverted&#039;&#039;: inverts the movement if set to 1, does not if 0&lt;br /&gt;
::&#039;&#039;turnHinderance&#039;&#039;: Sets the max player view turn rate when checking this mouse gesture (0 =&amp;gt; player view locked, 1.0 =&amp;gt; no effect on view turning)&lt;br /&gt;
::&#039;&#039;decideTime&#039;&#039;: time in milliseconds after which the mouse gesture is auto-decided, in the event that the mouse movement threshold was not reached. A DecideTime of -1 means wait forever until the button is released.&lt;br /&gt;
::&#039;&#039;deadTime&#039;&#039;: how long after attack is pressed that mouse control remains dampened by the fraction turnHinderance.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;startZoom&#039;&#039;&#039;(float duration, float startFOV, float endFOV); ====&lt;br /&gt;
&lt;br /&gt;
:Call this to start the zoom in event. The player FOV is gradually zoomed in until over the given timespan.&lt;br /&gt;
::&#039;&#039;duration&#039;&#039;: duration of the transition in msec&lt;br /&gt;
::&#039;&#039;startFOV&#039;&#039;: The start FOV, this is clamped to [1..179]&lt;br /&gt;
::&#039;&#039;endFOV&#039;&#039;: The end FOV, this is clamped to [1..179]&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopFxFov&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;stopMouseGesture&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;testEvent1&#039;&#039;&#039;(float float_pi, float int_beef, float float_exp, string string_tdm, float float_exp10, float int_food); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;testEvent2&#039;&#039;&#039;(float int_prevres, vector vec_123, float int_food, entity ent_player, entity ent_null, float float_pi, float float_exp); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;testEvent3&#039;&#039;&#039;(entity ent_prevres, vector vec_123, float float_pi, entity ent_player); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;triggerMissionEnd&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;unpauseGame&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Unpauses the game. Most scripts are not executed during g_stopTime == true and won&#039;t get into the position of calling this.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;wasDamaged&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Check if the player was damaged this frame.&lt;br /&gt;
&lt;br /&gt;
=== idProjectile ===&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getProjectileState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Gets the current state of the projectile. States are defined in tdm_defs.script&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;launch&#039;&#039;&#039;(vector start, vector dir, vector velocity); ====&lt;br /&gt;
&lt;br /&gt;
:Launches the projectile from &amp;lt;start&amp;gt; in direction &amp;lt;dir&amp;gt; with the given &amp;lt;velocity&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;TDM_Lock_OnLockPicked&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:internal&lt;br /&gt;
&lt;br /&gt;
=== CProjectileResult ===&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getActualStruckEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getAxialDir&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getFinalAngVel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getFinalVel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getIncidenceAngle&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getProjMass&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getStruckEnt&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getSurfNormal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getSurfType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Getter for projectile result variable&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isVineFriendly&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Vine-arrow event&lt;br /&gt;
&lt;br /&gt;
=== CTarget_SetRelations ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_SetEntityRelation ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_ChangeEntityRelation ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idThread ===&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;acos&#039;&#039;&#039;(float cosine); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the angle in degrees with the given cosine.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;angToForward&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a forward vector for the given Euler angles.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;angToRight&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a right vector for the given Euler angles.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;angToUp&#039;&#039;&#039;(vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Returns an up vector for the given Euler angles.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;asin&#039;&#039;&#039;(float sine); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the angle in degrees with the given sine.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;assert&#039;&#039;&#039;(float condition); ====&lt;br /&gt;
&lt;br /&gt;
:Breaks if the condition is zero. (Only works in debug builds.)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;cacheSoundShader&#039;&#039;&#039;(string shaderName); ====&lt;br /&gt;
&lt;br /&gt;
:Ensure the specified sound shader is loaded by the system. Prevents cache misses when playing sound shaders.&lt;br /&gt;
::&#039;&#039;shaderName&#039;&#039;: the sound shader to cache&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canPlant&#039;&#039;&#039;(vector traceStart, vector traceEnd, entity ignore, entity vine); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;ceil&#039;&#039;&#039;(float x); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the smallest integer that is greater than or equal to the given value.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearPersistantArgs&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Clears data that persists between maps.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;clearSignalThread&#039;&#039;&#039;(float signalNum, entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:Clears the script callback function set for when the given signal is raised on the given entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;copySpawnArgs&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:copies the spawn args from an entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;cos&#039;&#039;&#039;(float degrees); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the cosine of the given angle in degrees.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;CrossProduct&#039;&#039;&#039;(vector vec1, vector vec2); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the cross product of the two vectors.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debug_tdm_material&#039;&#039;&#039;(string file); ====&lt;br /&gt;
&lt;br /&gt;
:For temporary debuging purposes only. Should be removed eventually.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugArrow&#039;&#039;&#039;(vector color, vector start, vector end, float size, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugBounds&#039;&#039;&#039;(vector color, vector mins, vector maxs, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugCircle&#039;&#039;&#039;(vector color, vector origin, vector dir, float radius, float numSteps, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;debugLine&#039;&#039;&#039;(vector color, vector start, vector end, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:line drawing for debug visualization.  lifetime of 0 == 1 frame.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;DotProduct&#039;&#039;&#039;(vector vec1, vector vec2); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the dot product of the two vectors.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;drawText&#039;&#039;&#039;(string text, vector origin, float scale, vector color, float align, float lifetime); ====&lt;br /&gt;
&lt;br /&gt;
:text drawing for debugging. lifetime of 0 == 1 frame.&lt;br /&gt;
::&#039;&#039;align&#039;&#039;: 0 = left, 1 = center, 2 = right&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;emitParticle&#039;&#039;&#039;(string particle, float startTime, float diversity, vector origin, vector angle); ====&lt;br /&gt;
&lt;br /&gt;
:Start a particle effect in the world without using an entity emitter. Will emit one quad per particle stage when first called with sys.getTime() as the start time. Designed to be called once per frame with the same startTime each call to achieve a normal particle effect, or on demand with sys.getTime() as the startTime for finer grained control, 1 quad at a time. Returns True (1) if there are more particles to be emitted from the stage, False (0) if the stage has released all its quads.&lt;br /&gt;
::&#039;&#039;particle&#039;&#039;: String: name of particle effect.&lt;br /&gt;
::&#039;&#039;startTime&#039;&#039;: Game seconds since map start: use sys.getTime() for the first call unless you want to back-date the particle so that it starts part way through its cycle.&lt;br /&gt;
::&#039;&#039;diversity&#039;&#039;: Randomizer value between 0 and 1. All particles with the same diversity will have the same path and rotation. Use sys.random(1) for a random path.&lt;br /&gt;
::&#039;&#039;origin&#039;&#039;: Origin of the particle effect.&lt;br /&gt;
::&#039;&#039;angle&#039;&#039;: Axis for the particle effect. Use $&amp;lt;entityname&amp;gt;.getAngles() to align the particle to an entity. use &#039;0 0 0&#039; for an upright (world-aligned) particle effect.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;error&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Issues an error.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeIn&#039;&#039;&#039;(vector color, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades towards the given color over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeOut&#039;&#039;&#039;(vector color, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades from the given color over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;fadeTo&#039;&#039;&#039;(vector color, float alpha, float time); ====&lt;br /&gt;
&lt;br /&gt;
:Fades to the given color up to the given alpha over the given time in seconds.&lt;br /&gt;
::&#039;&#039;time&#039;&#039;: in seconds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;firstPerson&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns view control to the player entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;floor&#039;&#039;&#039;(float x); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the largest integer that is less than or equal to the given value.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getCurrentMissionNum&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of the current mission (0-based, the first mission has number 0).&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getcvar&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string for a cvar.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getDifficultyLevel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns 0 (Easy), 1 (Medium) or 2 (Hard), depending on the difficulty level of the current mission.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getDifficultyName&#039;&#039;&#039;(float difficultyLevel); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the (translated) name of the difficulty level passed as the argument.&lt;br /&gt;
::&#039;&#039;difficultyLevel&#039;&#039;: 0 (Easy), 1 (Medium), 2 (Hard)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getEntity&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a reference to the entity with the specified name.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getFrameTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:returns the length of time between game frames.  this is not related to renderer frame rate.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getLocationPoint&#039;&#039;&#039;(vector point); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the idLocation entity corresponding to the specified point&#039;s location.&lt;br /&gt;
::&#039;&#039;point&#039;&#039;: point whose location to check&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getMainAmbientLight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity of the main ambient light.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getMissionStatistic&#039;&#039;&#039;(string statisticName); ====&lt;br /&gt;
&lt;br /&gt;
:Returns current mission statistic.&lt;br /&gt;
::&#039;&#039;statisticName&#039;&#039;: Can be one of (case insensitive): 	gamePlayTime: gameplay time in seconds 	damageDealt: damage dealt to enemies 	damageReceived: damage received by player 	healthReceived: health received by player 	pocketsPicked: pockets picked by player 	foundLoot: loot found by player 	missionLoot: total loot available in mission 	totalTimePlayerSeen: total time the player was seen by enemies in seconds. Updates only when AI lose sight of player 	numberTimesPlayerSeen: number of times player was seen by enemies 	numberTimesAISuspicious: number of times AI was &#039;observant&#039; or &#039;suspicious&#039;. A single AI passing through both alert levels will add 2 to the score. 	numberTimesAISearched: number of times AI was &#039;investigating&#039; or &#039;searching&#039;. A single AI passing through both alert levels will add 2 to the score. 	sightingScore: sighting score (number of times player was seen * weight) 	stealthScore: stealth score (sighting score + alerts * weights) 	killedByPlayer: number of enemies killed by player 	knockedOutByPlayer: number of enemies knocked out by player 	bodiesFound: number of times enemies have spotted a body 	secretsFound: number of secrets found by the player 	secretsTotal: total number of secrets in the mission &lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getNextEntity&#039;&#039;&#039;(string key, string value, entity lastMatch); ====&lt;br /&gt;
&lt;br /&gt;
:Discover all entities in the map. Returns $null_entity when no more found.&lt;br /&gt;
::&#039;&#039;key&#039;&#039;: Optional string: prefix for spawnarg key match. E.g. &amp;quot;target&amp;quot; will match &amp;quot;target&amp;quot;, &amp;quot;target1&amp;quot; etc.&lt;br /&gt;
::&#039;&#039;value&#039;&#039;: Optional string: spawnarg value to match. Can be used independently of &#039;&#039;key&#039;&#039;. If &#039;&#039;key&#039;&#039; is not set, all spawnargs will be checked for the value.&lt;br /&gt;
::&#039;&#039;lastMatch&#039;&#039;: Last match: search will start after this entity. Use $null_entity or pass an uninitialized entity variable to start a new search.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPersistantFloat&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the floating point value for the given persistent arg&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getPersistantString&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string for the given persistent arg&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getPersistantVector&#039;&#039;&#039;(string key); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the vector for the given persistent arg&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortAISoundLoss&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:AI sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortPlayerSoundLoss&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Player sound loss  scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getPortSoundLoss&#039;&#039;&#039;(float handle); ====&lt;br /&gt;
&lt;br /&gt;
:Sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getRelation&#039;&#039;&#039;(float team1, float team2); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTDMVersion&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Get the current TDM version as integer. The value will be 108 for v1.08, 109 for v1.09 and 200 for v2.00 etc.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTicsPerSecond&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:returns the number of game frames per second.  this is not related to renderer frame rate.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTime&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the current game time in seconds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getTraceBody&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of the body part of the entity which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getTraceEndPos&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the position the trace stopped due to a collision with solid geometry during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getTraceEntity&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a reference to the entity which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getTraceFraction&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the fraction of movement completed during the last call to trace or tracePoint.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getTraceJoint&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of the skeletal joint closest to the location on the entity which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;getTraceNormal&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the normal of the hit plane during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;getTraceSurfType&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the type of the surface (i.e. metal, snow) which was hit during the last call to trace or tracePoint&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;handleMissionEvent&#039;&#039;&#039;(entity objEnt, float eventType, string argument); ====&lt;br /&gt;
&lt;br /&gt;
:Generic interface for passing on mission events from scripts to the SDK. Available since TDM 1.02&lt;br /&gt;
::&#039;&#039;objEnt&#039;&#039;: the entity that triggered this event (e.g. a readable)&lt;br /&gt;
::&#039;&#039;eventType&#039;&#039;: a numeric identifier (enumerated both in MissionData.h and tdm_defs.script) specifying the type of event&lt;br /&gt;
::&#039;&#039;argument&#039;&#039;: an optional string parameter, eventtype-specific.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;influenceActive&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Checks if an influence is active&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;killthread&#039;&#039;&#039;(string threadName); ====&lt;br /&gt;
&lt;br /&gt;
:Kills all threads with the specified name&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;log&#039;&#039;&#039;(float x); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the log of the given argument.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;logString&#039;&#039;&#039;(float logClass, float logType, string output); ====&lt;br /&gt;
&lt;br /&gt;
:This is the script counterpart to DM_LOG&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;music&#039;&#039;&#039;(string shaderName); ====&lt;br /&gt;
&lt;br /&gt;
:Starts playing background music.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;offsetRelation&#039;&#039;&#039;(float team1, float team2, float val); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;onSignal&#039;&#039;&#039;(float signalNum, entity ent, string functionName); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a script callback function for when the given signal is raised on the given entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pause&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Pauses the current thread.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;pointInLiquid&#039;&#039;&#039;(vector point, entity ignoreEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Checks if a point is in a liquid, returns 1 if this is the case.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;pointIsInBounds&#039;&#039;&#039;(vector point, vector mins, vector maxs); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the point is within the bounds specified.&lt;br /&gt;
::&#039;&#039;point&#039;&#039;: test whether this point is in the bounds&lt;br /&gt;
::&#039;&#039;mins&#039;&#039;: minimal corner of the bounds&lt;br /&gt;
::&#039;&#039;maxs&#039;&#039;: maximal corner of the bounds&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;pow&#039;&#039;&#039;(float x, float y); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the power of x to y.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;print&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Prints the given string to the console.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;println&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Prints the given line to the console.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;projectDecal&#039;&#039;&#039;(vector traceOrigin, vector traceEnd, entity passEntity, string decal, float decalSize, float angle); ====&lt;br /&gt;
&lt;br /&gt;
:Performs a trace from the specified origin and end positions, then projects a decal in that direction.&lt;br /&gt;
::&#039;&#039;traceOrigin&#039;&#039;: Start of the trace.&lt;br /&gt;
::&#039;&#039;traceEnd&#039;&#039;: End of the trace.&lt;br /&gt;
::&#039;&#039;passEntity&#039;&#039;: This entity will be considered non-solid by the trace.&lt;br /&gt;
::&#039;&#039;decal&#039;&#039;: Decal to be projected.&lt;br /&gt;
::&#039;&#039;decalSize&#039;&#039;: Size of the decal quad.&lt;br /&gt;
::&#039;&#039;angle&#039;&#039;: Angle of the decal quad.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;radiusDamage&#039;&#039;&#039;(vector origin, entity inflictor, entity attacker, entity ignore, string damageDefName, float dmgPower); ====&lt;br /&gt;
&lt;br /&gt;
:damages entities within a radius defined by the damageDef.  inflictor is the entity  causing the damage and can be the same as the attacker (in the case   of projectiles, the projectile is the inflictor, while the attacker is the character  that fired the projectile).&lt;br /&gt;
::&#039;&#039;inflictor&#039;&#039;: the entity causing the damage&lt;br /&gt;
::&#039;&#039;ignore&#039;&#039;: an entity to not cause damage to&lt;br /&gt;
::&#039;&#039;dmgPower&#039;&#039;: scales the damage (for cases where damage is dependent on time)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;random&#039;&#039;&#039;(float range); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a random value X where 0 &amp;lt;= X &amp;lt; range.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;saveConDump&#039;&#039;&#039;(string cmd, string cmd); ====&lt;br /&gt;
&lt;br /&gt;
:Saves condump into FM directory; first argument is appended to dump filename, everything before last occurence of second argument is removed&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;say&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Multiplayer - Print this line on the network&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;sessionCommand&#039;&#039;&#039;(string cmd); ====&lt;br /&gt;
&lt;br /&gt;
:Sends the sessioncommand to the game&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setCamera&#039;&#039;&#039;(entity cameraEnt); ====&lt;br /&gt;
&lt;br /&gt;
:Turns over view control to the given camera entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setcvar&#039;&#039;&#039;(string name, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a cvar.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPersistantArg&#039;&#039;&#039;(string key, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a key/value pair that persists between maps&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPortAISoundLoss&#039;&#039;&#039;(float handle, float value); ====&lt;br /&gt;
&lt;br /&gt;
:AI sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPortPlayerSoundLoss&#039;&#039;&#039;(float handle, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Player sound loss scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setPortSoundLoss&#039;&#039;&#039;(float handle, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sound propagation scriptfunction on the sys object&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setRelation&#039;&#039;&#039;(float team1, float team2, float val); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSecretsFound&#039;&#039;&#039;(float secrets); ====&lt;br /&gt;
&lt;br /&gt;
:Set how many secrets the player has found. Use getMissionStatistic() for getting the current value.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSecretsTotal&#039;&#039;&#039;(float secrets); ====&lt;br /&gt;
&lt;br /&gt;
:Set how many secrets exist in the map in total. Use getMissionStatistic() for getting the current value.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setShaderParm&#039;&#039;&#039;(float parm, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the value of the specified shader parm.&lt;br /&gt;
::&#039;&#039;parm&#039;&#039;: shader parm index&lt;br /&gt;
::&#039;&#039;value&#039;&#039;: new value&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSpawnArg&#039;&#039;&#039;(string key, string value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a key/value pair to be used when a new entity is spawned.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;sin&#039;&#039;&#039;(float degrees); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the sine of the given angle in degrees.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;spawn&#039;&#039;&#039;(string classname); ====&lt;br /&gt;
&lt;br /&gt;
:Creates an entity of the specified classname and returns a reference to the entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;SpawnFloat&#039;&#039;&#039;(string key, float default); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the floating point value for the given spawn argument.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;SpawnString&#039;&#039;&#039;(string key, string default); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string for the given spawn argument.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;SpawnVector&#039;&#039;&#039;(string key, vector default); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the vector for the given spawn argument.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;sqrt&#039;&#039;&#039;(float square); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the square root of the given number.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strFind&#039;&#039;&#039;(string text, string find, float casesensitive, float start, float end); ====&lt;br /&gt;
&lt;br /&gt;
:Return the position of the given substring, counting from 0, or -1 if not found.&lt;br /&gt;
::&#039;&#039;casesensitive&#039;&#039;: 0&lt;br /&gt;
::&#039;&#039;start&#039;&#039;: 0&lt;br /&gt;
::&#039;&#039;end&#039;&#039;: -1&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strLeft&#039;&#039;&#039;(string text, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a string composed of the first num characters&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strLength&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of characters in the string&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strMid&#039;&#039;&#039;(string text, float start, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a string composed of the characters from start to start + num&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strRemove&#039;&#039;&#039;(string text, string remove); ====&lt;br /&gt;
&lt;br /&gt;
:Replace all occurances of the given substring with &amp;quot;&amp;quot;. Example: StrRemove(&amp;quot;abba&amp;quot;,&amp;quot;bb&amp;quot;) results in &amp;quot;aa&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strReplace&#039;&#039;&#039;(string text, string remove, string replace); ====&lt;br /&gt;
&lt;br /&gt;
:Replace all occurances of the given string with the replacement string. Example: StrRemove(&amp;quot;abba&amp;quot;,&amp;quot;bb&amp;quot;,&amp;quot;ccc&amp;quot;) results in &amp;quot;accca&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strRight&#039;&#039;&#039;(string text, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns a string composed of the last num characters&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;strSkip&#039;&#039;&#039;(string text, float num); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the string following the first num characters&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strToFloat&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the numeric value of the given string.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;strToInt&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the integer value of the given string.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;terminate&#039;&#039;&#039;(float threadNumber); ====&lt;br /&gt;
&lt;br /&gt;
:Terminates a thread.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;threadname&#039;&#039;&#039;(string name); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the name of the current thread.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;trace&#039;&#039;&#039;(vector start, vector end, vector mins, vector maxs, float contents_mask, entity passEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the fraction of movement completed before the box from &#039;mins&#039; to &#039;maxs&#039; hits solid geometry when moving from &#039;start&#039; to &#039;end&#039;. The &#039;passEntity&#039; is considered non-solid during the move.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;tracePoint&#039;&#039;&#039;(vector start, vector end, float contents_mask, entity passEntity); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the fraction of movement completed before the trace hits solid geometry when moving from &#039;start&#039; to &#039;end&#039;. The &#039;passEntity&#039; is considered non-solid during the move.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent string &#039;&#039;&#039;translate&#039;&#039;&#039;(string input); ====&lt;br /&gt;
&lt;br /&gt;
:Translates a string (like #str_12345) into the current language&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;trigger&#039;&#039;&#039;(entity entityToTrigger); ====&lt;br /&gt;
&lt;br /&gt;
:Triggers the given entity.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;vecLength&#039;&#039;&#039;(vector vec); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the length of the given vector.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;vecNormalize&#039;&#039;&#039;(vector vec); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the normalized version of the given vector.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;VecRotate&#039;&#039;&#039;(vector vector, vector angles); ====&lt;br /&gt;
&lt;br /&gt;
:Rotates a vector by the specified angles.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent vector &#039;&#039;&#039;VecToAngles&#039;&#039;&#039;(vector vec); ====&lt;br /&gt;
&lt;br /&gt;
:Returns Euler angles for the given direction.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;wait&#039;&#039;&#039;(float time); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends execution of the current thread for the given number of seconds.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitFor&#039;&#039;&#039;(entity mover); ====&lt;br /&gt;
&lt;br /&gt;
:Waits for the given entity to complete its move.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitForRender&#039;&#039;&#039;(entity e); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends the current thread until &#039;e&#039; might have been rendered. It&#039;s event based, so it doesn&#039;t waste CPU repeatedly checking inPVS(). e.inPVS() will very likely be true when the thread resumes. If e.inPVS() is true, calling waitForRender() will probably just wait a frame, unless D3 can figure out that the entity doesn&#039;t need to be rendered. Optimizations regarding shadowcasting lights may not apply to this function - it is based purely off whether or not the entity&#039;s bounding box is visible.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitForThread&#039;&#039;&#039;(float threadNumber); ====&lt;br /&gt;
&lt;br /&gt;
:Waits for the given thread to terminate.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;waitFrame&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Suspends execution of current thread for one game frame.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;warning&#039;&#039;&#039;(string text); ====&lt;br /&gt;
&lt;br /&gt;
:Issues a warning.&lt;br /&gt;
&lt;br /&gt;
=== idSecurityCamera ===&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;canSee&#039;&#039;&#039;(entity ent); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getEnemy&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getSecurityCameraState&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the security camera&#039;s state. 1 = unalerted, 2 = suspicious, 3 = fully alerted, 4 = inactive, 5 = destroyed.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getSpotLight&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the spotlight used by the camera. Returns null_entity if none is used.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Off&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity off.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;On&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity on.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setSightThreshold&#039;&#039;&#039;(float sightThreshold); ====&lt;br /&gt;
&lt;br /&gt;
:Set the sight threshold of the security camera: how lit up the player&#039;s lightgem needs to be in order to be seen. 0.0 to 1.0&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_light&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Switches the spotlight on or off. Respects the security camera&#039;s power state.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_AI&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see AIs.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_animals&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see animals. Checked after seeAI or seeBodies.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_bodies&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see bodies.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_see_player&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Set whether the camera can see the player.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;state_sweep&#039;&#039;&#039;(float set); ====&lt;br /&gt;
&lt;br /&gt;
:Enables or disables the camera&#039;s sweeping.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_light&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the spotlight on/off.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_AI&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see AIs.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_animals&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see bodies. Checked after seeAI or seeBodies.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_bodies&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see bodies.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_see_player&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles whether the camera can see the player.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;toggle_sweep&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Toggles the camera sweep.&lt;br /&gt;
&lt;br /&gt;
=== Seed ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;cullAll&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Cull (remove from world) all entities.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
=== idSound ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;Off&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity off.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;On&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Turns the entity on.&lt;br /&gt;
&lt;br /&gt;
=== idTarget_Remove ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_Show ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_Damage ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SessionCommand ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_EndLevel ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_WaitForButton ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SetGlobalShaderTime ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SetShaderParm ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SetShaderTime ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_FadeEntity ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_LightFadeIn ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_LightFadeOut ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_Give ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SetModel ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SetInfluence ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SetKeyVal ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_SetFov ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_CallObjectFunction ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_PostScriptEvent ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_EnableLevelWeapons ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_RemoveWeapons ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTarget_FadeSoundClass ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_AddObjectives ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_SetObjectiveState ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_SetObjectiveVisibility ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_SetObjectiveComponentState ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_StartConversation ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_SetFrobable ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_CallScriptFunction ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_ChangeLockState ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_ChangeTarget ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_InterMissionTrigger ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_SetTeam ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== CTarget_ItemRemove ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTrigger ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;disable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Disables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;enable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Enables the mover/trigger&lt;br /&gt;
&lt;br /&gt;
=== idTrigger_Multi ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTrigger_EntityName ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTrigger_Timer ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTrigger_Count ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTrigger_Hurt ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTrigger_Fade ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idTrigger_Touch ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;activate&#039;&#039;&#039;(entity activator); ====&lt;br /&gt;
&lt;br /&gt;
:Activates this entity as if it was activated by a trigger.&lt;br /&gt;
::&#039;&#039;activator&#039;&#039;: the entity that caused the action (usually the player)&lt;br /&gt;
&lt;br /&gt;
=== idWeapon ===&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;addToClip&#039;&#039;&#039;(float amount); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;allowDrop&#039;&#039;&#039;(float allow); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;ammoAvailable&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Number of shots left in inventory&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;ammoInClip&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animDone&#039;&#039;&#039;(float channel, float blendOutFrames); ====&lt;br /&gt;
&lt;br /&gt;
:Returns true if the animation playing on the given channel is completed considering a number of blend frames.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;animIsPaused&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Return whether the given anim channel is paused&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;clipSize&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;createProjectile&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;ejectBrass&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;flashlight&#039;&#039;&#039;(float enable); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getBlendFrames&#039;&#039;&#039;(float channel); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the number of frames to blend between animations on the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;getLightParm&#039;&#039;&#039;(float parmNum); ====&lt;br /&gt;
&lt;br /&gt;
:Gets a shader parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getOwner&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the owning entity&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent entity &#039;&#039;&#039;getWorldModel&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Returns the entity that controls the world model&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;isInvisible&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;launchProjectiles&#039;&#039;&#039;(float num_projectiles, float spread, float fuseOffset, float launchPower, float dmgPower); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;melee&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;netEndReload&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;netReload&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;nextWeapon&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:No description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;pauseAnim&#039;&#039;&#039;(float channel, float bPause); ====&lt;br /&gt;
&lt;br /&gt;
:Pause all animations playing on the given channel. NOTE: Can also be used used by idWeapons&lt;br /&gt;
::&#039;&#039;bPause&#039;&#039;: true = pause, false = unpause&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playAnim&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Do not use, this is part of TDM&#039;s internal mechanics. Use playCustomAnim() on AI.in scripts instead of this. Plays the given animation on the given channel. Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;playCycle&#039;&#039;&#039;(float channel, string animName); ====&lt;br /&gt;
&lt;br /&gt;
:Continuously repeats the given animation on the given channel.  Returns false if anim doesn&#039;t exist.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setBlendFrames&#039;&#039;&#039;(float channel, float blendFrame); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the number of frames to blend between animations on the given channel.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightParm&#039;&#039;&#039;(float parmNum, float value); ====&lt;br /&gt;
&lt;br /&gt;
:Sets a shader parameter.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;setLightParms&#039;&#039;&#039;(float parm0, float parm1, float parm2, float parm3); ====&lt;br /&gt;
&lt;br /&gt;
:Sets the red/green/blue/alpha shader parms on the light and the model.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;showAttachment&#039;&#039;&#039;(string attName, float show); ====&lt;br /&gt;
&lt;br /&gt;
:Show or hide an attachment.&lt;br /&gt;
::&#039;&#039;show&#039;&#039;: 1 shows attachment, 0 hides it.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;showAttachmentInd&#039;&#039;&#039;(float index, float show); ====&lt;br /&gt;
&lt;br /&gt;
:Show or hide an attachment by array index.&lt;br /&gt;
::&#039;&#039;index&#039;&#039;: starts at 0&lt;br /&gt;
::&#039;&#039;show&#039;&#039;: 1 shows attachment, 0 hides it.&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent float &#039;&#039;&#039;totalAmmoCount&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:Amount of ammo in inventory. since each shot may use more than 1 ammo, this is different than ammoAvailable()&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;useAmmo&#039;&#039;&#039;(float amount); ====&lt;br /&gt;
&lt;br /&gt;
:Eats the specified amount of ammo&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponHolstered&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponLowering&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponOutOfAmmo&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponReady&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponReloading&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponRising&#039;&#039;&#039;(); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
==== scriptEvent void &#039;&#039;&#039;weaponState&#039;&#039;&#039;(string stateFunction, float blendFrames); ====&lt;br /&gt;
&lt;br /&gt;
:no description&lt;br /&gt;
&lt;br /&gt;
[[Category:Scripting]]&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Vertex_Painting_in_Lightwave&amp;diff=19603</id>
		<title>Vertex Painting in Lightwave</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Vertex_Painting_in_Lightwave&amp;diff=19603"/>
		<updated>2017-08-15T18:55:11Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Editing]]&lt;br /&gt;
Here we&#039;ll discuss from start to finish, a Vertex Color Material for a model converted from Dark Radiant brushwork. Software you&#039;ll be using are Dark Radiant and Lightwave Modeler. How you procure a copy of Lightwave is entirely up to you; I happen to be using &#039;&#039;Lightwave Modeler 11.5&#039;&#039; for this tutorial. It&#039;s worth noting that Lightwave saves it&#039;s model data into the proprietary binary file type LWO. LWO is one of two primary formats supported to run in the Doom3 engine (the other being ASE). This painting method can be done in either format but LWO is by far a superior type as it usually only amounts to mere kbs of data for multiple files.&lt;br /&gt;
&lt;br /&gt;
This tutorial already assumes you know how to create levels and manage brushwork in Dark Radiant. After covering this tutorial you should cleanly be able to add in material blending to your levels, with no prior modeling experience. &#039;&#039;See the bottom of this page for basic hotkeys to use for Modeler.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Step 1: Prep and Export Brushwork ==&lt;br /&gt;
Here I already have a prepped small space done up in DR. It&#039;s important that you texture and scale the surface properties to your liking. When we export this data in the OBJ script, &#039;&#039;&#039;this will be used as your UV data in Lightwave&#039;&#039;&#039;. When ready to export in DR go Scripts&amp;gt;ExportOBJ and be sure to center objects.&lt;br /&gt;
&lt;br /&gt;
[[File:Vertex Paint Tut 001.jpg|800px|]]&lt;br /&gt;
&lt;br /&gt;
== Step 2: Importing and Painting in Lightwave ==&lt;br /&gt;
&lt;br /&gt;
Now it&#039;s time to head to Lightwave and open your OBJ file you&#039;ve exported. First thing you&#039;ll want to do is press &#039;&#039;&#039;F5&#039;&#039;&#039; to bring up the Surface Editor panel. Two things you&#039;ll want to do is check smoothing on and find a good value (I use 60 degrees) and then press rename in the top right corner to specify the material name you want to embed in the saved LWO. Here I use vertex_blend_test for my example material name and it must be devoid of typos to match the name we&#039;ll declare in the MTR later.&lt;br /&gt;
&lt;br /&gt;
[[File:Vertex Paint Tut 002.png]]&lt;br /&gt;
&lt;br /&gt;
Next we&#039;re going to paint black and white vertex colors to define material blending. To find the painting window you&#039;ll have to go to the Map tab and find Vertex Paint under Color.&lt;br /&gt;
&lt;br /&gt;
[[File:Vertex Paint Tut 005.png]] &amp;gt;&amp;gt; Once the paint window loads, hit Edit and Create Vertex Color Map from this drop down &amp;gt;&amp;gt; [[File:Vertex Paint Tut 006.png]] &lt;br /&gt;
&lt;br /&gt;
Here&#039;s an example of how your mesh should look when painted. Be sure you use solid white and black to paint with. The exception being grays where you want longer blend transitions. Once complete save and exit the paint window.&lt;br /&gt;
&lt;br /&gt;
[[File:Vertex Paint Tut 007.png|1000px|]]&lt;br /&gt;
&lt;br /&gt;
== Step 3: Final Model and Material ==&lt;br /&gt;
&lt;br /&gt;
Finally we just need to triangulate the polygons (since TDM can&#039;t render straight quads) and then save your new mesh to your desired output folder. To Triangulate the mesh simply go to the Multiply Tab and press Triple. You can now save the file to it&#039;s output directory. Note: LWO is Lightwave&#039;s native format and will save a working model for TDM by default.&lt;br /&gt;
&lt;br /&gt;
[[File:Vertex Paint Tut 004.png]]&lt;br /&gt;
&lt;br /&gt;
A short rundown here on the material composition. This is a material I put together from stock assets so you can plug this right in (or modify it) to your heart&#039;s content! The first two blocks containing (This is white coverage) literally will only be visible in white painted sections of your mesh. As the like, same goes for the next two blocks for black coverage. You can also use the VertexColor/InverseVertexColor commands across additional blocks to create more complex material functions depending on what your project requires.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;vertex_blend_test&lt;br /&gt;
{&lt;br /&gt;
	surftype15&lt;br /&gt;
    	description &amp;quot;grass&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        {&lt;br /&gt;
	blend bumpmap &lt;br /&gt;
	map   textures/darkmod/nature/foliage/leaves_small_local&lt;br /&gt;
	VertexColor&lt;br /&gt;
	//This is white coverage&lt;br /&gt;
   	}&lt;br /&gt;
	{&lt;br /&gt;
        blend diffusemap                                                    &lt;br /&gt;
	map   textures/darkmod/nature/foliage/leaves_small&lt;br /&gt;
        VertexColor                &lt;br /&gt;
	//This is white coverage&lt;br /&gt;
        }&lt;br /&gt;
	{&lt;br /&gt;
	blend bumpmap &lt;br /&gt;
	map	textures/darkmod/nature/dirt/dry_earth_stones_local&lt;br /&gt;
	inverseVertexColor&lt;br /&gt;
	//This is black paint in coverage&lt;br /&gt;
   	}&lt;br /&gt;
	{&lt;br /&gt;
        blend diffusemap                                                    &lt;br /&gt;
	map	textures/darkmod/nature/dirt/dry_earth_stones&lt;br /&gt;
	inverseVertexColor    &lt;br /&gt;
	//This is black paint in coverage	&lt;br /&gt;
        }&lt;br /&gt;
}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save that into an MTR and make sure that name matches with the one you chose in the Surface Editor. If all goes well you should be able to pull of some more natural looking blends like this.&lt;br /&gt;
&lt;br /&gt;
[[File:Vertex Paint Tut 008.jpg|1000px|]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ending Tips ==&lt;br /&gt;
Merge unwanted hard edges. If you&#039;re stringing together multiple patches and don&#039;t want a hard seam to be present go to the Construct tab in Lightwave and find Weld Edges. If your edges in question all occupy the same 3D space, it will merge them and combine the polygons as one contiguous surface.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use the Caulk texture wisely if you&#039;re exporting regular brush primitives from Dark Radiant (eg. not patches) as you can cull out unneeded faces to further clean up your model beforehand. Your mesh in this workflow is only as good as your prep for it in DR. Only assigning textures to the surface you wish to have showing is your best bet. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use textures that blend well together. Some textures just don&#039;t look too good side by side, so finding the right combination is key. Also creating a secondary distress/grunge texture from the original image has fantastic benefits of the two materials sharing similar details. This aids the blending and doesn&#039;t present as hard of a visual gradient where the blend occurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Use noshadows in your MTR definition when appropriate. Any time you know the model in question will never need to cast shadows, add this option. Since most scenarios require us to pad and, &amp;quot;insulate&amp;quot; or models with brushes, those solids will block lights for us. Anything you can do to chip away at the tris considered for shadow casters will help performance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lastly I&#039;d suggest to anybody doing floors or terrain, to save and reuse their original brushwork/patches textured with tdm_nodrawsolid_grass (or a collision type appropriate). This ensures that AI will traverse it correctly and footstep collision sounds wont be faulty.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Hotkeys for Lightwave Modeler.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
-S (save current model to file)&lt;br /&gt;
&lt;br /&gt;
-Alt+LeftClick (rotate Camera)&lt;br /&gt;
&lt;br /&gt;
-Alt+Ctrl+LeftClick (zoom Camera)&lt;br /&gt;
&lt;br /&gt;
-Alt+Shift+LeftClick (pan Camera)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;-Epifire 8/15/2017&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=19376</id>
		<title>Obsttortes Wiki articles</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=19376"/>
		<updated>2017-07-08T20:43:32Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Editing]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
This is a summary of the wike articles created by me. This page is used for reference.&lt;br /&gt;
&lt;br /&gt;
== Triggering Events when looking at something ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Triggering_events_when_looking_at_something Link]&lt;br /&gt;
&lt;br /&gt;
== In-game automatic note book ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Automatic_note_book Link]&lt;br /&gt;
&lt;br /&gt;
== In-game shop ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=In-game_shop Link]&lt;br /&gt;
&lt;br /&gt;
== AI behaviour depending on player actions ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=AI_behaviour_depending_on_players_actions_%28new_version%29 Link]&lt;br /&gt;
&lt;br /&gt;
== Creating Automaps ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Creating_Automaps Link]&lt;br /&gt;
&lt;br /&gt;
== Triggering Objectives ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Objectives,_triggering Link]&lt;br /&gt;
&lt;br /&gt;
== Creating a pond ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=How_to_create_a_pond Link]&lt;br /&gt;
&lt;br /&gt;
== Altering the savegame behaviour ==&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Altering_the_savegame_behaviour_of_TDM, Link]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 14:36, 11 January 2015 (UTC)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19375</id>
		<title>Creating Automaps</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19375"/>
		<updated>2017-07-08T20:36:25Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: /* The script object */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Editing]]&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Normally the player is given a map at mission start, which is showing him the location he is attempting to sneak in. However, it may not seem very realistic that the player already possesses such detailed information without ever been in the specific place. An automap, thus meaning a map that gets drawn while the player proceeds in his mission may seem more realistic.&lt;br /&gt;
&lt;br /&gt;
On the other hand such thing can also add a lot to immersion. The player don&#039;t know what is expecting him in the beginning, but benefits from the advantages a map brings to him while he proceeds. In addition an automap provides information about where the player already have been and therefore can avoid frustrating moments when he is searching for one little room he may have overseen.&lt;br /&gt;
&lt;br /&gt;
The following article now describes how to set up such an item.&lt;br /&gt;
&lt;br /&gt;
== Preparations ==&lt;br /&gt;
&lt;br /&gt;
The first step is to actually draw your map. How you do this is your business. After you have done so you should cut out all the seperate rooms you want to appear on the map later on. Make sure to make the background transparent (using gimp for example). If you do so you should have&lt;br /&gt;
&lt;br /&gt;
- one picture containing the parts of the map the player already know at mission start (called &#039;&#039;startmap&#039;&#039; furthermore)&lt;br /&gt;
- several pictures of the rooms he can discover later on&lt;br /&gt;
&lt;br /&gt;
It is your choice if you want to put the &#039;&#039;startmap&#039;&#039; on the &#039;&#039;map_of_.tga&#039;&#039; file served with the &#039;&#039;&#039;startmap&#039;&#039;&#039; package or keep it seperate. However, for the tutorial let&#039;s just assume you have choosen the first possibility.&lt;br /&gt;
&lt;br /&gt;
Furthermore you should get familiar with the zone system as it is needed here.&lt;br /&gt;
&lt;br /&gt;
== Setting up the gui ==&lt;br /&gt;
&lt;br /&gt;
The gui looks like this:&lt;br /&gt;
&lt;br /&gt;
  windowDef Desktop&lt;br /&gt;
  {&lt;br /&gt;
    	rect      0,0,640,480&lt;br /&gt;
    	nocursor 1&lt;br /&gt;
         &lt;br /&gt;
        windowDef background_map&lt;br /&gt;
        {&lt;br /&gt;
                rect      64,48, 512, 394&lt;br /&gt;
                background &amp;quot;guis/automap/map_of&amp;quot;&lt;br /&gt;
                visible 1&lt;br /&gt;
        }&lt;br /&gt;
        ...&lt;br /&gt;
        // Required include for inventory map&lt;br /&gt;
        #include &amp;quot;guis/readables/inventory_map.guicode&amp;quot;	&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
In our case &#039;&#039;guis/automap/map_of&#039;&#039; is the file that holds the startmap. Where the dots are you have to add the following code for &#039;&#039;&#039;each&#039;&#039;&#039; area visible on the map.&lt;br /&gt;
    windowDef &#039;&#039;nameOfArea&#039;&#039;&lt;br /&gt;
    {&lt;br /&gt;
         rect 100,100,380,300&lt;br /&gt;
         background &amp;quot;&#039;&#039;path_to_imagefile&#039;&#039;&amp;quot;&lt;br /&gt;
         visible &amp;quot;gui::gui_XYZ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;nameOFArea&#039;&#039; can be choosen as you like, but each name must be unique and it makes sense to make it recogniseable&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;path_to_imagefile&#039;&#039; holds the path to the image to be drawn. Where nothing gets drawn the image should be transparent&lt;br /&gt;
&lt;br /&gt;
- the gui variable gui::gui_XYZ determines whether the image is visible or not. XYZ is the name of the corresponding location entity. You can easely get typos, so if something isn&#039;t working this is the first place to check&lt;br /&gt;
&lt;br /&gt;
Note that all pictures are using the same area of the gui. This easens the setup, but must be taken into account when creating the images for the map.&lt;br /&gt;
&lt;br /&gt;
== The entity Definition ==&lt;br /&gt;
&lt;br /&gt;
    entityDef atdm:automap&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;inherit&amp;quot;			&amp;quot;atdm:map_base&amp;quot;&lt;br /&gt;
        &amp;quot;editor_usage&amp;quot;		&amp;quot;game map of terrain for player&amp;quot; // THIS ONLY SHOWS IN ENTITY INSPECTOR&lt;br /&gt;
        &amp;quot;inv_name&amp;quot;			&amp;quot;Map&amp;quot; // SHOWS IN PLAYER&#039;S INVENTORY.&lt;br /&gt;
        &amp;quot;inv_icon&amp;quot;			&amp;quot;guis/assets/game_maps/map_of_icon.tga&amp;quot;&lt;br /&gt;
        &amp;quot;gui&amp;quot;				&amp;quot;guis/automap/automap.gui&amp;quot;&lt;br /&gt;
        &amp;quot;scriptobject&amp;quot;	&amp;quot;inventory_automap&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
The important parts here are the &#039;&#039;gui&#039;&#039; spawnarg, letting it use the before mentioned gui, and the &#039;&#039;scriptobject&#039;&#039; spawnarg.&lt;br /&gt;
&lt;br /&gt;
== The script object ==&lt;br /&gt;
&lt;br /&gt;
The scriptobject as well as an example setup can be found [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/?p=317949, here]&lt;br /&gt;
&lt;br /&gt;
The main difference to a &#039;&#039;normal&#039;&#039; map is the updateLoop, which gets executed every few milliseconds.&lt;br /&gt;
&lt;br /&gt;
    void inventory_automap::updateLoop()&lt;br /&gt;
    {&lt;br /&gt;
        string loc;&lt;br /&gt;
        while(1)&lt;br /&gt;
        {&lt;br /&gt;
            loc=$player1.getLocation().getName();&lt;br /&gt;
            loc=&amp;quot;gui_&amp;quot;+loc;&lt;br /&gt;
            setKey(loc,1);&lt;br /&gt;
            sys.wait(0.1);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
As you can see it is pretty short. The only thing it does is retrieving the name of the location the player is currently in and pass this to the gui. Than it waits for 100 ms.&lt;br /&gt;
&lt;br /&gt;
Example: The player is in a location which contains an info_location entity named &#039;&#039;kitchen&#039;&#039;. This value gets read out and passed to the variable &#039;&#039;&#039;loc&#039;&#039;&#039;. Than the &#039;&#039;gui_&#039;&#039; string is added on front, so &#039;&#039;&#039;loc&#039;&#039;&#039; is now &#039;&#039;gui_kitchen&#039;&#039;. (Remember the gui variable earlier on?) This value gets than set to 1. This will not have an effect if the value is already set to 1, but it doesn&#039;t hurt either.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
It is quite simple to setup a fully functional automap. The main effort for the mapper is to actually draw the map.&lt;br /&gt;
&lt;br /&gt;
== Additions ==&lt;br /&gt;
&lt;br /&gt;
It is possible to extent the functionality of the automap. This will however require changes to the scriptobject.&lt;br /&gt;
&lt;br /&gt;
You can setup Objectives where the player has to explore a certain percentage of the map (like in Mission #13 in Thief2: The Metal Age). This requires to set the percentage values you want each location to have on the respective location entities. You can than read them out in the update loop. To avoid the same values to be added up several times you would also need to keep track of which locations have already been counted. A global scripting variable keeps track of the percentage already discovered by the player and sets the respective mission objective to successful once it reaches the desired amount.&lt;br /&gt;
&lt;br /&gt;
You can have maps that mark areas where you already have been and were you currently are. This requires alering the gui, too, as you have to specify the colors to be used for hilighting depending on whether the player is still in an area or not.&lt;br /&gt;
&lt;br /&gt;
Similar to the images you can have text added to the map, like little notes that become visible once a condition is met (the player reads a note or similar). See [https://www.iddevnet.com/doom3/guis.php, here] for more info on how to setup the gui.&lt;br /&gt;
&lt;br /&gt;
Questions, replies and advices of any kind can go [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/ here]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 06:33, 25 January 2013 (EST)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=How_to_create_a_pond&amp;diff=19316</id>
		<title>How to create a pond</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=How_to_create_a_pond&amp;diff=19316"/>
		<updated>2017-06-11T14:19:20Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Editing]]&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
When mapping you may often want to create natural looking things like a pond for example. Natural means the same as organic, thus meaning uneven - non-blocky. The best way to achieve this goal is to use patches. &lt;br /&gt;
&lt;br /&gt;
This article attempts to describe how to use them to create proper results with a low amount of time.&lt;br /&gt;
&lt;br /&gt;
The content of this article is closely related to the patch street tutorial and the cave tutorial. For further information check the wiki and the forum.&lt;br /&gt;
&lt;br /&gt;
== How to create round patches ==&lt;br /&gt;
&lt;br /&gt;
This is very basic knowledge you can use in a lot of different situations. &lt;br /&gt;
&lt;br /&gt;
First of all, create a 3x9 patch. Select the view from which you can see it from above. What we are aiming for is to have it connected together so it ends up round. As the patch contains out of 9 vertices in one direction, we want to have three vertices (the columns) each point towards another angle in 45° steps, so that the last vertices coincidents with the first.&lt;br /&gt;
&lt;br /&gt;
At next we bring them roughly into their target destinations, what should look as followed&lt;br /&gt;
&lt;br /&gt;
[[File:patch1.png|thumb|600px|none]]&lt;br /&gt;
&lt;br /&gt;
Then turn the columns so they face into the right direction. Note that you can select multiple vertices and rotate them using &amp;quot;rotate and scale&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:patch2.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
Than get the vertices into their rough end-places (the connecting lines should stand parallel to each other) ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:patch3.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
and select all vertices and snap them to grid (shortcut: ctrl+g).&lt;br /&gt;
&lt;br /&gt;
[[File:patch4.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
== How to create the pond ==&lt;br /&gt;
&lt;br /&gt;
Here are the steps you have to follow to create a pond.&lt;br /&gt;
&lt;br /&gt;
1. Create your hole&lt;br /&gt;
&lt;br /&gt;
[[File:pond1.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
2. Create a patch (5x9 in this case)&lt;br /&gt;
&lt;br /&gt;
[[File:pond2.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
3. and give it a proper shape&lt;br /&gt;
&lt;br /&gt;
[[File:pond3.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
4. make it round (see above)&lt;br /&gt;
&lt;br /&gt;
[[File:pond5.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
5. and bulge it (patch -&amp;gt; bulge patch)&lt;br /&gt;
&lt;br /&gt;
[[File:pond6.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
Note that you may have to realign the end points afterwards.&lt;br /&gt;
&lt;br /&gt;
6. Create a 5x5 patch and drag the outer vertices upwards. Bulge it if you like to&lt;br /&gt;
&lt;br /&gt;
[[File:pond7.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
7. Than add your water. All the textures were paste projected. &lt;br /&gt;
&lt;br /&gt;
[[File:pond9.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
That&#039;s it.&lt;br /&gt;
&lt;br /&gt;
For pictures of the ingame results see [http://forums.thedarkmod.com/topic/14647-how-can-i-make-a-realistic-looking-pond/, here].&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 15:16, 8 April 2013 (EDT)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Objectives,_triggering&amp;diff=19315</id>
		<title>Objectives, triggering</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Objectives,_triggering&amp;diff=19315"/>
		<updated>2017-06-11T14:19:07Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Editing]]&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Sometimes a map requires that, after the completion of one or more objectives, something in the map changes. The example I&#039;ll use here is the appearance of an entity in the map. This method can be used for other things, too.&lt;br /&gt;
&lt;br /&gt;
== Basics ==&lt;br /&gt;
&lt;br /&gt;
The first thing to understand is what the objectives editor (OE) offers. There are four fields in the OE that are interesting here. They are the &#039;&#039;&#039;success/failure target/script&#039;&#039;&#039; fields. These are the targets [[Triggers|triggered]] or the script functions called when an objective succeeds or fails. Normally you won&#039;t use them very often, but they are quite useful.&lt;br /&gt;
&lt;br /&gt;
== Example: Let an object appear when an objective is completed ==&lt;br /&gt;
&lt;br /&gt;
The first thing you have to do is to set up the object you want to appear once the player has finished an objective. For our example, we&#039;ll give it the name &#039;&#039;object&#039;&#039;. Then go to the specific objective in the OE, and type in the &#039;&#039;&#039;success script&#039;&#039;&#039; field &#039;&#039;showObject&#039;&#039;. This will be the name of a script function.&lt;br /&gt;
&lt;br /&gt;
Now create a script file in your maps folder called &#039;&#039;mymapname&#039;&#039;.script, where &#039;&#039;mymapname&#039;&#039; is the name of your map. Type in the following code:&lt;br /&gt;
&lt;br /&gt;
  void showObject() {&lt;br /&gt;
    $object.show();&lt;br /&gt;
  }&lt;br /&gt;
  void main() {&lt;br /&gt;
    $object.hide();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
That&#039;s it. The &#039;&#039;main&#039;&#039; method is called upon map start and causes the object to disappear from the game. It&#039;s not really gone; it&#039;s just hidden. When your desired objective is completed, the method &#039;&#039;showObject&#039;&#039; is called, which causes the object to appear again.&lt;br /&gt;
&lt;br /&gt;
== Making things more complex ==&lt;br /&gt;
&lt;br /&gt;
Of course, you can use a more complex setup if needed. Let&#039;s assume you want the object to appear after a certain number of objectives have been completed. To achieve this, create &#039;&#039;trigger_count&#039;&#039; and &#039;&#039;target_callscriptfunction&#039;&#039; entities. Fill the &#039;&#039;&#039;success target&#039;&#039;&#039; fields of all the possible or required objectives with the name of the &#039;&#039;trigger_count&#039;&#039; entity. On this entity set the spawnarg &amp;quot;count&amp;quot; &amp;quot;N&amp;quot;, where N is the number of objectives that must be completed and let it target the &#039;&#039;target_callscriptfunction&#039;&#039; entity. On the latter, set the spawnarg &amp;quot;call&amp;quot; &amp;quot;showObject&amp;quot;. That&#039;s it. &lt;br /&gt;
&lt;br /&gt;
How does it work?&lt;br /&gt;
&lt;br /&gt;
Once an objective is complete, it will trigger the &#039;&#039;trigger_count&#039;&#039; entity. That entity&#039;s counter goes up by 1 and gets compared with the spawnarg &amp;quot;count&amp;quot;. Once the count reaches N, it will trigger the &#039;&#039;target_callscriptfunction&#039;&#039;, which then calls the script function to let the object appear in-game.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Hint: As all the &#039;&#039;&#039;success script&#039;&#039;&#039; fields are empty, the function is &#039;&#039;&#039;NOT&#039;&#039;&#039; called by any objective directly. This is done by the target entity.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 08:41, 2 January 2013 (EST)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=19314</id>
		<title>Obsttortes Wiki articles</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=19314"/>
		<updated>2017-06-11T14:18:55Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: /* Creating Automaps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Triggering Events when looking at something ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Triggering_events_when_looking_at_something Link]&lt;br /&gt;
&lt;br /&gt;
== In-game automatic note book ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Automatic_note_book Link]&lt;br /&gt;
&lt;br /&gt;
== In-game shop ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=In-game_shop Link]&lt;br /&gt;
&lt;br /&gt;
== AI behaviour depending on player actions ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=AI_behaviour_depending_on_players_actions_%28new_version%29 Link]&lt;br /&gt;
&lt;br /&gt;
== Creating Automaps ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Creating_Automaps Link]&lt;br /&gt;
&lt;br /&gt;
== Triggering Objectives ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Objectives,_triggering Link]&lt;br /&gt;
&lt;br /&gt;
== Creating a pond ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=How_to_create_a_pond Link]&lt;br /&gt;
&lt;br /&gt;
== Altering the savegame behaviour ==&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Altering_the_savegame_behaviour_of_TDM, Link]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 14:36, 11 January 2015 (UTC)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=AI_behaviour_depending_on_players_actions_(new_version)&amp;diff=19313</id>
		<title>AI behaviour depending on players actions (new version)</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=AI_behaviour_depending_on_players_actions_(new_version)&amp;diff=19313"/>
		<updated>2017-06-11T14:18:38Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Editing]]&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
If you want to create a mission, in which the ai is neutral to the player, but becomes hostile if he sees him doing something forbidden, like for example stealing an object or picking a lock, you can use the following approach. The setup is, as you&#039;ll se, pretty simple.&lt;br /&gt;
&lt;br /&gt;
== Scripting ==&lt;br /&gt;
&lt;br /&gt;
The first steps to do is to download the script file [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/page__view__findpost__p__307381, here] and put it in the script folder. In the same folder, create a file caled &#039;&#039;tdm_custom_scripts.script&#039;&#039; and put the following line in it&lt;br /&gt;
&lt;br /&gt;
  #include &amp;quot;script/responseEffects.script&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then go to your maps directory and create a file called &#039;&#039;mymapname.script&#039;, where mymapname is the name of your map. Put the following lines in it&lt;br /&gt;
&lt;br /&gt;
  void main() {&lt;br /&gt;
    thread checkStatus();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
That&#039;s it. No moer scripting needed.&lt;br /&gt;
&lt;br /&gt;
== DarkRadiant ==&lt;br /&gt;
&lt;br /&gt;
There are some steps that need to be performed in DarkRadiant to get things working.&lt;br /&gt;
&lt;br /&gt;
- On every ai, set the spawnarg &amp;quot;scriptobject&amp;quot; &amp;quot;ai_stim&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- On flashbombs, flashmines and mines change the scriptobject spawnarg by adding &amp;quot;_stim&amp;quot; at the end&lt;br /&gt;
  Example: the flashbomb uses the scriptobject playertools_flashbomb by default, which you must change to playertools_flashbomb_stim&lt;br /&gt;
&lt;br /&gt;
- On every piece of loot and other objects which the player should not be allowed to take add the spawnarg &amp;quot;frob_action_script&amp;quot; &amp;quot;frobsLoot&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If you want to have areas where the player is allowed to be, and others where he isn&#039;t, you need to use the zone system (via info_location_settings and info_location / info_location_seperator). On the &#039;&#039;info_location entities&#039;&#039; belonging to areas where the player is allowed to be, add &amp;quot;call_on_entry&amp;quot; &amp;quot;setNeutralZone&amp;quot;, on the entities belonging to not allowed areas, set &amp;quot;call_on_entry&amp;quot; &amp;quot;setHostileZone&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
That&#039;s it.&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 06:25, 17 March 2013 (EDT)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=In-game_shop&amp;diff=19312</id>
		<title>In-game shop</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=In-game_shop&amp;diff=19312"/>
		<updated>2017-06-11T14:18:24Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Editing]]&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
If you want to give the player the  possibility to buy items in-game, this article tells you how to do it.&lt;br /&gt;
&lt;br /&gt;
== The scriptobject ==&lt;br /&gt;
&lt;br /&gt;
First of all you need the scriptobject handling the behaviour of the specific objects you want the player to be able to buy. You can get it [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/page__view__findpost__p__307546, here]. It&#039;s shop_item.script.&lt;br /&gt;
&lt;br /&gt;
Put it in your script folder, delete the .txt ending and include it by adding the line&lt;br /&gt;
&lt;br /&gt;
  #include &amp;quot;script/shop_item.script&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to your tdm_custom_scripts.script file. If there is no such a file, you have to create it.&lt;br /&gt;
&lt;br /&gt;
== Setting it up ==&lt;br /&gt;
&lt;br /&gt;
In DarkRadiant, create a model of the object you want to sell. Place it at it&#039;s position and add the following spawnargs.&lt;br /&gt;
&lt;br /&gt;
- &amp;quot;scriptobject&amp;quot; &amp;quot;shop_item&amp;quot;: This tells the object to use the appropiate script&lt;br /&gt;
- &amp;quot;item&amp;quot; &amp;quot;&amp;lt;itemname&amp;gt;&amp;quot;: itemname is the name of the entity you want the player to buy. If you don&#039;t know the name, you can look it up in the create entity dialog (an example would be atdm:ammo_waterarrow)&lt;br /&gt;
- &amp;quot;price&amp;quot; &amp;quot;X&amp;quot;: how much this item costs (X is the value)&lt;br /&gt;
- &amp;quot;amount&amp;quot; &amp;quot;Y&amp;quot;: how many items are available for selling. If you don&#039;t set this there will be infinite&lt;br /&gt;
- &amp;quot;text&amp;quot; &amp;quot;your_text_here&amp;quot;: if you want a popup-message to appear if the player frobhilights this object, you can put it here (for example &amp;quot;Waterarrow: 50g&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The script automatically uses the loot the player has. If one type of loot has exceeded, another type is used. If the player hasn&#039;t enough loot to purchase the item, nothings happen. If the amount of items available has exceeded the object will automatically be removed from game.&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 11:51, 19 March 2013 (EDT)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Automatic_note_book&amp;diff=19311</id>
		<title>Automatic note book</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Automatic_note_book&amp;diff=19311"/>
		<updated>2017-06-11T14:18:11Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Editing]]&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
If you are planning to create a mission, in which the player receives a lot of notes containing a lot of information, you always have to ask yourself if this will please everyone. Not everyone likes to take down notes while playing, so it would be good to have a note book that does this automatically. This is standard in most RPG&#039;s and adventure-styled games, and here it is described how you can set it up.&lt;br /&gt;
&lt;br /&gt;
== The scriptobject ==&lt;br /&gt;
&lt;br /&gt;
The first thing you need is the appropiate scriptobject. It can be found [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/page__view__findpost__p__307413, here]. Copy it in your script folder, remove the txt ending and include it by adding the line&lt;br /&gt;
&lt;br /&gt;
  #include &amp;quot;script/tdm_diary.script&amp;quot;&lt;br /&gt;
&lt;br /&gt;
in the tdm_custom_scripts.script file. If no such file exists, you have to create it.&lt;br /&gt;
&lt;br /&gt;
== The note book ==&lt;br /&gt;
&lt;br /&gt;
In DarkRadiant, create a book entity. You should use a mobile one. Add the following spawnargs:&lt;br /&gt;
&lt;br /&gt;
- &amp;quot;scriptobject&amp;quot; &amp;quot;flexible_readable&amp;quot;: Let&#039;s the book use the appropiate scriptobject&lt;br /&gt;
- &amp;quot;gui_page1&amp;quot; &amp;quot;name_of_your_gui_here&amp;quot;: The gui the book should use. Note that currently only one-sided guis are supported&lt;br /&gt;
- &amp;quot;num_pages&amp;quot; &amp;quot;1&amp;quot;&lt;br /&gt;
- &amp;quot;lineNums&amp;quot; &amp;quot;0&amp;quot;&lt;br /&gt;
- &amp;quot;max_lines&amp;quot; &amp;quot;X&amp;quot; : The maximum number of lines that fits on one page depending on the gui you&#039;ve choosen (you can test this in the readable editor)&lt;br /&gt;
&lt;br /&gt;
That&#039;s it for the note book.&lt;br /&gt;
&lt;br /&gt;
== Adding notes ==&lt;br /&gt;
&lt;br /&gt;
Now you have the notebook, but it&#039;s empty. If you want to add a note, follow these steps.&lt;br /&gt;
&lt;br /&gt;
Create a gui_message entity. You can find this under targets. Add the following spawnargs on it:&lt;br /&gt;
&lt;br /&gt;
- &amp;quot;scriptobject&amp;quot; &amp;quot;tdm_diary&amp;quot;&lt;br /&gt;
- &amp;quot;call&amp;quot; &amp;quot;addMessage&amp;quot;&lt;br /&gt;
- &amp;quot;diary&amp;quot; &amp;quot;name_of_your_note_book&amp;quot;: fill in the name of the above created book entity&lt;br /&gt;
- &amp;quot;text&amp;quot; &amp;quot;your_text_here&amp;quot;: the text that should be added to the note book&lt;br /&gt;
- &amp;quot;lines&amp;quot; &amp;quot;Y&amp;quot;: the number of lines required for the text&lt;br /&gt;
&lt;br /&gt;
The message will be added to the diary when the entity get&#039;s triggered.&lt;br /&gt;
&lt;br /&gt;
== Properties ==&lt;br /&gt;
&lt;br /&gt;
Every message will start on a new line. If you want to have line spaces between the single messages, set the lines spawnarg to a higher value then really required by the text. If the number of lines left on a page are not enough to contain the message, a new page will be automatically created to show the message.&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 12:17, 19 March 2013 (EDT)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Triggering_events_when_looking_at_something&amp;diff=19310</id>
		<title>Triggering events when looking at something</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Triggering_events_when_looking_at_something&amp;diff=19310"/>
		<updated>2017-06-11T14:17:56Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Editing]]&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Triggering events in games is a nice feature that can be used to drive the story forwards or to create tension. There are already several possibilities, how events can be triggered in DarkRadiant. The most common ones are the player entering a specific area, taking an object or fulfilling an objective. &lt;br /&gt;
&lt;br /&gt;
This article describes how to get entities to trigger events, if the player looks at them.&lt;br /&gt;
&lt;br /&gt;
== The scriptobject ==&lt;br /&gt;
&lt;br /&gt;
The first thing you need is the scriptobject, which you can get [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/page__view__findpost__p__307416, here]. Put t in your script folder and include it by adding the line&lt;br /&gt;
&lt;br /&gt;
  #include &amp;quot;script/trigger_look.script&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In your tdm_custom_scripts.script file. If there is no such file, you have to create it.&lt;br /&gt;
&lt;br /&gt;
== The setup ==&lt;br /&gt;
&lt;br /&gt;
On the object you want to trigger an event, add the spawnarg &amp;quot;scriptobject&amp;quot; &amp;quot;trigger_look&amp;quot;. That&#039;s it. If the player does look at it, it will trigger all it&#039;s targets.&lt;br /&gt;
&lt;br /&gt;
== Additional Spawnargs ==&lt;br /&gt;
&lt;br /&gt;
There are some additional spawnargs that can be used to control the behaviour of this object. They are all optional.&lt;br /&gt;
&lt;br /&gt;
- &amp;quot;entityname&amp;quot;: The entity to react to (default is player1, thus meaning the player)&lt;br /&gt;
- &amp;quot;stim&amp;quot;: the stim used to enable this object (default is PLAYER_STIM)&lt;br /&gt;
- &amp;quot;distance&amp;quot;: how close the entity must be (default: 1024)&lt;br /&gt;
- &amp;quot;tolerance&amp;quot;: describes how exact the player (or another entity) must look (default: 0.1)&lt;br /&gt;
- &amp;quot;once&amp;quot;: if set to one, the entity will trigger it&#039;s targets only once (default: 0)&lt;br /&gt;
&lt;br /&gt;
== Remarks ==&lt;br /&gt;
&lt;br /&gt;
There are two parts in the workflow of this object. The first part is the stim, that enables the object, the second one is the entity to react to. This must not be the same!&lt;br /&gt;
&lt;br /&gt;
While for the player the code checks, if he looks at it, for other entities it only checks wheter they are facing in the correct direction (in the x-y-plane).&lt;br /&gt;
&lt;br /&gt;
The code does not check, if the entity can be really seen. So if the player for example looks at it trough a wall within the proper range, it will be activated, too. I plan to add this feature later on. In the meantime, you should adjust the distance spawnarg to get the desired effect.&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19309</id>
		<title>Creating Automaps</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19309"/>
		<updated>2017-06-11T14:17:13Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Editing]]&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Normally the player is given a map at mission start, which is showing him the location he is attempting to sneak in. However, it may not seem very realistic that the player already possesses such detailed information without ever been in the specific place. An automap, thus meaning a map that gets drawn while the player proceeds in his mission may seem more realistic.&lt;br /&gt;
&lt;br /&gt;
On the other hand such thing can also add a lot to immersion. The player don&#039;t know what is expecting him in the beginning, but benefits from the advantages a map brings to him while he proceeds. In addition an automap provides information about where the player already have been and therefore can avoid frustrating moments when he is searching for one little room he may have overseen.&lt;br /&gt;
&lt;br /&gt;
The following article now describes how to set up such an item.&lt;br /&gt;
&lt;br /&gt;
== Preparations ==&lt;br /&gt;
&lt;br /&gt;
The first step is to actually draw your map. How you do this is your business. After you have done so you should cut out all the seperate rooms you want to appear on the map later on. Make sure to make the background transparent (using gimp for example). If you do so you should have&lt;br /&gt;
&lt;br /&gt;
- one picture containing the parts of the map the player already know at mission start (called &#039;&#039;startmap&#039;&#039; furthermore)&lt;br /&gt;
- several pictures of the rooms he can discover later on&lt;br /&gt;
&lt;br /&gt;
It is your choice if you want to put the &#039;&#039;startmap&#039;&#039; on the &#039;&#039;map_of_.tga&#039;&#039; file served with the &#039;&#039;&#039;startmap&#039;&#039;&#039; package or keep it seperate. However, for the tutorial let&#039;s just assume you have choosen the first possibility.&lt;br /&gt;
&lt;br /&gt;
Furthermore you should get familiar with the zone system as it is needed here.&lt;br /&gt;
&lt;br /&gt;
== Setting up the gui ==&lt;br /&gt;
&lt;br /&gt;
The gui looks like this:&lt;br /&gt;
&lt;br /&gt;
  windowDef Desktop&lt;br /&gt;
  {&lt;br /&gt;
    	rect      0,0,640,480&lt;br /&gt;
    	nocursor 1&lt;br /&gt;
         &lt;br /&gt;
        windowDef background_map&lt;br /&gt;
        {&lt;br /&gt;
                rect      64,48, 512, 394&lt;br /&gt;
                background &amp;quot;guis/automap/map_of&amp;quot;&lt;br /&gt;
                visible 1&lt;br /&gt;
        }&lt;br /&gt;
        ...&lt;br /&gt;
        // Required include for inventory map&lt;br /&gt;
        #include &amp;quot;guis/readables/inventory_map.guicode&amp;quot;	&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
In our case &#039;&#039;guis/automap/map_of&#039;&#039; is the file that holds the startmap. Where the dots are you have to add the following code for &#039;&#039;&#039;each&#039;&#039;&#039; area visible on the map.&lt;br /&gt;
    windowDef &#039;&#039;nameOfArea&#039;&#039;&lt;br /&gt;
    {&lt;br /&gt;
         rect 100,100,380,300&lt;br /&gt;
         background &amp;quot;&#039;&#039;path_to_imagefile&#039;&#039;&amp;quot;&lt;br /&gt;
         visible &amp;quot;gui::gui_XYZ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;nameOFArea&#039;&#039; can be choosen as you like, but each name must be unique and it makes sense to make it recogniseable&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;path_to_imagefile&#039;&#039; holds the path to the image to be drawn. Where nothing gets drawn the image should be transparent&lt;br /&gt;
&lt;br /&gt;
- the gui variable gui::gui_XYZ determines whether the image is visible or not. XYZ is the name of the corresponding location entity. You can easely get typos, so if something isn&#039;t working this is the first place to check&lt;br /&gt;
&lt;br /&gt;
Note that all pictures are using the same area of the gui. This easens the setup, but must be taken into account when creating the images for the map.&lt;br /&gt;
&lt;br /&gt;
== The entity Definition ==&lt;br /&gt;
&lt;br /&gt;
    entityDef atdm:automap&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;inherit&amp;quot;			&amp;quot;atdm:map_base&amp;quot;&lt;br /&gt;
        &amp;quot;editor_usage&amp;quot;		&amp;quot;game map of terrain for player&amp;quot; // THIS ONLY SHOWS IN ENTITY INSPECTOR&lt;br /&gt;
        &amp;quot;inv_name&amp;quot;			&amp;quot;Map&amp;quot; // SHOWS IN PLAYER&#039;S INVENTORY.&lt;br /&gt;
        &amp;quot;inv_icon&amp;quot;			&amp;quot;guis/assets/game_maps/map_of_icon.tga&amp;quot;&lt;br /&gt;
        &amp;quot;gui&amp;quot;				&amp;quot;guis/automap/automap.gui&amp;quot;&lt;br /&gt;
        &amp;quot;scriptobject&amp;quot;	&amp;quot;inventory_automap&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
The important parts here are the &#039;&#039;gui&#039;&#039; spawnarg, letting it use the before mentioned gui, and the &#039;&#039;scriptobject&#039;&#039; spawnarg.&lt;br /&gt;
&lt;br /&gt;
== The script object ==&lt;br /&gt;
&lt;br /&gt;
The scriptobject as well as an example setup can be found [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/?p=317949, here]&lt;br /&gt;
&lt;br /&gt;
The main difference to a &#039;&#039;normal&#039;&#039; map is the updateLoop, which gets executed every few milliseconds.&lt;br /&gt;
&lt;br /&gt;
    void inventory_automap::updateLoop()&lt;br /&gt;
    {&lt;br /&gt;
	string loc;&lt;br /&gt;
	while(1)&lt;br /&gt;
	{&lt;br /&gt;
		loc=$player1.getLocation().getName();&lt;br /&gt;
		loc=&amp;quot;gui_&amp;quot;+loc;&lt;br /&gt;
		setKey(loc,1);&lt;br /&gt;
		sys.wait(0.1);&lt;br /&gt;
	}&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
As you can see it is pretty short. The only thing it does is retrieving the name of the location the player is currently in and pass this to the gui. Than it waits for 100 ms.&lt;br /&gt;
&lt;br /&gt;
Example: The player is in a location which contains an info_location entity named &#039;&#039;kitchen&#039;&#039;. This value gets read out and passed to the variable &#039;&#039;&#039;loc&#039;&#039;&#039;. Than the &#039;&#039;gui_&#039;&#039; string is added on front, so &#039;&#039;&#039;loc&#039;&#039;&#039; is now &#039;&#039;gui_kitchen&#039;&#039;. (Remember the gui variable earlier on?) This value gets than set to 1. This will not have an effect if the value is already set to 1, but it doesn&#039;t hurt either.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
It is quite simple to setup a fully functional automap. The main effort for the mapper is to actually draw the map.&lt;br /&gt;
&lt;br /&gt;
== Additions ==&lt;br /&gt;
&lt;br /&gt;
It is possible to extent the functionality of the automap. This will however require changes to the scriptobject.&lt;br /&gt;
&lt;br /&gt;
You can setup Objectives where the player has to explore a certain percentage of the map (like in Mission #13 in Thief2: The Metal Age). This requires to set the percentage values you want each location to have on the respective location entities. You can than read them out in the update loop. To avoid the same values to be added up several times you would also need to keep track of which locations have already been counted. A global scripting variable keeps track of the percentage already discovered by the player and sets the respective mission objective to successful once it reaches the desired amount.&lt;br /&gt;
&lt;br /&gt;
You can have maps that mark areas where you already have been and were you currently are. This requires alering the gui, too, as you have to specify the colors to be used for hilighting depending on whether the player is still in an area or not.&lt;br /&gt;
&lt;br /&gt;
Similar to the images you can have text added to the map, like little notes that become visible once a condition is met (the player reads a note or similar). See [https://www.iddevnet.com/doom3/guis.php, here] for more info on how to setup the gui.&lt;br /&gt;
&lt;br /&gt;
Questions, replies and advices of any kind can go [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/ here]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 06:33, 25 January 2013 (EST)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19308</id>
		<title>Creating Automaps</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19308"/>
		<updated>2017-06-11T14:14:05Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: /* The entity Definition */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Normally the player is given a map at mission start, which is showing him the location he is attempting to sneak in. However, it may not seem very realistic that the player already possesses such detailed information without ever been in the specific place. An automap, thus meaning a map that gets drawn while the player proceeds in his mission may seem more realistic.&lt;br /&gt;
&lt;br /&gt;
On the other hand such thing can also add a lot to immersion. The player don&#039;t know what is expecting him in the beginning, but benefits from the advantages a map brings to him while he proceeds. In addition an automap provides information about where the player already have been and therefore can avoid frustrating moments when he is searching for one little room he may have overseen.&lt;br /&gt;
&lt;br /&gt;
The following article now describes how to set up such an item.&lt;br /&gt;
&lt;br /&gt;
== Preparations ==&lt;br /&gt;
&lt;br /&gt;
The first step is to actually draw your map. How you do this is your business. After you have done so you should cut out all the seperate rooms you want to appear on the map later on. Make sure to make the background transparent (using gimp for example). If you do so you should have&lt;br /&gt;
&lt;br /&gt;
- one picture containing the parts of the map the player already know at mission start (called &#039;&#039;startmap&#039;&#039; furthermore)&lt;br /&gt;
- several pictures of the rooms he can discover later on&lt;br /&gt;
&lt;br /&gt;
It is your choice if you want to put the &#039;&#039;startmap&#039;&#039; on the &#039;&#039;map_of_.tga&#039;&#039; file served with the &#039;&#039;&#039;startmap&#039;&#039;&#039; package or keep it seperate. However, for the tutorial let&#039;s just assume you have choosen the first possibility.&lt;br /&gt;
&lt;br /&gt;
Furthermore you should get familiar with the zone system as it is needed here.&lt;br /&gt;
&lt;br /&gt;
== Setting up the gui ==&lt;br /&gt;
&lt;br /&gt;
The gui looks like this:&lt;br /&gt;
&lt;br /&gt;
  windowDef Desktop&lt;br /&gt;
  {&lt;br /&gt;
    	rect      0,0,640,480&lt;br /&gt;
    	nocursor 1&lt;br /&gt;
         &lt;br /&gt;
        windowDef background_map&lt;br /&gt;
        {&lt;br /&gt;
                rect      64,48, 512, 394&lt;br /&gt;
                background &amp;quot;guis/automap/map_of&amp;quot;&lt;br /&gt;
                visible 1&lt;br /&gt;
        }&lt;br /&gt;
        ...&lt;br /&gt;
        // Required include for inventory map&lt;br /&gt;
        #include &amp;quot;guis/readables/inventory_map.guicode&amp;quot;	&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
In our case &#039;&#039;guis/automap/map_of&#039;&#039; is the file that holds the startmap. Where the dots are you have to add the following code for &#039;&#039;&#039;each&#039;&#039;&#039; area visible on the map.&lt;br /&gt;
    windowDef &#039;&#039;nameOfArea&#039;&#039;&lt;br /&gt;
    {&lt;br /&gt;
         rect 100,100,380,300&lt;br /&gt;
         background &amp;quot;&#039;&#039;path_to_imagefile&#039;&#039;&amp;quot;&lt;br /&gt;
         visible &amp;quot;gui::gui_XYZ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;nameOFArea&#039;&#039; can be choosen as you like, but each name must be unique and it makes sense to make it recogniseable&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;path_to_imagefile&#039;&#039; holds the path to the image to be drawn. Where nothing gets drawn the image should be transparent&lt;br /&gt;
&lt;br /&gt;
- the gui variable gui::gui_XYZ determines whether the image is visible or not. XYZ is the name of the corresponding location entity. You can easely get typos, so if something isn&#039;t working this is the first place to check&lt;br /&gt;
&lt;br /&gt;
Note that all pictures are using the same area of the gui. This easens the setup, but must be taken into account when creating the images for the map.&lt;br /&gt;
&lt;br /&gt;
== The entity Definition ==&lt;br /&gt;
&lt;br /&gt;
    entityDef atdm:automap&lt;br /&gt;
    {&lt;br /&gt;
        &amp;quot;inherit&amp;quot;			&amp;quot;atdm:map_base&amp;quot;&lt;br /&gt;
        &amp;quot;editor_usage&amp;quot;		&amp;quot;game map of terrain for player&amp;quot; // THIS ONLY SHOWS IN ENTITY INSPECTOR&lt;br /&gt;
        &amp;quot;inv_name&amp;quot;			&amp;quot;Map&amp;quot; // SHOWS IN PLAYER&#039;S INVENTORY.&lt;br /&gt;
        &amp;quot;inv_icon&amp;quot;			&amp;quot;guis/assets/game_maps/map_of_icon.tga&amp;quot;&lt;br /&gt;
        &amp;quot;gui&amp;quot;				&amp;quot;guis/automap/automap.gui&amp;quot;&lt;br /&gt;
        &amp;quot;scriptobject&amp;quot;	&amp;quot;inventory_automap&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
The important parts here are the &#039;&#039;gui&#039;&#039; spawnarg, letting it use the before mentioned gui, and the &#039;&#039;scriptobject&#039;&#039; spawnarg.&lt;br /&gt;
&lt;br /&gt;
== The script object ==&lt;br /&gt;
&lt;br /&gt;
The scriptobject as well as an example setup can be found [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/?p=317949, here]&lt;br /&gt;
&lt;br /&gt;
The main difference to a &#039;&#039;normal&#039;&#039; map is the updateLoop, which gets executed every few milliseconds.&lt;br /&gt;
&lt;br /&gt;
    void inventory_automap::updateLoop()&lt;br /&gt;
    {&lt;br /&gt;
	string loc;&lt;br /&gt;
	while(1)&lt;br /&gt;
	{&lt;br /&gt;
		loc=$player1.getLocation().getName();&lt;br /&gt;
		loc=&amp;quot;gui_&amp;quot;+loc;&lt;br /&gt;
		setKey(loc,1);&lt;br /&gt;
		sys.wait(0.1);&lt;br /&gt;
	}&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
As you can see it is pretty short. The only thing it does is retrieving the name of the location the player is currently in and pass this to the gui. Than it waits for 100 ms.&lt;br /&gt;
&lt;br /&gt;
Example: The player is in a location which contains an info_location entity named &#039;&#039;kitchen&#039;&#039;. This value gets read out and passed to the variable &#039;&#039;&#039;loc&#039;&#039;&#039;. Than the &#039;&#039;gui_&#039;&#039; string is added on front, so &#039;&#039;&#039;loc&#039;&#039;&#039; is now &#039;&#039;gui_kitchen&#039;&#039;. (Remember the gui variable earlier on?) This value gets than set to 1. This will not have an effect if the value is already set to 1, but it doesn&#039;t hurt either.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
It is quite simple to setup a fully functional automap. The main effort for the mapper is to actually draw the map.&lt;br /&gt;
&lt;br /&gt;
== Additions ==&lt;br /&gt;
&lt;br /&gt;
It is possible to extent the functionality of the automap. This will however require changes to the scriptobject.&lt;br /&gt;
&lt;br /&gt;
You can setup Objectives where the player has to explore a certain percentage of the map (like in Mission #13 in Thief2: The Metal Age). This requires to set the percentage values you want each location to have on the respective location entities. You can than read them out in the update loop. To avoid the same values to be added up several times you would also need to keep track of which locations have already been counted. A global scripting variable keeps track of the percentage already discovered by the player and sets the respective mission objective to successful once it reaches the desired amount.&lt;br /&gt;
&lt;br /&gt;
You can have maps that mark areas where you already have been and were you currently are. This requires alering the gui, too, as you have to specify the colors to be used for hilighting depending on whether the player is still in an area or not.&lt;br /&gt;
&lt;br /&gt;
Similar to the images you can have text added to the map, like little notes that become visible once a condition is met (the player reads a note or similar). See [https://www.iddevnet.com/doom3/guis.php, here] for more info on how to setup the gui.&lt;br /&gt;
&lt;br /&gt;
Questions, replies and advices of any kind can go [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/ here]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 06:33, 25 January 2013 (EST)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19307</id>
		<title>Creating Automaps</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19307"/>
		<updated>2017-06-11T14:12:27Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: /* Additions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Normally the player is given a map at mission start, which is showing him the location he is attempting to sneak in. However, it may not seem very realistic that the player already possesses such detailed information without ever been in the specific place. An automap, thus meaning a map that gets drawn while the player proceeds in his mission may seem more realistic.&lt;br /&gt;
&lt;br /&gt;
On the other hand such thing can also add a lot to immersion. The player don&#039;t know what is expecting him in the beginning, but benefits from the advantages a map brings to him while he proceeds. In addition an automap provides information about where the player already have been and therefore can avoid frustrating moments when he is searching for one little room he may have overseen.&lt;br /&gt;
&lt;br /&gt;
The following article now describes how to set up such an item.&lt;br /&gt;
&lt;br /&gt;
== Preparations ==&lt;br /&gt;
&lt;br /&gt;
The first step is to actually draw your map. How you do this is your business. After you have done so you should cut out all the seperate rooms you want to appear on the map later on. Make sure to make the background transparent (using gimp for example). If you do so you should have&lt;br /&gt;
&lt;br /&gt;
- one picture containing the parts of the map the player already know at mission start (called &#039;&#039;startmap&#039;&#039; furthermore)&lt;br /&gt;
- several pictures of the rooms he can discover later on&lt;br /&gt;
&lt;br /&gt;
It is your choice if you want to put the &#039;&#039;startmap&#039;&#039; on the &#039;&#039;map_of_.tga&#039;&#039; file served with the &#039;&#039;&#039;startmap&#039;&#039;&#039; package or keep it seperate. However, for the tutorial let&#039;s just assume you have choosen the first possibility.&lt;br /&gt;
&lt;br /&gt;
Furthermore you should get familiar with the zone system as it is needed here.&lt;br /&gt;
&lt;br /&gt;
== Setting up the gui ==&lt;br /&gt;
&lt;br /&gt;
The gui looks like this:&lt;br /&gt;
&lt;br /&gt;
  windowDef Desktop&lt;br /&gt;
  {&lt;br /&gt;
    	rect      0,0,640,480&lt;br /&gt;
    	nocursor 1&lt;br /&gt;
         &lt;br /&gt;
        windowDef background_map&lt;br /&gt;
        {&lt;br /&gt;
                rect      64,48, 512, 394&lt;br /&gt;
                background &amp;quot;guis/automap/map_of&amp;quot;&lt;br /&gt;
                visible 1&lt;br /&gt;
        }&lt;br /&gt;
        ...&lt;br /&gt;
        // Required include for inventory map&lt;br /&gt;
        #include &amp;quot;guis/readables/inventory_map.guicode&amp;quot;	&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
In our case &#039;&#039;guis/automap/map_of&#039;&#039; is the file that holds the startmap. Where the dots are you have to add the following code for &#039;&#039;&#039;each&#039;&#039;&#039; area visible on the map.&lt;br /&gt;
    windowDef &#039;&#039;nameOfArea&#039;&#039;&lt;br /&gt;
    {&lt;br /&gt;
         rect 100,100,380,300&lt;br /&gt;
         background &amp;quot;&#039;&#039;path_to_imagefile&#039;&#039;&amp;quot;&lt;br /&gt;
         visible &amp;quot;gui::gui_XYZ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;nameOFArea&#039;&#039; can be choosen as you like, but each name must be unique and it makes sense to make it recogniseable&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;path_to_imagefile&#039;&#039; holds the path to the image to be drawn. Where nothing gets drawn the image should be transparent&lt;br /&gt;
&lt;br /&gt;
- the gui variable gui::gui_XYZ determines whether the image is visible or not. XYZ is the name of the corresponding location entity. You can easely get typos, so if something isn&#039;t working this is the first place to check&lt;br /&gt;
&lt;br /&gt;
Note that all pictures are using the same area of the gui. This easens the setup, but must be taken into account when creating the images for the map.&lt;br /&gt;
&lt;br /&gt;
== The entity Definition ==&lt;br /&gt;
&lt;br /&gt;
    entityDef atdm:automap&lt;br /&gt;
    {&lt;br /&gt;
	&amp;quot;inherit&amp;quot;			&amp;quot;atdm:map_base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	&amp;quot;editor_usage&amp;quot;		&amp;quot;game map of terrain for player&amp;quot; // THIS ONLY SHOWS IN ENTITY INSPECTOR&lt;br /&gt;
&lt;br /&gt;
	&amp;quot;inv_name&amp;quot;			&amp;quot;Map&amp;quot; // SHOWS IN PLAYER&#039;S INVENTORY.&lt;br /&gt;
	&amp;quot;inv_icon&amp;quot;			&amp;quot;guis/assets/game_maps/map_of_icon.tga&amp;quot;&lt;br /&gt;
	&amp;quot;gui&amp;quot;				&amp;quot;guis/automap/automap.gui&amp;quot;&lt;br /&gt;
	&amp;quot;scriptobject&amp;quot;	&amp;quot;inventory_automap&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
The important parts here are the &#039;&#039;gui&#039;&#039; spawnarg, letting it use the before mentioned gui, and the &#039;&#039;scriptobject&#039;&#039; spawnarg.&lt;br /&gt;
&lt;br /&gt;
== The script object ==&lt;br /&gt;
&lt;br /&gt;
The scriptobject as well as an example setup can be found [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/?p=317949, here]&lt;br /&gt;
&lt;br /&gt;
The main difference to a &#039;&#039;normal&#039;&#039; map is the updateLoop, which gets executed every few milliseconds.&lt;br /&gt;
&lt;br /&gt;
    void inventory_automap::updateLoop()&lt;br /&gt;
    {&lt;br /&gt;
	string loc;&lt;br /&gt;
	while(1)&lt;br /&gt;
	{&lt;br /&gt;
		loc=$player1.getLocation().getName();&lt;br /&gt;
		loc=&amp;quot;gui_&amp;quot;+loc;&lt;br /&gt;
		setKey(loc,1);&lt;br /&gt;
		sys.wait(0.1);&lt;br /&gt;
	}&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
As you can see it is pretty short. The only thing it does is retrieving the name of the location the player is currently in and pass this to the gui. Than it waits for 100 ms.&lt;br /&gt;
&lt;br /&gt;
Example: The player is in a location which contains an info_location entity named &#039;&#039;kitchen&#039;&#039;. This value gets read out and passed to the variable &#039;&#039;&#039;loc&#039;&#039;&#039;. Than the &#039;&#039;gui_&#039;&#039; string is added on front, so &#039;&#039;&#039;loc&#039;&#039;&#039; is now &#039;&#039;gui_kitchen&#039;&#039;. (Remember the gui variable earlier on?) This value gets than set to 1. This will not have an effect if the value is already set to 1, but it doesn&#039;t hurt either.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
It is quite simple to setup a fully functional automap. The main effort for the mapper is to actually draw the map.&lt;br /&gt;
&lt;br /&gt;
== Additions ==&lt;br /&gt;
&lt;br /&gt;
It is possible to extent the functionality of the automap. This will however require changes to the scriptobject.&lt;br /&gt;
&lt;br /&gt;
You can setup Objectives where the player has to explore a certain percentage of the map (like in Mission #13 in Thief2: The Metal Age). This requires to set the percentage values you want each location to have on the respective location entities. You can than read them out in the update loop. To avoid the same values to be added up several times you would also need to keep track of which locations have already been counted. A global scripting variable keeps track of the percentage already discovered by the player and sets the respective mission objective to successful once it reaches the desired amount.&lt;br /&gt;
&lt;br /&gt;
You can have maps that mark areas where you already have been and were you currently are. This requires alering the gui, too, as you have to specify the colors to be used for hilighting depending on whether the player is still in an area or not.&lt;br /&gt;
&lt;br /&gt;
Similar to the images you can have text added to the map, like little notes that become visible once a condition is met (the player reads a note or similar). See [https://www.iddevnet.com/doom3/guis.php, here] for more info on how to setup the gui.&lt;br /&gt;
&lt;br /&gt;
Questions, replies and advices of any kind can go [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/ here]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 06:33, 25 January 2013 (EST)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19306</id>
		<title>Creating Automaps</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19306"/>
		<updated>2017-06-11T14:05:12Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: /* The script object */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Normally the player is given a map at mission start, which is showing him the location he is attempting to sneak in. However, it may not seem very realistic that the player already possesses such detailed information without ever been in the specific place. An automap, thus meaning a map that gets drawn while the player proceeds in his mission may seem more realistic.&lt;br /&gt;
&lt;br /&gt;
On the other hand such thing can also add a lot to immersion. The player don&#039;t know what is expecting him in the beginning, but benefits from the advantages a map brings to him while he proceeds. In addition an automap provides information about where the player already have been and therefore can avoid frustrating moments when he is searching for one little room he may have overseen.&lt;br /&gt;
&lt;br /&gt;
The following article now describes how to set up such an item.&lt;br /&gt;
&lt;br /&gt;
== Preparations ==&lt;br /&gt;
&lt;br /&gt;
The first step is to actually draw your map. How you do this is your business. After you have done so you should cut out all the seperate rooms you want to appear on the map later on. Make sure to make the background transparent (using gimp for example). If you do so you should have&lt;br /&gt;
&lt;br /&gt;
- one picture containing the parts of the map the player already know at mission start (called &#039;&#039;startmap&#039;&#039; furthermore)&lt;br /&gt;
- several pictures of the rooms he can discover later on&lt;br /&gt;
&lt;br /&gt;
It is your choice if you want to put the &#039;&#039;startmap&#039;&#039; on the &#039;&#039;map_of_.tga&#039;&#039; file served with the &#039;&#039;&#039;startmap&#039;&#039;&#039; package or keep it seperate. However, for the tutorial let&#039;s just assume you have choosen the first possibility.&lt;br /&gt;
&lt;br /&gt;
Furthermore you should get familiar with the zone system as it is needed here.&lt;br /&gt;
&lt;br /&gt;
== Setting up the gui ==&lt;br /&gt;
&lt;br /&gt;
The gui looks like this:&lt;br /&gt;
&lt;br /&gt;
  windowDef Desktop&lt;br /&gt;
  {&lt;br /&gt;
    	rect      0,0,640,480&lt;br /&gt;
    	nocursor 1&lt;br /&gt;
         &lt;br /&gt;
        windowDef background_map&lt;br /&gt;
        {&lt;br /&gt;
                rect      64,48, 512, 394&lt;br /&gt;
                background &amp;quot;guis/automap/map_of&amp;quot;&lt;br /&gt;
                visible 1&lt;br /&gt;
        }&lt;br /&gt;
        ...&lt;br /&gt;
        // Required include for inventory map&lt;br /&gt;
        #include &amp;quot;guis/readables/inventory_map.guicode&amp;quot;	&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
In our case &#039;&#039;guis/automap/map_of&#039;&#039; is the file that holds the startmap. Where the dots are you have to add the following code for &#039;&#039;&#039;each&#039;&#039;&#039; area visible on the map.&lt;br /&gt;
    windowDef &#039;&#039;nameOfArea&#039;&#039;&lt;br /&gt;
    {&lt;br /&gt;
         rect 100,100,380,300&lt;br /&gt;
         background &amp;quot;&#039;&#039;path_to_imagefile&#039;&#039;&amp;quot;&lt;br /&gt;
         visible &amp;quot;gui::gui_XYZ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;nameOFArea&#039;&#039; can be choosen as you like, but each name must be unique and it makes sense to make it recogniseable&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;path_to_imagefile&#039;&#039; holds the path to the image to be drawn. Where nothing gets drawn the image should be transparent&lt;br /&gt;
&lt;br /&gt;
- the gui variable gui::gui_XYZ determines whether the image is visible or not. XYZ is the name of the corresponding location entity. You can easely get typos, so if something isn&#039;t working this is the first place to check&lt;br /&gt;
&lt;br /&gt;
Note that all pictures are using the same area of the gui. This easens the setup, but must be taken into account when creating the images for the map.&lt;br /&gt;
&lt;br /&gt;
== The entity Definition ==&lt;br /&gt;
&lt;br /&gt;
    entityDef atdm:automap&lt;br /&gt;
    {&lt;br /&gt;
	&amp;quot;inherit&amp;quot;			&amp;quot;atdm:map_base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	&amp;quot;editor_usage&amp;quot;		&amp;quot;game map of terrain for player&amp;quot; // THIS ONLY SHOWS IN ENTITY INSPECTOR&lt;br /&gt;
&lt;br /&gt;
	&amp;quot;inv_name&amp;quot;			&amp;quot;Map&amp;quot; // SHOWS IN PLAYER&#039;S INVENTORY.&lt;br /&gt;
	&amp;quot;inv_icon&amp;quot;			&amp;quot;guis/assets/game_maps/map_of_icon.tga&amp;quot;&lt;br /&gt;
	&amp;quot;gui&amp;quot;				&amp;quot;guis/automap/automap.gui&amp;quot;&lt;br /&gt;
	&amp;quot;scriptobject&amp;quot;	&amp;quot;inventory_automap&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
The important parts here are the &#039;&#039;gui&#039;&#039; spawnarg, letting it use the before mentioned gui, and the &#039;&#039;scriptobject&#039;&#039; spawnarg.&lt;br /&gt;
&lt;br /&gt;
== The script object ==&lt;br /&gt;
&lt;br /&gt;
The scriptobject as well as an example setup can be found [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/?p=317949, here]&lt;br /&gt;
&lt;br /&gt;
The main difference to a &#039;&#039;normal&#039;&#039; map is the updateLoop, which gets executed every few milliseconds.&lt;br /&gt;
&lt;br /&gt;
    void inventory_automap::updateLoop()&lt;br /&gt;
    {&lt;br /&gt;
	string loc;&lt;br /&gt;
	while(1)&lt;br /&gt;
	{&lt;br /&gt;
		loc=$player1.getLocation().getName();&lt;br /&gt;
		loc=&amp;quot;gui_&amp;quot;+loc;&lt;br /&gt;
		setKey(loc,1);&lt;br /&gt;
		sys.wait(0.1);&lt;br /&gt;
	}&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
As you can see it is pretty short. The only thing it does is retrieving the name of the location the player is currently in and pass this to the gui. Than it waits for 100 ms.&lt;br /&gt;
&lt;br /&gt;
Example: The player is in a location which contains an info_location entity named &#039;&#039;kitchen&#039;&#039;. This value gets read out and passed to the variable &#039;&#039;&#039;loc&#039;&#039;&#039;. Than the &#039;&#039;gui_&#039;&#039; string is added on front, so &#039;&#039;&#039;loc&#039;&#039;&#039; is now &#039;&#039;gui_kitchen&#039;&#039;. (Remember the gui variable earlier on?) This value gets than set to 1. This will not have an effect if the value is already set to 1, but it doesn&#039;t hurt either.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
It is quite simple to setup a fully functional automap. The main effort for the mapper is to actually draw the map.&lt;br /&gt;
&lt;br /&gt;
== Additions ==&lt;br /&gt;
&lt;br /&gt;
It is possible to extent the functionality of the automap. This will however require changes to the scriptobject.&lt;br /&gt;
&lt;br /&gt;
Questions, replies and advices of any kind can go [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/ here]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 06:33, 25 January 2013 (EST)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19305</id>
		<title>Creating Automaps</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19305"/>
		<updated>2017-06-11T14:00:39Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: /* Additions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Normally the player is given a map at mission start, which is showing him the location he is attempting to sneak in. However, it may not seem very realistic that the player already possesses such detailed information without ever been in the specific place. An automap, thus meaning a map that gets drawn while the player proceeds in his mission may seem more realistic.&lt;br /&gt;
&lt;br /&gt;
On the other hand such thing can also add a lot to immersion. The player don&#039;t know what is expecting him in the beginning, but benefits from the advantages a map brings to him while he proceeds. In addition an automap provides information about where the player already have been and therefore can avoid frustrating moments when he is searching for one little room he may have overseen.&lt;br /&gt;
&lt;br /&gt;
The following article now describes how to set up such an item.&lt;br /&gt;
&lt;br /&gt;
== Preparations ==&lt;br /&gt;
&lt;br /&gt;
The first step is to actually draw your map. How you do this is your business. After you have done so you should cut out all the seperate rooms you want to appear on the map later on. Make sure to make the background transparent (using gimp for example). If you do so you should have&lt;br /&gt;
&lt;br /&gt;
- one picture containing the parts of the map the player already know at mission start (called &#039;&#039;startmap&#039;&#039; furthermore)&lt;br /&gt;
- several pictures of the rooms he can discover later on&lt;br /&gt;
&lt;br /&gt;
It is your choice if you want to put the &#039;&#039;startmap&#039;&#039; on the &#039;&#039;map_of_.tga&#039;&#039; file served with the &#039;&#039;&#039;startmap&#039;&#039;&#039; package or keep it seperate. However, for the tutorial let&#039;s just assume you have choosen the first possibility.&lt;br /&gt;
&lt;br /&gt;
Furthermore you should get familiar with the zone system as it is needed here.&lt;br /&gt;
&lt;br /&gt;
== Setting up the gui ==&lt;br /&gt;
&lt;br /&gt;
The gui looks like this:&lt;br /&gt;
&lt;br /&gt;
  windowDef Desktop&lt;br /&gt;
  {&lt;br /&gt;
    	rect      0,0,640,480&lt;br /&gt;
    	nocursor 1&lt;br /&gt;
         &lt;br /&gt;
        windowDef background_map&lt;br /&gt;
        {&lt;br /&gt;
                rect      64,48, 512, 394&lt;br /&gt;
                background &amp;quot;guis/automap/map_of&amp;quot;&lt;br /&gt;
                visible 1&lt;br /&gt;
        }&lt;br /&gt;
        ...&lt;br /&gt;
        // Required include for inventory map&lt;br /&gt;
        #include &amp;quot;guis/readables/inventory_map.guicode&amp;quot;	&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
In our case &#039;&#039;guis/automap/map_of&#039;&#039; is the file that holds the startmap. Where the dots are you have to add the following code for &#039;&#039;&#039;each&#039;&#039;&#039; area visible on the map.&lt;br /&gt;
    windowDef &#039;&#039;nameOfArea&#039;&#039;&lt;br /&gt;
    {&lt;br /&gt;
         rect 100,100,380,300&lt;br /&gt;
         background &amp;quot;&#039;&#039;path_to_imagefile&#039;&#039;&amp;quot;&lt;br /&gt;
         visible &amp;quot;gui::gui_XYZ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;nameOFArea&#039;&#039; can be choosen as you like, but each name must be unique and it makes sense to make it recogniseable&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;path_to_imagefile&#039;&#039; holds the path to the image to be drawn. Where nothing gets drawn the image should be transparent&lt;br /&gt;
&lt;br /&gt;
- the gui variable gui::gui_XYZ determines whether the image is visible or not. XYZ is the name of the corresponding location entity. You can easely get typos, so if something isn&#039;t working this is the first place to check&lt;br /&gt;
&lt;br /&gt;
Note that all pictures are using the same area of the gui. This easens the setup, but must be taken into account when creating the images for the map.&lt;br /&gt;
&lt;br /&gt;
== The entity Definition ==&lt;br /&gt;
&lt;br /&gt;
    entityDef atdm:automap&lt;br /&gt;
    {&lt;br /&gt;
	&amp;quot;inherit&amp;quot;			&amp;quot;atdm:map_base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	&amp;quot;editor_usage&amp;quot;		&amp;quot;game map of terrain for player&amp;quot; // THIS ONLY SHOWS IN ENTITY INSPECTOR&lt;br /&gt;
&lt;br /&gt;
	&amp;quot;inv_name&amp;quot;			&amp;quot;Map&amp;quot; // SHOWS IN PLAYER&#039;S INVENTORY.&lt;br /&gt;
	&amp;quot;inv_icon&amp;quot;			&amp;quot;guis/assets/game_maps/map_of_icon.tga&amp;quot;&lt;br /&gt;
	&amp;quot;gui&amp;quot;				&amp;quot;guis/automap/automap.gui&amp;quot;&lt;br /&gt;
	&amp;quot;scriptobject&amp;quot;	&amp;quot;inventory_automap&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
The important parts here are the &#039;&#039;gui&#039;&#039; spawnarg, letting it use the before mentioned gui, and the &#039;&#039;scriptobject&#039;&#039; spawnarg.&lt;br /&gt;
&lt;br /&gt;
== The script object ==&lt;br /&gt;
&lt;br /&gt;
The scriptobject as well as an example setup can be found here[http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/?p=317949]&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
It is quite simple to setup a fully functional automap. The main effort for the mapper is to actually draw the map.&lt;br /&gt;
&lt;br /&gt;
== Additions ==&lt;br /&gt;
&lt;br /&gt;
It is possible to extent the functionality of the automap. This will however require changes to the scriptobject.&lt;br /&gt;
&lt;br /&gt;
Questions, replies and advices of any kind can go [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/ here]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 06:33, 25 January 2013 (EST)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19304</id>
		<title>Creating Automaps</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19304"/>
		<updated>2017-06-11T13:57:22Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Normally the player is given a map at mission start, which is showing him the location he is attempting to sneak in. However, it may not seem very realistic that the player already possesses such detailed information without ever been in the specific place. An automap, thus meaning a map that gets drawn while the player proceeds in his mission may seem more realistic.&lt;br /&gt;
&lt;br /&gt;
On the other hand such thing can also add a lot to immersion. The player don&#039;t know what is expecting him in the beginning, but benefits from the advantages a map brings to him while he proceeds. In addition an automap provides information about where the player already have been and therefore can avoid frustrating moments when he is searching for one little room he may have overseen.&lt;br /&gt;
&lt;br /&gt;
The following article now describes how to set up such an item.&lt;br /&gt;
&lt;br /&gt;
== Preparations ==&lt;br /&gt;
&lt;br /&gt;
The first step is to actually draw your map. How you do this is your business. After you have done so you should cut out all the seperate rooms you want to appear on the map later on. Make sure to make the background transparent (using gimp for example). If you do so you should have&lt;br /&gt;
&lt;br /&gt;
- one picture containing the parts of the map the player already know at mission start (called &#039;&#039;startmap&#039;&#039; furthermore)&lt;br /&gt;
- several pictures of the rooms he can discover later on&lt;br /&gt;
&lt;br /&gt;
It is your choice if you want to put the &#039;&#039;startmap&#039;&#039; on the &#039;&#039;map_of_.tga&#039;&#039; file served with the &#039;&#039;&#039;startmap&#039;&#039;&#039; package or keep it seperate. However, for the tutorial let&#039;s just assume you have choosen the first possibility.&lt;br /&gt;
&lt;br /&gt;
Furthermore you should get familiar with the zone system as it is needed here.&lt;br /&gt;
&lt;br /&gt;
== Setting up the gui ==&lt;br /&gt;
&lt;br /&gt;
The gui looks like this:&lt;br /&gt;
&lt;br /&gt;
  windowDef Desktop&lt;br /&gt;
  {&lt;br /&gt;
    	rect      0,0,640,480&lt;br /&gt;
    	nocursor 1&lt;br /&gt;
         &lt;br /&gt;
        windowDef background_map&lt;br /&gt;
        {&lt;br /&gt;
                rect      64,48, 512, 394&lt;br /&gt;
                background &amp;quot;guis/automap/map_of&amp;quot;&lt;br /&gt;
                visible 1&lt;br /&gt;
        }&lt;br /&gt;
        ...&lt;br /&gt;
        // Required include for inventory map&lt;br /&gt;
        #include &amp;quot;guis/readables/inventory_map.guicode&amp;quot;	&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
In our case &#039;&#039;guis/automap/map_of&#039;&#039; is the file that holds the startmap. Where the dots are you have to add the following code for &#039;&#039;&#039;each&#039;&#039;&#039; area visible on the map.&lt;br /&gt;
    windowDef &#039;&#039;nameOfArea&#039;&#039;&lt;br /&gt;
    {&lt;br /&gt;
         rect 100,100,380,300&lt;br /&gt;
         background &amp;quot;&#039;&#039;path_to_imagefile&#039;&#039;&amp;quot;&lt;br /&gt;
         visible &amp;quot;gui::gui_XYZ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;nameOFArea&#039;&#039; can be choosen as you like, but each name must be unique and it makes sense to make it recogniseable&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;path_to_imagefile&#039;&#039; holds the path to the image to be drawn. Where nothing gets drawn the image should be transparent&lt;br /&gt;
&lt;br /&gt;
- the gui variable gui::gui_XYZ determines whether the image is visible or not. XYZ is the name of the corresponding location entity. You can easely get typos, so if something isn&#039;t working this is the first place to check&lt;br /&gt;
&lt;br /&gt;
Note that all pictures are using the same area of the gui. This easens the setup, but must be taken into account when creating the images for the map.&lt;br /&gt;
&lt;br /&gt;
== The entity Definition ==&lt;br /&gt;
&lt;br /&gt;
    entityDef atdm:automap&lt;br /&gt;
    {&lt;br /&gt;
	&amp;quot;inherit&amp;quot;			&amp;quot;atdm:map_base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	&amp;quot;editor_usage&amp;quot;		&amp;quot;game map of terrain for player&amp;quot; // THIS ONLY SHOWS IN ENTITY INSPECTOR&lt;br /&gt;
&lt;br /&gt;
	&amp;quot;inv_name&amp;quot;			&amp;quot;Map&amp;quot; // SHOWS IN PLAYER&#039;S INVENTORY.&lt;br /&gt;
	&amp;quot;inv_icon&amp;quot;			&amp;quot;guis/assets/game_maps/map_of_icon.tga&amp;quot;&lt;br /&gt;
	&amp;quot;gui&amp;quot;				&amp;quot;guis/automap/automap.gui&amp;quot;&lt;br /&gt;
	&amp;quot;scriptobject&amp;quot;	&amp;quot;inventory_automap&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
The important parts here are the &#039;&#039;gui&#039;&#039; spawnarg, letting it use the before mentioned gui, and the &#039;&#039;scriptobject&#039;&#039; spawnarg.&lt;br /&gt;
&lt;br /&gt;
== The script object ==&lt;br /&gt;
&lt;br /&gt;
The scriptobject as well as an example setup can be found here[http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/?p=317949]&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
It is quite simple to setup a fully functional automap. The main effort for the mapper is to actually draw the map.&lt;br /&gt;
&lt;br /&gt;
== Additions ==&lt;br /&gt;
&lt;br /&gt;
If you want to test the alignment in game, just change the lines in the &#039;&#039;main&#039;&#039; method in the script file. Set all the values to &amp;quot;1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you want to have an automap that marks where the player currently is, the following changes need to be done:&lt;br /&gt;
&lt;br /&gt;
- The &#039;&#039;mark&#039;&#039; method is called via &amp;quot;call_on_exit&amp;quot; by the zones. &amp;quot;call_on_entry&amp;quot; calls a similar function that sets the value for the room to &amp;quot;2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- The show method checks for the values to be &amp;quot;1&amp;quot; or &amp;quot;2&amp;quot; separately. For &amp;quot;2&amp;quot; a highlighted version is shown on the map&lt;br /&gt;
&lt;br /&gt;
- Obviously you have to make these highlighted version first&lt;br /&gt;
&lt;br /&gt;
If you want the map to be fond in the mission you have to do the following to avoid the rooms the player was before finding the map to be drawn on it&lt;br /&gt;
&lt;br /&gt;
- create a hidden, non-mandatory objective &amp;quot;if player possesses item&amp;quot;. The &#039;&#039;item&#039;&#039; is the map.&lt;br /&gt;
&lt;br /&gt;
- fill the &#039;&#039;&#039;success_script&#039;&#039;&#039; field with drawMap&lt;br /&gt;
&lt;br /&gt;
- in the script file, add a &#039;&#039;float&#039;&#039; &#039;&#039;&#039;mapDraw&#039;&#039;&#039; at the beginning of the file&lt;br /&gt;
&lt;br /&gt;
- set this to zero in the &#039;&#039;main&#039;&#039; method&lt;br /&gt;
&lt;br /&gt;
- in the beginning of the &#039;&#039;mark&#039;&#039; method add the line &#039;&#039;if (!mapDraw) return;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Obviously you will need to do this several times if the player can find several maps. If so, be sure to make different &#039;&#039;mark&#039;&#039; methods for every map to be found (thus meaning entities in the map file)&lt;br /&gt;
&lt;br /&gt;
You can use this setup as a starting point for setting up objectives like &amp;quot;investigate 50% of the area&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Questions, replies and advices of any kind can go [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/ here]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 06:33, 25 January 2013 (EST)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19303</id>
		<title>Creating Automaps</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19303"/>
		<updated>2017-06-11T13:56:54Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: /* The script file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Normally the player is given a map at mission start, which is showing him the location he is attempting to sneak in. However, it may not seem very realistic that the player already possesses such detailed information without ever been in the specific place. An automap, thus meaning a map that gets drawn while the player proceeds in his mission may seem more realistic.&lt;br /&gt;
&lt;br /&gt;
On the other hand such thing can also add a lot to immersion. The player don&#039;t know what is expecting him in the beginning, but benefits from the advantages a map brings to him while he proceeds. In addition an automap provides information about where the player already have been and therefore can avoid frustrating moments when he is searching for one little room he may have overseen.&lt;br /&gt;
&lt;br /&gt;
The following article now describes how to set up such an item.&lt;br /&gt;
&lt;br /&gt;
== Preparations ==&lt;br /&gt;
&lt;br /&gt;
The first step is to actually draw your map. How you do this is your business. After you have done so you should cut out all the seperate rooms you want to appear on the map later on. Make sure to make the background transparent (using gimp for example). If you do so you should have&lt;br /&gt;
&lt;br /&gt;
- one picture containing the parts of the map the player already know at mission start (called &#039;&#039;startmap&#039;&#039; furthermore)&lt;br /&gt;
- several pictures of the rooms he can discover later on&lt;br /&gt;
&lt;br /&gt;
It is your choice if you want to put the &#039;&#039;startmap&#039;&#039; on the &#039;&#039;map_of_.tga&#039;&#039; file served with the &#039;&#039;&#039;startmap&#039;&#039;&#039; package or keep it seperate. However, for the tutorial let&#039;s just assume you have choosen the first possibility.&lt;br /&gt;
&lt;br /&gt;
Furthermore you should get familiar with the zone system as it is needed here.&lt;br /&gt;
&lt;br /&gt;
== Setting up the gui ==&lt;br /&gt;
&lt;br /&gt;
The gui looks like this:&lt;br /&gt;
&lt;br /&gt;
  windowDef Desktop&lt;br /&gt;
  {&lt;br /&gt;
    	rect      0,0,640,480&lt;br /&gt;
    	nocursor 1&lt;br /&gt;
         &lt;br /&gt;
        windowDef background_map&lt;br /&gt;
        {&lt;br /&gt;
                rect      64,48, 512, 394&lt;br /&gt;
                background &amp;quot;guis/automap/map_of&amp;quot;&lt;br /&gt;
                visible 1&lt;br /&gt;
        }&lt;br /&gt;
        ...&lt;br /&gt;
        // Required include for inventory map&lt;br /&gt;
        #include &amp;quot;guis/readables/inventory_map.guicode&amp;quot;	&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
In our case &#039;&#039;guis/automap/map_of&#039;&#039; is the file that holds the startmap. Where the dots are you have to add the following code for &#039;&#039;&#039;each&#039;&#039;&#039; area visible on the map.&lt;br /&gt;
    windowDef &#039;&#039;nameOfArea&#039;&#039;&lt;br /&gt;
    {&lt;br /&gt;
         rect 100,100,380,300&lt;br /&gt;
         background &amp;quot;&#039;&#039;path_to_imagefile&#039;&#039;&amp;quot;&lt;br /&gt;
         visible &amp;quot;gui::gui_XYZ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;nameOFArea&#039;&#039; can be choosen as you like, but each name must be unique and it makes sense to make it recogniseable&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;path_to_imagefile&#039;&#039; holds the path to the image to be drawn. Where nothing gets drawn the image should be transparent&lt;br /&gt;
&lt;br /&gt;
- the gui variable gui::gui_XYZ determines whether the image is visible or not. XYZ is the name of the corresponding location entity. You can easely get typos, so if something isn&#039;t working this is the first place to check&lt;br /&gt;
&lt;br /&gt;
Note that all pictures are using the same area of the gui. This easens the setup, but must be taken into account when creating the images for the map.&lt;br /&gt;
&lt;br /&gt;
== The entity Definition ==&lt;br /&gt;
&lt;br /&gt;
    entityDef atdm:automap&lt;br /&gt;
    {&lt;br /&gt;
	&amp;quot;inherit&amp;quot;			&amp;quot;atdm:map_base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	&amp;quot;editor_usage&amp;quot;		&amp;quot;game map of terrain for player&amp;quot; // THIS ONLY SHOWS IN ENTITY INSPECTOR&lt;br /&gt;
&lt;br /&gt;
	&amp;quot;inv_name&amp;quot;			&amp;quot;Map&amp;quot; // SHOWS IN PLAYER&#039;S INVENTORY.&lt;br /&gt;
	&amp;quot;inv_icon&amp;quot;			&amp;quot;guis/assets/game_maps/map_of_icon.tga&amp;quot;&lt;br /&gt;
	&amp;quot;gui&amp;quot;				&amp;quot;guis/automap/automap.gui&amp;quot;&lt;br /&gt;
	&amp;quot;scriptobject&amp;quot;	&amp;quot;inventory_automap&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
The important parts here are the &#039;&#039;gui&#039;&#039; spawnarg, letting it use the before mentioned gui, and the &#039;&#039;scriptobject&#039;&#039; spawnarg.&lt;br /&gt;
&lt;br /&gt;
== The script object ==&lt;br /&gt;
&lt;br /&gt;
The scriptobject as well as an example setup can be found here[http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/?p=317949]&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
It is quite simple to setup a fully functional automap. The main effort for the mapper is to actually draw the map and align the pieces later one. The script is easy but gets long. This is caused by the lack of suitable containers in the doom3 scripting language.&lt;br /&gt;
&lt;br /&gt;
== Additions ==&lt;br /&gt;
&lt;br /&gt;
If you want to test the alignment in game, just change the lines in the &#039;&#039;main&#039;&#039; method in the script file. Set all the values to &amp;quot;1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you want to have an automap that marks where the player currently is, the following changes need to be done:&lt;br /&gt;
&lt;br /&gt;
- The &#039;&#039;mark&#039;&#039; method is called via &amp;quot;call_on_exit&amp;quot; by the zones. &amp;quot;call_on_entry&amp;quot; calls a similar function that sets the value for the room to &amp;quot;2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- The show method checks for the values to be &amp;quot;1&amp;quot; or &amp;quot;2&amp;quot; separately. For &amp;quot;2&amp;quot; a highlighted version is shown on the map&lt;br /&gt;
&lt;br /&gt;
- Obviously you have to make these highlighted version first&lt;br /&gt;
&lt;br /&gt;
If you want the map to be fond in the mission you have to do the following to avoid the rooms the player was before finding the map to be drawn on it&lt;br /&gt;
&lt;br /&gt;
- create a hidden, non-mandatory objective &amp;quot;if player possesses item&amp;quot;. The &#039;&#039;item&#039;&#039; is the map.&lt;br /&gt;
&lt;br /&gt;
- fill the &#039;&#039;&#039;success_script&#039;&#039;&#039; field with drawMap&lt;br /&gt;
&lt;br /&gt;
- in the script file, add a &#039;&#039;float&#039;&#039; &#039;&#039;&#039;mapDraw&#039;&#039;&#039; at the beginning of the file&lt;br /&gt;
&lt;br /&gt;
- set this to zero in the &#039;&#039;main&#039;&#039; method&lt;br /&gt;
&lt;br /&gt;
- in the beginning of the &#039;&#039;mark&#039;&#039; method add the line &#039;&#039;if (!mapDraw) return;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Obviously you will need to do this several times if the player can find several maps. If so, be sure to make different &#039;&#039;mark&#039;&#039; methods for every map to be found (thus meaning entities in the map file)&lt;br /&gt;
&lt;br /&gt;
You can use this setup as a starting point for setting up objectives like &amp;quot;investigate 50% of the area&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Questions, replies and advices of any kind can go [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/ here]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 06:33, 25 January 2013 (EST)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19302</id>
		<title>Creating Automaps</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19302"/>
		<updated>2017-06-11T13:55:55Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: /* Things to do in DarkRadiant */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Normally the player is given a map at mission start, which is showing him the location he is attempting to sneak in. However, it may not seem very realistic that the player already possesses such detailed information without ever been in the specific place. An automap, thus meaning a map that gets drawn while the player proceeds in his mission may seem more realistic.&lt;br /&gt;
&lt;br /&gt;
On the other hand such thing can also add a lot to immersion. The player don&#039;t know what is expecting him in the beginning, but benefits from the advantages a map brings to him while he proceeds. In addition an automap provides information about where the player already have been and therefore can avoid frustrating moments when he is searching for one little room he may have overseen.&lt;br /&gt;
&lt;br /&gt;
The following article now describes how to set up such an item.&lt;br /&gt;
&lt;br /&gt;
== Preparations ==&lt;br /&gt;
&lt;br /&gt;
The first step is to actually draw your map. How you do this is your business. After you have done so you should cut out all the seperate rooms you want to appear on the map later on. Make sure to make the background transparent (using gimp for example). If you do so you should have&lt;br /&gt;
&lt;br /&gt;
- one picture containing the parts of the map the player already know at mission start (called &#039;&#039;startmap&#039;&#039; furthermore)&lt;br /&gt;
- several pictures of the rooms he can discover later on&lt;br /&gt;
&lt;br /&gt;
It is your choice if you want to put the &#039;&#039;startmap&#039;&#039; on the &#039;&#039;map_of_.tga&#039;&#039; file served with the &#039;&#039;&#039;startmap&#039;&#039;&#039; package or keep it seperate. However, for the tutorial let&#039;s just assume you have choosen the first possibility.&lt;br /&gt;
&lt;br /&gt;
Furthermore you should get familiar with the zone system as it is needed here.&lt;br /&gt;
&lt;br /&gt;
== Setting up the gui ==&lt;br /&gt;
&lt;br /&gt;
The gui looks like this:&lt;br /&gt;
&lt;br /&gt;
  windowDef Desktop&lt;br /&gt;
  {&lt;br /&gt;
    	rect      0,0,640,480&lt;br /&gt;
    	nocursor 1&lt;br /&gt;
         &lt;br /&gt;
        windowDef background_map&lt;br /&gt;
        {&lt;br /&gt;
                rect      64,48, 512, 394&lt;br /&gt;
                background &amp;quot;guis/automap/map_of&amp;quot;&lt;br /&gt;
                visible 1&lt;br /&gt;
        }&lt;br /&gt;
        ...&lt;br /&gt;
        // Required include for inventory map&lt;br /&gt;
        #include &amp;quot;guis/readables/inventory_map.guicode&amp;quot;	&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
In our case &#039;&#039;guis/automap/map_of&#039;&#039; is the file that holds the startmap. Where the dots are you have to add the following code for &#039;&#039;&#039;each&#039;&#039;&#039; area visible on the map.&lt;br /&gt;
    windowDef &#039;&#039;nameOfArea&#039;&#039;&lt;br /&gt;
    {&lt;br /&gt;
         rect 100,100,380,300&lt;br /&gt;
         background &amp;quot;&#039;&#039;path_to_imagefile&#039;&#039;&amp;quot;&lt;br /&gt;
         visible &amp;quot;gui::gui_XYZ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;nameOFArea&#039;&#039; can be choosen as you like, but each name must be unique and it makes sense to make it recogniseable&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;path_to_imagefile&#039;&#039; holds the path to the image to be drawn. Where nothing gets drawn the image should be transparent&lt;br /&gt;
&lt;br /&gt;
- the gui variable gui::gui_XYZ determines whether the image is visible or not. XYZ is the name of the corresponding location entity. You can easely get typos, so if something isn&#039;t working this is the first place to check&lt;br /&gt;
&lt;br /&gt;
Note that all pictures are using the same area of the gui. This easens the setup, but must be taken into account when creating the images for the map.&lt;br /&gt;
&lt;br /&gt;
== The entity Definition ==&lt;br /&gt;
&lt;br /&gt;
    entityDef atdm:automap&lt;br /&gt;
    {&lt;br /&gt;
	&amp;quot;inherit&amp;quot;			&amp;quot;atdm:map_base&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	&amp;quot;editor_usage&amp;quot;		&amp;quot;game map of terrain for player&amp;quot; // THIS ONLY SHOWS IN ENTITY INSPECTOR&lt;br /&gt;
&lt;br /&gt;
	&amp;quot;inv_name&amp;quot;			&amp;quot;Map&amp;quot; // SHOWS IN PLAYER&#039;S INVENTORY.&lt;br /&gt;
	&amp;quot;inv_icon&amp;quot;			&amp;quot;guis/assets/game_maps/map_of_icon.tga&amp;quot;&lt;br /&gt;
	&amp;quot;gui&amp;quot;				&amp;quot;guis/automap/automap.gui&amp;quot;&lt;br /&gt;
	&amp;quot;scriptobject&amp;quot;	&amp;quot;inventory_automap&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
The important parts here are the &#039;&#039;gui&#039;&#039; spawnarg, letting it use the before mentioned gui, and the &#039;&#039;scriptobject&#039;&#039; spawnarg.&lt;br /&gt;
&lt;br /&gt;
== The script file ==&lt;br /&gt;
&lt;br /&gt;
Create a scriptfile called &#039;&#039;mymapname&#039;&#039;.script. Once we are finished it should lool like this&lt;br /&gt;
&lt;br /&gt;
  float roomName1,...;    // stores if the player has been there (needed for &#039;&#039;&#039;every&#039;&#039;&#039; room)&lt;br /&gt;
  float h_roomName1,...;  // stores the handle to the room guis (see below, needed for &#039;&#039;&#039;every&#039;&#039;&#039; room)&lt;br /&gt;
  float h_map1,...;       // stores the handles to the &#039;&#039;startmaps&#039;&#039; (needed for &#039;&#039;&#039;every&#039;&#039;&#039; map)&lt;br /&gt;
  float map1Shown,...;    // if the map is currently shown (needed for &#039;&#039;&#039;every&#039;&#039;&#039; map)&lt;br /&gt;
  &lt;br /&gt;
  void mapXShowHide() {   // shows/hides the map (needed for &#039;&#039;&#039;every&#039;&#039;&#039; map, &#039;&#039;&#039;X&#039;&#039;&#039; is the map number)&lt;br /&gt;
    if (mapXShown) {      // player hides the map&lt;br /&gt;
      mapXShown=0;&lt;br /&gt;
      $player.destroyOverlay(h_mapX);&lt;br /&gt;
      if (roomName1) $player1.destroyOverlay(h_roomName1); //destroys the gui overlay for the &#039;&#039;startmap&#039;&#039;&lt;br /&gt;
      ...                 // destroys the gui overlays for &#039;&#039;&#039;all&#039;&#039;&#039; shown rooms (repeat this line for &#039;&#039;&#039;every&#039;&#039;&#039; room om map X)&lt;br /&gt;
      return;             // that&#039;s it, the map is hidden&lt;br /&gt;
    }&lt;br /&gt;
    sh=1;                 // player shows the map&lt;br /&gt;
    h_mapX=$player1.createOverlay(&amp;quot;&#039;&#039;path to startmap.gui&#039;&#039;&amp;quot;,100);           // show &#039;&#039;startmap&#039;&#039;&lt;br /&gt;
    if (roomName1) h_roomName1=$player.createOverlay(&amp;quot;&#039;&#039;path to gui&#039;&#039;&amp;quot;,101); // show room if player was there, do this for &#039;&#039;&#039;every&#039;&#039;&#039; room on map &#039;&#039;&#039;X&#039;&#039;&#039; while continuing the numbering (102,103,...)&lt;br /&gt;
    ...&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  void mark(entity zone) { //mark the area the player just entered as visited (you can use one function for all map or seperate them, your choice)&lt;br /&gt;
    string name;&lt;br /&gt;
    name=zone.getKey(&amp;quot;name&amp;quot;); // the name of the zone&lt;br /&gt;
    if (name==&amp;quot;roomName1&amp;quot;) {  // markes the room as visited if the player is there (needed for &#039;&#039;&#039;every&#039;&#039;&#039; room&lt;br /&gt;
      roomName1=1;&lt;br /&gt;
      return;&lt;br /&gt;
    }                         &lt;br /&gt;
    ...&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  void main() {&lt;br /&gt;
    roomName1=0; //do this for &#039;&#039;&#039;every&#039;&#039;&#039; room&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
That&#039;s it. If you do this for large missions with many rooms the code will get quite long, but the single steps should be easy to understand. &#039;&#039;&#039;roomName1&#039;&#039;&#039; and so one are just placeholders. Choose the name of the corrosponding zones in you mission. &lt;br /&gt;
&lt;br /&gt;
If you use several maps it may be a good idea to put the map number into the zone names, for example &amp;quot;&#039;&#039;m1_tavern&#039;&#039;&amp;quot;. It may also be a good idea to split the guis and images into several folders, one for each map. This is your choice.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
It is quite simple to setup a fully functional automap. The main effort for the mapper is to actually draw the map and align the pieces later one. The script is easy but gets long. This is caused by the lack of suitable containers in the doom3 scripting language.&lt;br /&gt;
&lt;br /&gt;
== Additions ==&lt;br /&gt;
&lt;br /&gt;
If you want to test the alignment in game, just change the lines in the &#039;&#039;main&#039;&#039; method in the script file. Set all the values to &amp;quot;1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you want to have an automap that marks where the player currently is, the following changes need to be done:&lt;br /&gt;
&lt;br /&gt;
- The &#039;&#039;mark&#039;&#039; method is called via &amp;quot;call_on_exit&amp;quot; by the zones. &amp;quot;call_on_entry&amp;quot; calls a similar function that sets the value for the room to &amp;quot;2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- The show method checks for the values to be &amp;quot;1&amp;quot; or &amp;quot;2&amp;quot; separately. For &amp;quot;2&amp;quot; a highlighted version is shown on the map&lt;br /&gt;
&lt;br /&gt;
- Obviously you have to make these highlighted version first&lt;br /&gt;
&lt;br /&gt;
If you want the map to be fond in the mission you have to do the following to avoid the rooms the player was before finding the map to be drawn on it&lt;br /&gt;
&lt;br /&gt;
- create a hidden, non-mandatory objective &amp;quot;if player possesses item&amp;quot;. The &#039;&#039;item&#039;&#039; is the map.&lt;br /&gt;
&lt;br /&gt;
- fill the &#039;&#039;&#039;success_script&#039;&#039;&#039; field with drawMap&lt;br /&gt;
&lt;br /&gt;
- in the script file, add a &#039;&#039;float&#039;&#039; &#039;&#039;&#039;mapDraw&#039;&#039;&#039; at the beginning of the file&lt;br /&gt;
&lt;br /&gt;
- set this to zero in the &#039;&#039;main&#039;&#039; method&lt;br /&gt;
&lt;br /&gt;
- in the beginning of the &#039;&#039;mark&#039;&#039; method add the line &#039;&#039;if (!mapDraw) return;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Obviously you will need to do this several times if the player can find several maps. If so, be sure to make different &#039;&#039;mark&#039;&#039; methods for every map to be found (thus meaning entities in the map file)&lt;br /&gt;
&lt;br /&gt;
You can use this setup as a starting point for setting up objectives like &amp;quot;investigate 50% of the area&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Questions, replies and advices of any kind can go [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/ here]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 06:33, 25 January 2013 (EST)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19301</id>
		<title>Creating Automaps</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19301"/>
		<updated>2017-06-11T13:54:10Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: /* Setting up the gui */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Normally the player is given a map at mission start, which is showing him the location he is attempting to sneak in. However, it may not seem very realistic that the player already possesses such detailed information without ever been in the specific place. An automap, thus meaning a map that gets drawn while the player proceeds in his mission may seem more realistic.&lt;br /&gt;
&lt;br /&gt;
On the other hand such thing can also add a lot to immersion. The player don&#039;t know what is expecting him in the beginning, but benefits from the advantages a map brings to him while he proceeds. In addition an automap provides information about where the player already have been and therefore can avoid frustrating moments when he is searching for one little room he may have overseen.&lt;br /&gt;
&lt;br /&gt;
The following article now describes how to set up such an item.&lt;br /&gt;
&lt;br /&gt;
== Preparations ==&lt;br /&gt;
&lt;br /&gt;
The first step is to actually draw your map. How you do this is your business. After you have done so you should cut out all the seperate rooms you want to appear on the map later on. Make sure to make the background transparent (using gimp for example). If you do so you should have&lt;br /&gt;
&lt;br /&gt;
- one picture containing the parts of the map the player already know at mission start (called &#039;&#039;startmap&#039;&#039; furthermore)&lt;br /&gt;
- several pictures of the rooms he can discover later on&lt;br /&gt;
&lt;br /&gt;
It is your choice if you want to put the &#039;&#039;startmap&#039;&#039; on the &#039;&#039;map_of_.tga&#039;&#039; file served with the &#039;&#039;&#039;startmap&#039;&#039;&#039; package or keep it seperate. However, for the tutorial let&#039;s just assume you have choosen the first possibility.&lt;br /&gt;
&lt;br /&gt;
Furthermore you should get familiar with the zone system as it is needed here.&lt;br /&gt;
&lt;br /&gt;
== Setting up the gui ==&lt;br /&gt;
&lt;br /&gt;
The gui looks like this:&lt;br /&gt;
&lt;br /&gt;
  windowDef Desktop&lt;br /&gt;
  {&lt;br /&gt;
    	rect      0,0,640,480&lt;br /&gt;
    	nocursor 1&lt;br /&gt;
         &lt;br /&gt;
        windowDef background_map&lt;br /&gt;
        {&lt;br /&gt;
                rect      64,48, 512, 394&lt;br /&gt;
                background &amp;quot;guis/automap/map_of&amp;quot;&lt;br /&gt;
                visible 1&lt;br /&gt;
        }&lt;br /&gt;
        ...&lt;br /&gt;
        // Required include for inventory map&lt;br /&gt;
        #include &amp;quot;guis/readables/inventory_map.guicode&amp;quot;	&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
In our case &#039;&#039;guis/automap/map_of&#039;&#039; is the file that holds the startmap. Where the dots are you have to add the following code for &#039;&#039;&#039;each&#039;&#039;&#039; area visible on the map.&lt;br /&gt;
    windowDef &#039;&#039;nameOfArea&#039;&#039;&lt;br /&gt;
    {&lt;br /&gt;
         rect 100,100,380,300&lt;br /&gt;
         background &amp;quot;&#039;&#039;path_to_imagefile&#039;&#039;&amp;quot;&lt;br /&gt;
         visible &amp;quot;gui::gui_XYZ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;nameOFArea&#039;&#039; can be choosen as you like, but each name must be unique and it makes sense to make it recogniseable&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;path_to_imagefile&#039;&#039; holds the path to the image to be drawn. Where nothing gets drawn the image should be transparent&lt;br /&gt;
&lt;br /&gt;
- the gui variable gui::gui_XYZ determines whether the image is visible or not. XYZ is the name of the corresponding location entity. You can easely get typos, so if something isn&#039;t working this is the first place to check&lt;br /&gt;
&lt;br /&gt;
Note that all pictures are using the same area of the gui. This easens the setup, but must be taken into account when creating the images for the map.&lt;br /&gt;
&lt;br /&gt;
== Things to do in DarkRadiant ==&lt;br /&gt;
&lt;br /&gt;
This is the easiest part. In DR create an &#039;&#039;custom_static_item&#039;&#039; entity (darkmod/items/custom). Set the model to whatever you like, but if you plan it to be found later in the game you may choose a scroll or similar. Than set the following spawnargs:&lt;br /&gt;
&lt;br /&gt;
- inv_name: the name to be shown to the player&lt;br /&gt;
&lt;br /&gt;
- inv_map_start: set this to &amp;quot;1&amp;quot; if the player should start with the map in his inventory&lt;br /&gt;
&lt;br /&gt;
- inv_category: set to &amp;quot;#str_02390&amp;quot; (important), this allows the map to become visible via the map key (m by default)&lt;br /&gt;
&lt;br /&gt;
I will refer to this entity as &#039;&#039;map&#039;&#039; entity furthermore. Now create a &#039;&#039;target_callscriptfunction&#039;&#039; entity (darkmod/targets) and give it a suitable name. Set the spawnarg &amp;quot;call&amp;quot; &amp;quot;map1ShowHide&amp;quot; on it and target it from the just created &#039;&#039;map&#039;&#039; entity. &lt;br /&gt;
&lt;br /&gt;
If the player &#039;uses&#039; the map (by pressing the map key for example) the function &#039;&#039;map1ShowHide&#039;&#039; will be executed.&lt;br /&gt;
&lt;br /&gt;
Redo this for every map and set &amp;quot;call&amp;quot; &amp;quot;mapXShowHide&amp;quot; where &#039;&#039;&#039;X&#039;&#039;&#039; is the map number.&lt;br /&gt;
&lt;br /&gt;
The next thing needed to get the automap to work is to set up zones in your map. Every room that has it&#039;s own picture on the map must be represented by an own zone in you mission. Give every zone a suitable name, we will need those later on. Now set the spawnarg &amp;quot;call_on_entry&amp;quot; &amp;quot;mark&amp;quot; on them. This is the function that gets called whenever the player enters the specific zone. &lt;br /&gt;
&lt;br /&gt;
  Note: Functions called via the target_callscriptfunction entity take the form &#039;&#039;&#039;void&#039;&#039;&#039; &#039;&#039;functionname&#039;&#039;() while functions called&lt;br /&gt;
        by zones take the form &#039;&#039;&#039;void&#039;&#039;&#039; &#039;&#039;functionname&#039;&#039;(&#039;&#039;&#039;entity&#039;&#039;&#039; &#039;&#039;zone&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
== The script file ==&lt;br /&gt;
&lt;br /&gt;
Create a scriptfile called &#039;&#039;mymapname&#039;&#039;.script. Once we are finished it should lool like this&lt;br /&gt;
&lt;br /&gt;
  float roomName1,...;    // stores if the player has been there (needed for &#039;&#039;&#039;every&#039;&#039;&#039; room)&lt;br /&gt;
  float h_roomName1,...;  // stores the handle to the room guis (see below, needed for &#039;&#039;&#039;every&#039;&#039;&#039; room)&lt;br /&gt;
  float h_map1,...;       // stores the handles to the &#039;&#039;startmaps&#039;&#039; (needed for &#039;&#039;&#039;every&#039;&#039;&#039; map)&lt;br /&gt;
  float map1Shown,...;    // if the map is currently shown (needed for &#039;&#039;&#039;every&#039;&#039;&#039; map)&lt;br /&gt;
  &lt;br /&gt;
  void mapXShowHide() {   // shows/hides the map (needed for &#039;&#039;&#039;every&#039;&#039;&#039; map, &#039;&#039;&#039;X&#039;&#039;&#039; is the map number)&lt;br /&gt;
    if (mapXShown) {      // player hides the map&lt;br /&gt;
      mapXShown=0;&lt;br /&gt;
      $player.destroyOverlay(h_mapX);&lt;br /&gt;
      if (roomName1) $player1.destroyOverlay(h_roomName1); //destroys the gui overlay for the &#039;&#039;startmap&#039;&#039;&lt;br /&gt;
      ...                 // destroys the gui overlays for &#039;&#039;&#039;all&#039;&#039;&#039; shown rooms (repeat this line for &#039;&#039;&#039;every&#039;&#039;&#039; room om map X)&lt;br /&gt;
      return;             // that&#039;s it, the map is hidden&lt;br /&gt;
    }&lt;br /&gt;
    sh=1;                 // player shows the map&lt;br /&gt;
    h_mapX=$player1.createOverlay(&amp;quot;&#039;&#039;path to startmap.gui&#039;&#039;&amp;quot;,100);           // show &#039;&#039;startmap&#039;&#039;&lt;br /&gt;
    if (roomName1) h_roomName1=$player.createOverlay(&amp;quot;&#039;&#039;path to gui&#039;&#039;&amp;quot;,101); // show room if player was there, do this for &#039;&#039;&#039;every&#039;&#039;&#039; room on map &#039;&#039;&#039;X&#039;&#039;&#039; while continuing the numbering (102,103,...)&lt;br /&gt;
    ...&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  void mark(entity zone) { //mark the area the player just entered as visited (you can use one function for all map or seperate them, your choice)&lt;br /&gt;
    string name;&lt;br /&gt;
    name=zone.getKey(&amp;quot;name&amp;quot;); // the name of the zone&lt;br /&gt;
    if (name==&amp;quot;roomName1&amp;quot;) {  // markes the room as visited if the player is there (needed for &#039;&#039;&#039;every&#039;&#039;&#039; room&lt;br /&gt;
      roomName1=1;&lt;br /&gt;
      return;&lt;br /&gt;
    }                         &lt;br /&gt;
    ...&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  void main() {&lt;br /&gt;
    roomName1=0; //do this for &#039;&#039;&#039;every&#039;&#039;&#039; room&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
That&#039;s it. If you do this for large missions with many rooms the code will get quite long, but the single steps should be easy to understand. &#039;&#039;&#039;roomName1&#039;&#039;&#039; and so one are just placeholders. Choose the name of the corrosponding zones in you mission. &lt;br /&gt;
&lt;br /&gt;
If you use several maps it may be a good idea to put the map number into the zone names, for example &amp;quot;&#039;&#039;m1_tavern&#039;&#039;&amp;quot;. It may also be a good idea to split the guis and images into several folders, one for each map. This is your choice.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
It is quite simple to setup a fully functional automap. The main effort for the mapper is to actually draw the map and align the pieces later one. The script is easy but gets long. This is caused by the lack of suitable containers in the doom3 scripting language.&lt;br /&gt;
&lt;br /&gt;
== Additions ==&lt;br /&gt;
&lt;br /&gt;
If you want to test the alignment in game, just change the lines in the &#039;&#039;main&#039;&#039; method in the script file. Set all the values to &amp;quot;1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you want to have an automap that marks where the player currently is, the following changes need to be done:&lt;br /&gt;
&lt;br /&gt;
- The &#039;&#039;mark&#039;&#039; method is called via &amp;quot;call_on_exit&amp;quot; by the zones. &amp;quot;call_on_entry&amp;quot; calls a similar function that sets the value for the room to &amp;quot;2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- The show method checks for the values to be &amp;quot;1&amp;quot; or &amp;quot;2&amp;quot; separately. For &amp;quot;2&amp;quot; a highlighted version is shown on the map&lt;br /&gt;
&lt;br /&gt;
- Obviously you have to make these highlighted version first&lt;br /&gt;
&lt;br /&gt;
If you want the map to be fond in the mission you have to do the following to avoid the rooms the player was before finding the map to be drawn on it&lt;br /&gt;
&lt;br /&gt;
- create a hidden, non-mandatory objective &amp;quot;if player possesses item&amp;quot;. The &#039;&#039;item&#039;&#039; is the map.&lt;br /&gt;
&lt;br /&gt;
- fill the &#039;&#039;&#039;success_script&#039;&#039;&#039; field with drawMap&lt;br /&gt;
&lt;br /&gt;
- in the script file, add a &#039;&#039;float&#039;&#039; &#039;&#039;&#039;mapDraw&#039;&#039;&#039; at the beginning of the file&lt;br /&gt;
&lt;br /&gt;
- set this to zero in the &#039;&#039;main&#039;&#039; method&lt;br /&gt;
&lt;br /&gt;
- in the beginning of the &#039;&#039;mark&#039;&#039; method add the line &#039;&#039;if (!mapDraw) return;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Obviously you will need to do this several times if the player can find several maps. If so, be sure to make different &#039;&#039;mark&#039;&#039; methods for every map to be found (thus meaning entities in the map file)&lt;br /&gt;
&lt;br /&gt;
You can use this setup as a starting point for setting up objectives like &amp;quot;investigate 50% of the area&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Questions, replies and advices of any kind can go [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/ here]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 06:33, 25 January 2013 (EST)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19300</id>
		<title>Creating Automaps</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Creating_Automaps&amp;diff=19300"/>
		<updated>2017-06-11T13:53:38Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: /* Setting up the gui */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Normally the player is given a map at mission start, which is showing him the location he is attempting to sneak in. However, it may not seem very realistic that the player already possesses such detailed information without ever been in the specific place. An automap, thus meaning a map that gets drawn while the player proceeds in his mission may seem more realistic.&lt;br /&gt;
&lt;br /&gt;
On the other hand such thing can also add a lot to immersion. The player don&#039;t know what is expecting him in the beginning, but benefits from the advantages a map brings to him while he proceeds. In addition an automap provides information about where the player already have been and therefore can avoid frustrating moments when he is searching for one little room he may have overseen.&lt;br /&gt;
&lt;br /&gt;
The following article now describes how to set up such an item.&lt;br /&gt;
&lt;br /&gt;
== Preparations ==&lt;br /&gt;
&lt;br /&gt;
The first step is to actually draw your map. How you do this is your business. After you have done so you should cut out all the seperate rooms you want to appear on the map later on. Make sure to make the background transparent (using gimp for example). If you do so you should have&lt;br /&gt;
&lt;br /&gt;
- one picture containing the parts of the map the player already know at mission start (called &#039;&#039;startmap&#039;&#039; furthermore)&lt;br /&gt;
- several pictures of the rooms he can discover later on&lt;br /&gt;
&lt;br /&gt;
It is your choice if you want to put the &#039;&#039;startmap&#039;&#039; on the &#039;&#039;map_of_.tga&#039;&#039; file served with the &#039;&#039;&#039;startmap&#039;&#039;&#039; package or keep it seperate. However, for the tutorial let&#039;s just assume you have choosen the first possibility.&lt;br /&gt;
&lt;br /&gt;
Furthermore you should get familiar with the zone system as it is needed here.&lt;br /&gt;
&lt;br /&gt;
== Setting up the gui ==&lt;br /&gt;
&lt;br /&gt;
The gui looks like this:&lt;br /&gt;
&lt;br /&gt;
  windowDef Desktop&lt;br /&gt;
  {&lt;br /&gt;
    	rect      0,0,640,480&lt;br /&gt;
    	nocursor 1&lt;br /&gt;
         &lt;br /&gt;
        windowDef background_map&lt;br /&gt;
        {&lt;br /&gt;
                rect      64,48, 512, 394&lt;br /&gt;
                background &amp;quot;guis/automap/map_of&amp;quot;&lt;br /&gt;
                visible 1&lt;br /&gt;
        }&lt;br /&gt;
        ...&lt;br /&gt;
        // Required include for inventory map&lt;br /&gt;
        #include &amp;quot;guis/readables/inventory_map.guicode&amp;quot;	&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
In our case &#039;&#039;guis/automap/map_of&#039;&#039; is the file that holds the startmap. Where the dots are you have to add the following code for &#039;&#039;&#039;each&#039;&#039;&#039; area visible on the map.&lt;br /&gt;
    windowDef &#039;&#039;nameOfArea&#039;&#039;&lt;br /&gt;
    {&lt;br /&gt;
         rect 100,100,380,300&lt;br /&gt;
         background &amp;quot;&#039;&#039;path_to_imagefile&#039;&#039;&amp;quot;&lt;br /&gt;
         visible &amp;quot;gui::gui_XYZ&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
- &#039;&#039;nameOFArea&#039;&#039; can be choosen as you like, but each name must be unique and it makes sense to make it recogniseable&lt;br /&gt;
- &#039;&#039;path_to_imagefile&#039;&#039; holds the path to the image to be drawn. Where nothing gets drawn the image should be transparent&lt;br /&gt;
- the gui variable gui::gui_XYZ determines whether the image is visible or not. XYZ is the name of the corresponding location entity. You can easely get typos, so if something isn&#039;t working this is the first place to check&lt;br /&gt;
&lt;br /&gt;
Note that all pictures are using the same area of the gui. This easens the setup, but must be taken into account when creating the images for the map.&lt;br /&gt;
&lt;br /&gt;
== Things to do in DarkRadiant ==&lt;br /&gt;
&lt;br /&gt;
This is the easiest part. In DR create an &#039;&#039;custom_static_item&#039;&#039; entity (darkmod/items/custom). Set the model to whatever you like, but if you plan it to be found later in the game you may choose a scroll or similar. Than set the following spawnargs:&lt;br /&gt;
&lt;br /&gt;
- inv_name: the name to be shown to the player&lt;br /&gt;
&lt;br /&gt;
- inv_map_start: set this to &amp;quot;1&amp;quot; if the player should start with the map in his inventory&lt;br /&gt;
&lt;br /&gt;
- inv_category: set to &amp;quot;#str_02390&amp;quot; (important), this allows the map to become visible via the map key (m by default)&lt;br /&gt;
&lt;br /&gt;
I will refer to this entity as &#039;&#039;map&#039;&#039; entity furthermore. Now create a &#039;&#039;target_callscriptfunction&#039;&#039; entity (darkmod/targets) and give it a suitable name. Set the spawnarg &amp;quot;call&amp;quot; &amp;quot;map1ShowHide&amp;quot; on it and target it from the just created &#039;&#039;map&#039;&#039; entity. &lt;br /&gt;
&lt;br /&gt;
If the player &#039;uses&#039; the map (by pressing the map key for example) the function &#039;&#039;map1ShowHide&#039;&#039; will be executed.&lt;br /&gt;
&lt;br /&gt;
Redo this for every map and set &amp;quot;call&amp;quot; &amp;quot;mapXShowHide&amp;quot; where &#039;&#039;&#039;X&#039;&#039;&#039; is the map number.&lt;br /&gt;
&lt;br /&gt;
The next thing needed to get the automap to work is to set up zones in your map. Every room that has it&#039;s own picture on the map must be represented by an own zone in you mission. Give every zone a suitable name, we will need those later on. Now set the spawnarg &amp;quot;call_on_entry&amp;quot; &amp;quot;mark&amp;quot; on them. This is the function that gets called whenever the player enters the specific zone. &lt;br /&gt;
&lt;br /&gt;
  Note: Functions called via the target_callscriptfunction entity take the form &#039;&#039;&#039;void&#039;&#039;&#039; &#039;&#039;functionname&#039;&#039;() while functions called&lt;br /&gt;
        by zones take the form &#039;&#039;&#039;void&#039;&#039;&#039; &#039;&#039;functionname&#039;&#039;(&#039;&#039;&#039;entity&#039;&#039;&#039; &#039;&#039;zone&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
== The script file ==&lt;br /&gt;
&lt;br /&gt;
Create a scriptfile called &#039;&#039;mymapname&#039;&#039;.script. Once we are finished it should lool like this&lt;br /&gt;
&lt;br /&gt;
  float roomName1,...;    // stores if the player has been there (needed for &#039;&#039;&#039;every&#039;&#039;&#039; room)&lt;br /&gt;
  float h_roomName1,...;  // stores the handle to the room guis (see below, needed for &#039;&#039;&#039;every&#039;&#039;&#039; room)&lt;br /&gt;
  float h_map1,...;       // stores the handles to the &#039;&#039;startmaps&#039;&#039; (needed for &#039;&#039;&#039;every&#039;&#039;&#039; map)&lt;br /&gt;
  float map1Shown,...;    // if the map is currently shown (needed for &#039;&#039;&#039;every&#039;&#039;&#039; map)&lt;br /&gt;
  &lt;br /&gt;
  void mapXShowHide() {   // shows/hides the map (needed for &#039;&#039;&#039;every&#039;&#039;&#039; map, &#039;&#039;&#039;X&#039;&#039;&#039; is the map number)&lt;br /&gt;
    if (mapXShown) {      // player hides the map&lt;br /&gt;
      mapXShown=0;&lt;br /&gt;
      $player.destroyOverlay(h_mapX);&lt;br /&gt;
      if (roomName1) $player1.destroyOverlay(h_roomName1); //destroys the gui overlay for the &#039;&#039;startmap&#039;&#039;&lt;br /&gt;
      ...                 // destroys the gui overlays for &#039;&#039;&#039;all&#039;&#039;&#039; shown rooms (repeat this line for &#039;&#039;&#039;every&#039;&#039;&#039; room om map X)&lt;br /&gt;
      return;             // that&#039;s it, the map is hidden&lt;br /&gt;
    }&lt;br /&gt;
    sh=1;                 // player shows the map&lt;br /&gt;
    h_mapX=$player1.createOverlay(&amp;quot;&#039;&#039;path to startmap.gui&#039;&#039;&amp;quot;,100);           // show &#039;&#039;startmap&#039;&#039;&lt;br /&gt;
    if (roomName1) h_roomName1=$player.createOverlay(&amp;quot;&#039;&#039;path to gui&#039;&#039;&amp;quot;,101); // show room if player was there, do this for &#039;&#039;&#039;every&#039;&#039;&#039; room on map &#039;&#039;&#039;X&#039;&#039;&#039; while continuing the numbering (102,103,...)&lt;br /&gt;
    ...&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  void mark(entity zone) { //mark the area the player just entered as visited (you can use one function for all map or seperate them, your choice)&lt;br /&gt;
    string name;&lt;br /&gt;
    name=zone.getKey(&amp;quot;name&amp;quot;); // the name of the zone&lt;br /&gt;
    if (name==&amp;quot;roomName1&amp;quot;) {  // markes the room as visited if the player is there (needed for &#039;&#039;&#039;every&#039;&#039;&#039; room&lt;br /&gt;
      roomName1=1;&lt;br /&gt;
      return;&lt;br /&gt;
    }                         &lt;br /&gt;
    ...&lt;br /&gt;
  }&lt;br /&gt;
  &lt;br /&gt;
  void main() {&lt;br /&gt;
    roomName1=0; //do this for &#039;&#039;&#039;every&#039;&#039;&#039; room&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
That&#039;s it. If you do this for large missions with many rooms the code will get quite long, but the single steps should be easy to understand. &#039;&#039;&#039;roomName1&#039;&#039;&#039; and so one are just placeholders. Choose the name of the corrosponding zones in you mission. &lt;br /&gt;
&lt;br /&gt;
If you use several maps it may be a good idea to put the map number into the zone names, for example &amp;quot;&#039;&#039;m1_tavern&#039;&#039;&amp;quot;. It may also be a good idea to split the guis and images into several folders, one for each map. This is your choice.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
It is quite simple to setup a fully functional automap. The main effort for the mapper is to actually draw the map and align the pieces later one. The script is easy but gets long. This is caused by the lack of suitable containers in the doom3 scripting language.&lt;br /&gt;
&lt;br /&gt;
== Additions ==&lt;br /&gt;
&lt;br /&gt;
If you want to test the alignment in game, just change the lines in the &#039;&#039;main&#039;&#039; method in the script file. Set all the values to &amp;quot;1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
If you want to have an automap that marks where the player currently is, the following changes need to be done:&lt;br /&gt;
&lt;br /&gt;
- The &#039;&#039;mark&#039;&#039; method is called via &amp;quot;call_on_exit&amp;quot; by the zones. &amp;quot;call_on_entry&amp;quot; calls a similar function that sets the value for the room to &amp;quot;2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
- The show method checks for the values to be &amp;quot;1&amp;quot; or &amp;quot;2&amp;quot; separately. For &amp;quot;2&amp;quot; a highlighted version is shown on the map&lt;br /&gt;
&lt;br /&gt;
- Obviously you have to make these highlighted version first&lt;br /&gt;
&lt;br /&gt;
If you want the map to be fond in the mission you have to do the following to avoid the rooms the player was before finding the map to be drawn on it&lt;br /&gt;
&lt;br /&gt;
- create a hidden, non-mandatory objective &amp;quot;if player possesses item&amp;quot;. The &#039;&#039;item&#039;&#039; is the map.&lt;br /&gt;
&lt;br /&gt;
- fill the &#039;&#039;&#039;success_script&#039;&#039;&#039; field with drawMap&lt;br /&gt;
&lt;br /&gt;
- in the script file, add a &#039;&#039;float&#039;&#039; &#039;&#039;&#039;mapDraw&#039;&#039;&#039; at the beginning of the file&lt;br /&gt;
&lt;br /&gt;
- set this to zero in the &#039;&#039;main&#039;&#039; method&lt;br /&gt;
&lt;br /&gt;
- in the beginning of the &#039;&#039;mark&#039;&#039; method add the line &#039;&#039;if (!mapDraw) return;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Obviously you will need to do this several times if the player can find several maps. If so, be sure to make different &#039;&#039;mark&#039;&#039; methods for every map to be found (thus meaning entities in the map file)&lt;br /&gt;
&lt;br /&gt;
You can use this setup as a starting point for setting up objectives like &amp;quot;investigate 50% of the area&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Questions, replies and advices of any kind can go [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/ here]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 06:33, 25 January 2013 (EST)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=18053</id>
		<title>Obsttortes Wiki articles</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=18053"/>
		<updated>2015-01-11T14:37:08Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: /* Altering the savegame behaviour */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Triggering Events when looking at something ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Triggering_events_when_looking_at_something Link]&lt;br /&gt;
&lt;br /&gt;
== In-game automatic note book ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Automatic_note_book Link]&lt;br /&gt;
&lt;br /&gt;
== In-game shop ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=In-game_shop Link]&lt;br /&gt;
&lt;br /&gt;
== AI behaviour depending on player actions ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=AI_behaviour_depending_on_players_actions_%28new_version%29 Link]&lt;br /&gt;
&lt;br /&gt;
== Creating Automaps ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Creating_Automaps Link]&lt;br /&gt;
&lt;br /&gt;
  These needs to be packed in a scriptobject. In addition I plan to create a tool that easens the creations of the maps.&lt;br /&gt;
&lt;br /&gt;
== Triggering Objectives ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Objectives,_triggering Link]&lt;br /&gt;
&lt;br /&gt;
== Creating a pond ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=How_to_create_a_pond Link]&lt;br /&gt;
&lt;br /&gt;
== Altering the savegame behaviour ==&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Altering_the_savegame_behaviour_of_TDM, Link]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 14:36, 11 January 2015 (UTC)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=18052</id>
		<title>Obsttortes Wiki articles</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=18052"/>
		<updated>2015-01-11T14:36:59Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: /* Altering the savegame behaviour */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Triggering Events when looking at something ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Triggering_events_when_looking_at_something Link]&lt;br /&gt;
&lt;br /&gt;
== In-game automatic note book ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Automatic_note_book Link]&lt;br /&gt;
&lt;br /&gt;
== In-game shop ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=In-game_shop Link]&lt;br /&gt;
&lt;br /&gt;
== AI behaviour depending on player actions ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=AI_behaviour_depending_on_players_actions_%28new_version%29 Link]&lt;br /&gt;
&lt;br /&gt;
== Creating Automaps ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Creating_Automaps Link]&lt;br /&gt;
&lt;br /&gt;
  These needs to be packed in a scriptobject. In addition I plan to create a tool that easens the creations of the maps.&lt;br /&gt;
&lt;br /&gt;
== Triggering Objectives ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Objectives,_triggering Link]&lt;br /&gt;
&lt;br /&gt;
== Creating a pond ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=How_to_create_a_pond Link]&lt;br /&gt;
&lt;br /&gt;
== Altering the savegame behaviour ==&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Altering_the_savegame_behaviour_of_TDM, link]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 14:36, 11 January 2015 (UTC)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=18051</id>
		<title>Obsttortes Wiki articles</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=18051"/>
		<updated>2015-01-11T14:36:40Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Triggering Events when looking at something ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Triggering_events_when_looking_at_something Link]&lt;br /&gt;
&lt;br /&gt;
== In-game automatic note book ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Automatic_note_book Link]&lt;br /&gt;
&lt;br /&gt;
== In-game shop ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=In-game_shop Link]&lt;br /&gt;
&lt;br /&gt;
== AI behaviour depending on player actions ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=AI_behaviour_depending_on_players_actions_%28new_version%29 Link]&lt;br /&gt;
&lt;br /&gt;
== Creating Automaps ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Creating_Automaps Link]&lt;br /&gt;
&lt;br /&gt;
  These needs to be packed in a scriptobject. In addition I plan to create a tool that easens the creations of the maps.&lt;br /&gt;
&lt;br /&gt;
== Triggering Objectives ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Objectives,_triggering Link]&lt;br /&gt;
&lt;br /&gt;
== Creating a pond ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=How_to_create_a_pond Link]&lt;br /&gt;
&lt;br /&gt;
== Altering the savegame behaviour ==&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Altering_the_savegame_behaviour_of_TDM]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 14:36, 11 January 2015 (UTC)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Altering_the_savegame_behaviour_of_TDM&amp;diff=18050</id>
		<title>Altering the savegame behaviour of TDM</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Altering_the_savegame_behaviour_of_TDM&amp;diff=18050"/>
		<updated>2015-01-11T14:35:46Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: This article deals with how the new savegame features in TDM 2.03 can be used.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
From TDM 2.03 on it will be possible for mappers to change the savegame behaviour of the game. This means, that you can restrict the possibilities to save the game in a manner that appears suitable to you and for your FM. These restrictions can be&lt;br /&gt;
&lt;br /&gt;
 - Disallowing quicksaves or manual savings completely&lt;br /&gt;
 - restricting the savegame count to a finite number (like in Project I.G.I. 2 or in the Hitman games series)&lt;br /&gt;
 - using checkpoints instead of manual savings&lt;br /&gt;
 - using consumeable tools to save the game, or objects in the world&lt;br /&gt;
 - and so one&lt;br /&gt;
&lt;br /&gt;
I&#039;ve tried to keep the system as simple as possible, to easely allow using it in any desired manner.&lt;br /&gt;
&lt;br /&gt;
== Why restricting the savegames? ==&lt;br /&gt;
&lt;br /&gt;
There has been a long discussion in the forum about this matter, so it may be interesting to first think about its purpose. I would advise any mapper to indeed first think about why they want to use it. Using a feature just because it is available is definetely not the best way to go.&lt;br /&gt;
&lt;br /&gt;
Disallowing the player to save whenever he wants can have several consequences on the gameplay. I just want to list a couple of thinks that come to my mind here:&lt;br /&gt;
&lt;br /&gt;
 - increasing the difficulty&lt;br /&gt;
 - creating tension&lt;br /&gt;
 - supporting tactical gameplay&lt;br /&gt;
 - implementing another kind of reward system (when restricting the number of saves,&lt;br /&gt;
   the player may be able to receive additional ones by fulfilling side-quests etc...)&lt;br /&gt;
&lt;br /&gt;
It is obviously up to the mapper and of course the players on how strong those aspects will take effect. But it is definetely worth thinking about what can be achieved with this, and whether it suits certain types of gameplay or mission paradigmas.&lt;br /&gt;
&lt;br /&gt;
But enogh of the forwords. Let&#039;s get to on how to use it.&lt;br /&gt;
&lt;br /&gt;
== General Setup ==&lt;br /&gt;
&lt;br /&gt;
There are three entities that comes with TDM 2.03 serving the purpose of manipulating the savgame mechanics.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;info/atdm:savegame_admin&#039;&#039;&#039; is the main entity. You do need exactly one of those in you missions to allow for changes in the savegame mechanics.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;targets/atdm:target_savegame&#039;&#039;&#039; is a simple target entity, which will store the game under a name defined in its spawnargs.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;playertools/atdm:playertools_savegame&#039;&#039;&#039; is a base class, which can be extended to create inventory objects that saves the game when consumed.&lt;br /&gt;
&lt;br /&gt;
I will describe all of these in the following sections.&lt;br /&gt;
&lt;br /&gt;
== The savegame admin ==&lt;br /&gt;
&lt;br /&gt;
The main entity provides a couple of spawnargs to alter the savegame mechanics.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save_permission&#039;&#039;&#039; values: 0(default), 1, 2&lt;br /&gt;
 - 0: no restrictions (default TDM behaviour)&lt;br /&gt;
 - 1: no quicksaves&lt;br /&gt;
 - 2: no manual saving&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;save_count_limit&#039;&#039;&#039; values: an integer (default: -1)&lt;br /&gt;
&lt;br /&gt;
Set this to a non-negative number to restrict the amount of saves to said number.&lt;br /&gt;
&lt;br /&gt;
The entity appears as a blue box of size 16x16x16 in DR. It comes with three script functions.&lt;br /&gt;
&lt;br /&gt;
 &#039;&#039;&#039;void&#039;&#039;&#039; &#039;&#039;enableRestriction&#039;&#039;(&#039;&#039;&#039;float&#039;&#039;&#039; &#039;&#039;enabled&#039;&#039;): Dis-/Enables the limitation of the amount of savegames. &lt;br /&gt;
  To disable it, pass zero as argument. &lt;br /&gt;
&lt;br /&gt;
The amount of used saves is stored. So if the player has five saves and used three of them before the restriction gets disabled, enabling the restriction later on will leave him with two saves left, &#039;&#039;&#039;independend on how often he saved the game in between&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;float&#039;&#039;&#039; &#039;&#039;isRestrictionEnabled&#039;&#039;(): Returns 0 if disabled, 1 if enabled.&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;void&#039;&#039;&#039; &#039;&#039;addSaves&#039;&#039;(&#039;&#039;&#039;float&#039;&#039;&#039; &#039;&#039;saves&#039;&#039;): Gives the player the amount of saves passed as an argumant. &lt;br /&gt;
  Negative numbers will reduce the savegame count left.&lt;br /&gt;
&lt;br /&gt;
The savegame_admin scriptobject is deriveable, which allows you to derive scriptobjects from it to extend or alter its behaviour.&lt;br /&gt;
&lt;br /&gt;
== The target entity ==&lt;br /&gt;
&lt;br /&gt;
The target entity holds the spawnarg &#039;&#039;&#039;savegame_name&#039;&#039;&#039;. The entity will save the game under said name (possible overwriting an older savegame with the same name). If no name is said, the game won&#039;t get saved and a warning gets printed to the console.&lt;br /&gt;
&lt;br /&gt;
  &#039;&#039;&#039;WARNING:&#039;&#039;&#039; savegame_name not set on entity &#039;&#039;entity_name&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;entity_name&#039;&#039; is the name of the entity. Use this information to find the entity in DR and fix the problem.&lt;br /&gt;
&lt;br /&gt;
The entity does not provide additional script functions.&lt;br /&gt;
&lt;br /&gt;
== The playertool ==&lt;br /&gt;
&lt;br /&gt;
The playertool entity is completely set up from the functional side. Derive an entity from it and set spawnargs like &#039;&#039;inv_name&#039;&#039; or &#039;&#039;inv_icon&#039;&#039; on it. It doesn&#039;t provide additional script functions.&lt;br /&gt;
&lt;br /&gt;
== Additional script functions ==&lt;br /&gt;
&lt;br /&gt;
There are three more script functions left. You will normally not need them, except you are going to implement a more complex setup.&lt;br /&gt;
&lt;br /&gt;
The player entity has two additional script functions. You can call them on the player (&#039;&#039;player1&#039;&#039;).&lt;br /&gt;
  - &#039;&#039;&#039;void&#039;&#039;&#039; &#039;&#039;saveGame&#039;&#039;(&#039;&#039;&#039;string&#039;&#039;&#039; &#039;&#039;savename&#039;&#039;): Saves the game under set name&lt;br /&gt;
  - &#039;&#039;&#039;void&#039;&#039;&#039; &#039;&#039;setSavePermissions&#039;&#039;(&#039;&#039;&#039;float&#039;&#039;&#039; &#039;&#039;permission&#039;&#039;): corresponds to the &#039;&#039;save_permission&#039;&#039; spawnarg on the &lt;br /&gt;
  admin entity above&lt;br /&gt;
&lt;br /&gt;
In addition, there is&lt;br /&gt;
  &#039;&#039;&#039;fload&#039;&#039;&#039; sys.&#039;&#039;getMissionStatistic&#039;&#039;(&amp;quot;totalSaves&amp;quot;)&lt;br /&gt;
which will return the number of times saved.&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 14:35, 11 January 2015 (UTC)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=I18N_-_List_of_TDM_translators&amp;diff=17137</id>
		<title>I18N - List of TDM translators</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=I18N_-_List_of_TDM_translators&amp;diff=17137"/>
		<updated>2013-08-11T12:55:03Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document can be used to find someone who can translate new strings or an FM into the wanted language. &lt;br /&gt;
&lt;br /&gt;
Note that translators are working for free and on their own, so they can refuse to translate anything at any time :)&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable sortable&amp;quot; border=1 style=&amp;quot;border-collapse: collapse; font-size: 90%&amp;quot; cellspacing=0 cellpadding=2 width=100%&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
!style=&amp;quot;background: #d0d0d0&amp;quot; width=20%|Language&lt;br /&gt;
!style=&amp;quot;background: #d0d0d0&amp;quot;|Translators&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Czech&lt;br /&gt;
|PPoe&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Danish&lt;br /&gt;
|snobel&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Dutch&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Finnish&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|French&lt;br /&gt;
|Briareos H, Hyeron&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|German&lt;br /&gt;
|[http://forums.thedarkmod.com/user/3427-7upman/ 7upman], [http://forums.thedarkmod.com/user/144-tels/ Tels], [http://forums.thedarkmod.com/user/11230-obsttorte/ Obsttorte]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Hungarian&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Italian&lt;br /&gt;
|[http://forums.thedarkmod.com/user/8412-echelon/ ECHELON], Knymed&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Norsk&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Polish&lt;br /&gt;
|[http://forums.thedarkmod.com/user/8481-maruda/ Maruda]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Portuguese&lt;br /&gt;
|[http://forums.thedarkmod.com/user/8474-rpgista/ RPGista]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Russian&lt;br /&gt;
|[http://forums.thedarkmod.com/user/8407-keeper-riff/ Keeper_riff], MoroseTroll&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|Spanish&lt;br /&gt;
|&amp;lt;span style=&amp;quot;border-bottom: 1px dotted black; cursor:help&amp;quot; title=&amp;quot;conact per email only: rubereaglenest at gmail&amp;quot;&amp;gt;Ruber Eaglenest&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{i18n}}&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=16086</id>
		<title>Obsttortes Wiki articles</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=16086"/>
		<updated>2013-04-10T10:15:14Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: /* Triggering Objectives */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Triggering Events when looking at something ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Triggering_events_when_looking_at_something Link]&lt;br /&gt;
&lt;br /&gt;
== In-game automatic note book ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Automatic_note_book Link]&lt;br /&gt;
&lt;br /&gt;
== In-game shop ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=In-game_shop Link]&lt;br /&gt;
&lt;br /&gt;
== AI behaviour depending on player actions ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=AI_behaviour_depending_on_players_actions_%28new_version%29 Link]&lt;br /&gt;
&lt;br /&gt;
== Creating Automaps ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Creating_Automaps Link]&lt;br /&gt;
&lt;br /&gt;
  These needs to be packed in a scriptobject. In addition I plan to create a tool that easens the creations of the maps.&lt;br /&gt;
&lt;br /&gt;
== Triggering Objectives ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Objectives,_triggering Link]&lt;br /&gt;
&lt;br /&gt;
== Creating a pond ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=How_to_create_a_pond Link]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 13:15, 19 March 2013 (EDT)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=16085</id>
		<title>Obsttortes Wiki articles</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=16085"/>
		<updated>2013-04-10T10:14:54Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Triggering Events when looking at something ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Triggering_events_when_looking_at_something Link]&lt;br /&gt;
&lt;br /&gt;
== In-game automatic note book ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Automatic_note_book Link]&lt;br /&gt;
&lt;br /&gt;
== In-game shop ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=In-game_shop Link]&lt;br /&gt;
&lt;br /&gt;
== AI behaviour depending on player actions ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=AI_behaviour_depending_on_players_actions_%28new_version%29 Link]&lt;br /&gt;
&lt;br /&gt;
== Creating Automaps ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Creating_Automaps Link]&lt;br /&gt;
&lt;br /&gt;
  These needs to be packed in a scriptobject. In addition I plan to create a tool that easens the creations of the maps.&lt;br /&gt;
&lt;br /&gt;
== Triggering Objectives ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Objectives,_triggering, Link]&lt;br /&gt;
&lt;br /&gt;
== Creating a pond ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=How_to_create_a_pond Link]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 13:15, 19 March 2013 (EDT)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=16084</id>
		<title>Obsttortes Wiki articles</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=16084"/>
		<updated>2013-04-10T10:14:22Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: /* Creating a pond */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Triggering Events when looking at something ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Triggering_events_when_looking_at_something, Link]&lt;br /&gt;
&lt;br /&gt;
== In-game automatic note book ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Automatic_note_book, Link]&lt;br /&gt;
&lt;br /&gt;
== In-game shop ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=In-game_shop, Link]&lt;br /&gt;
&lt;br /&gt;
== AI behaviour depending on player actions ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=AI_behaviour_depending_on_players_actions_%28new_version%29, Link]&lt;br /&gt;
&lt;br /&gt;
== Creating Automaps ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Creating_Automaps, Link]&lt;br /&gt;
&lt;br /&gt;
  These needs to be packed in a scriptobject. In addition I plan to create a tool that easens the creations of the maps.&lt;br /&gt;
&lt;br /&gt;
== Triggering Objectives ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Objectives,_triggering, Link]&lt;br /&gt;
&lt;br /&gt;
== Creating a pond ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=How_to_create_a_pond Link]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 13:15, 19 March 2013 (EDT)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=16083</id>
		<title>Obsttortes Wiki articles</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=16083"/>
		<updated>2013-04-10T10:14:03Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Triggering Events when looking at something ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Triggering_events_when_looking_at_something, Link]&lt;br /&gt;
&lt;br /&gt;
== In-game automatic note book ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Automatic_note_book, Link]&lt;br /&gt;
&lt;br /&gt;
== In-game shop ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=In-game_shop, Link]&lt;br /&gt;
&lt;br /&gt;
== AI behaviour depending on player actions ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=AI_behaviour_depending_on_players_actions_%28new_version%29, Link]&lt;br /&gt;
&lt;br /&gt;
== Creating Automaps ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Creating_Automaps, Link]&lt;br /&gt;
&lt;br /&gt;
  These needs to be packed in a scriptobject. In addition I plan to create a tool that easens the creations of the maps.&lt;br /&gt;
&lt;br /&gt;
== Triggering Objectives ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Objectives,_triggering, Link]&lt;br /&gt;
&lt;br /&gt;
== Creating a pond ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=How_to_create_a_pond, Link]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 13:15, 19 March 2013 (EDT)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=16045</id>
		<title>Obsttortes Wiki articles</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=16045"/>
		<updated>2013-04-08T19:18:27Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Triggering Events when looking at something ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Triggering_events_when_looking_at_something, Link]&lt;br /&gt;
&lt;br /&gt;
== In-game automatic note book ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Automatic_note_book, Link]&lt;br /&gt;
&lt;br /&gt;
== In-game shop ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=In-game_shop, Link]&lt;br /&gt;
&lt;br /&gt;
== AI behaviour depending on player actions ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=AI_behaviour_depending_on_players_actions_%28new_version%29, Link]&lt;br /&gt;
&lt;br /&gt;
== Creating Automaps ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Creating_Automaps, Link]&lt;br /&gt;
&lt;br /&gt;
  These needs to be packed in a scriptobject. In addition I plan to create a tool that easens the creations of the maps.&lt;br /&gt;
&lt;br /&gt;
== Triggering Objectives ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Objectives,_triggering, Link]&lt;br /&gt;
&lt;br /&gt;
== Creating a pond ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=How_to_create_a_pond , Link]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 13:15, 19 March 2013 (EDT)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=16044</id>
		<title>Obsttortes Wiki articles</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=16044"/>
		<updated>2013-04-08T19:17:46Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Triggering Events when looking at something ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Triggering_events_when_looking_at_something, Link]&lt;br /&gt;
&lt;br /&gt;
== In-game automatic note book ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Automatic_note_book, Link]&lt;br /&gt;
&lt;br /&gt;
== In-game shop ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=In-game_shop, Link]&lt;br /&gt;
&lt;br /&gt;
== AI behaviour depending on player actions ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=AI_behaviour_depending_on_players_actions_%28new_version%29, Link]&lt;br /&gt;
&lt;br /&gt;
== Creating Automaps ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Creating_Automaps, Link]&lt;br /&gt;
&lt;br /&gt;
  These needs to be packed in a scriptobject. In addition I plan to create a tool that easens the creations of the maps.&lt;br /&gt;
&lt;br /&gt;
== Triggering Objectives ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Objectives,_triggering, Link]&lt;br /&gt;
&lt;br /&gt;
== Creating a pond ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=How_to_create_a_pond, Link]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 13:15, 19 March 2013 (EDT)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=How_to_create_a_pond&amp;diff=16043</id>
		<title>How to create a pond</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=How_to_create_a_pond&amp;diff=16043"/>
		<updated>2013-04-08T19:16:53Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
When mapping you may often want to create natural looking things like a pond for example. Natural means the same as organic, thus meaning uneven - non-blocky. The best way to achieve this goal is to use patches. &lt;br /&gt;
&lt;br /&gt;
This article attempts to describe how to use them to create proper results with a low amount of time.&lt;br /&gt;
&lt;br /&gt;
The content of this article is closely related to the patch street tutorial and the cave tutorial. For further information check the wiki and the forum.&lt;br /&gt;
&lt;br /&gt;
== How to create round patches ==&lt;br /&gt;
&lt;br /&gt;
This is very basic knowledge you can use in a lot of different situations. &lt;br /&gt;
&lt;br /&gt;
First of all, create a 3x9 patch. Select the view from which you can see it from above. What we are aiming for is to have it connected together so it ends up round. As the patch contains out of 9 vertices in one direction, we want to have three vertices (the columns) each point towards another angle in 45° steps, so that the last vertices coincidents with the first.&lt;br /&gt;
&lt;br /&gt;
At next we bring them roughly into their target destinations, what should look as followed&lt;br /&gt;
&lt;br /&gt;
[[File:patch1.png|thumb|600px|none]]&lt;br /&gt;
&lt;br /&gt;
Then turn the columns so they face into the right direction. Note that you can select multiple vertices and rotate them using &amp;quot;rotate and scale&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:patch2.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
Than get the vertices into their rough end-places (the connecting lines should stand parallel to each other) ...&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:patch3.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
and select all vertices and snap them to grid (shortcut: ctrl+g).&lt;br /&gt;
&lt;br /&gt;
[[File:patch4.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
== How to create the pond ==&lt;br /&gt;
&lt;br /&gt;
Here are the steps you have to follow to create a pond.&lt;br /&gt;
&lt;br /&gt;
1. Create your hole&lt;br /&gt;
&lt;br /&gt;
[[File:pond1.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
2. Create a patch (5x9 in this case)&lt;br /&gt;
&lt;br /&gt;
[[File:pond2.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
3. and give it a proper shape&lt;br /&gt;
&lt;br /&gt;
[[File:pond3.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
4. make it round (see above)&lt;br /&gt;
&lt;br /&gt;
[[File:pond5.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
5. and bulge it (patch -&amp;gt; bulge patch)&lt;br /&gt;
&lt;br /&gt;
[[File:pond6.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
Note that you may have to realign the end points afterwards.&lt;br /&gt;
&lt;br /&gt;
6. Create a 5x5 patch and drag the outer vertices upwards. Bulge it if you like to&lt;br /&gt;
&lt;br /&gt;
[[File:pond7.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
7. Than add your water. All the textures were paste projected. &lt;br /&gt;
&lt;br /&gt;
[[File:pond9.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
That&#039;s it.&lt;br /&gt;
&lt;br /&gt;
For pictures of the ingame results see [http://forums.thedarkmod.com/topic/14647-how-can-i-make-a-realistic-looking-pond/, here].&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 15:16, 8 April 2013 (EDT)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=File:Pond9.png&amp;diff=16042</id>
		<title>File:Pond9.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=File:Pond9.png&amp;diff=16042"/>
		<updated>2013-04-08T19:10:33Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=File:Pond7.png&amp;diff=16041</id>
		<title>File:Pond7.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=File:Pond7.png&amp;diff=16041"/>
		<updated>2013-04-08T19:10:18Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=File:Pond6.png&amp;diff=16040</id>
		<title>File:Pond6.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=File:Pond6.png&amp;diff=16040"/>
		<updated>2013-04-08T19:09:51Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=File:Pond5.png&amp;diff=16039</id>
		<title>File:Pond5.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=File:Pond5.png&amp;diff=16039"/>
		<updated>2013-04-08T19:09:37Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=File:Pond3.png&amp;diff=16038</id>
		<title>File:Pond3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=File:Pond3.png&amp;diff=16038"/>
		<updated>2013-04-08T19:09:22Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=File:Pond2.png&amp;diff=16037</id>
		<title>File:Pond2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=File:Pond2.png&amp;diff=16037"/>
		<updated>2013-04-08T19:09:08Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=File:Pond1.png&amp;diff=16036</id>
		<title>File:Pond1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=File:Pond1.png&amp;diff=16036"/>
		<updated>2013-04-08T19:08:53Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=How_to_create_a_pond&amp;diff=16035</id>
		<title>How to create a pond</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=How_to_create_a_pond&amp;diff=16035"/>
		<updated>2013-04-08T18:56:20Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: This article describes how to setup a realistic looking pond using patches&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
When mapping you may often want to create natural looking things like a pond for example. Natural means the same as organic, thus meaning uneven - non-blocky. The best way to achieve this goal is to use patches. &lt;br /&gt;
&lt;br /&gt;
This article attempts to describe how to use them to create proper results with a low amount of time.&lt;br /&gt;
&lt;br /&gt;
The content of this article is closely related to the patch street tutorial and the cave tutorial. For further information check the wiki and the forum.&lt;br /&gt;
&lt;br /&gt;
== How to create round patches ==&lt;br /&gt;
&lt;br /&gt;
This is very basic knowledge you can use in a lot of different situations. &lt;br /&gt;
&lt;br /&gt;
First of all, create a 3x9 patch. Select the view from which you can see it from above. What we are aiming for is to have it connected together so it ends up round. As the patch contains out of 9 vertices in one direction, we want to have three vertices each point towards another angle in 45° steps, so that the last vertices coincidents with the first.&lt;br /&gt;
&lt;br /&gt;
At next we bring them roughly into their target destinations, what should look as followed&lt;br /&gt;
&lt;br /&gt;
[[File:patch1.png|600px|left]]&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=File:Patch4.png&amp;diff=16034</id>
		<title>File:Patch4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=File:Patch4.png&amp;diff=16034"/>
		<updated>2013-04-08T18:54:50Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=File:Patch3.png&amp;diff=16033</id>
		<title>File:Patch3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=File:Patch3.png&amp;diff=16033"/>
		<updated>2013-04-08T18:54:37Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=File:Patch2.png&amp;diff=16032</id>
		<title>File:Patch2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=File:Patch2.png&amp;diff=16032"/>
		<updated>2013-04-08T18:54:23Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=File:Patch1.png&amp;diff=16031</id>
		<title>File:Patch1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=File:Patch1.png&amp;diff=16031"/>
		<updated>2013-04-08T18:53:55Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=15961</id>
		<title>Obsttortes Wiki articles</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Obsttortes_Wiki_articles&amp;diff=15961"/>
		<updated>2013-03-19T17:15:34Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: This is a list of articles added by me.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Triggering Events when looking at something ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Triggering_events_when_looking_at_something, Link]&lt;br /&gt;
&lt;br /&gt;
== In-game automatic note book ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Automatic_note_book, Link]&lt;br /&gt;
&lt;br /&gt;
== In-game shop ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=In-game_shop, Link]&lt;br /&gt;
&lt;br /&gt;
== AI behaviour depending on player actions ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=AI_behaviour_depending_on_players_actions_%28new_version%29, Link]&lt;br /&gt;
&lt;br /&gt;
== Creating Automaps ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Creating_Automaps, Link]&lt;br /&gt;
&lt;br /&gt;
  These needs to be packed in a scriptobject. In addition I plan to create a tool that easens the creations of the maps.&lt;br /&gt;
&lt;br /&gt;
== Triggering Objectives ==&lt;br /&gt;
&lt;br /&gt;
[http://wiki.thedarkmod.com/index.php?title=Objectives,_triggering, Link]&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 13:15, 19 March 2013 (EDT)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Triggering_events_when_looking_at_something&amp;diff=15960</id>
		<title>Triggering events when looking at something</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Triggering_events_when_looking_at_something&amp;diff=15960"/>
		<updated>2013-03-19T17:04:21Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: This article describes how to setup entities that trigger events if they were looked at.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
&lt;br /&gt;
Triggering events in games is a nice feature that can be used to drive the story forwards or to create tension. There are already several possibilities, how events can be triggered in DarkRadiant. The most common ones are the player entering a specific area, taking an object or fulfilling an objective. &lt;br /&gt;
&lt;br /&gt;
This article describes how to get entities to trigger events, if the player looks at them.&lt;br /&gt;
&lt;br /&gt;
== The scriptobject ==&lt;br /&gt;
&lt;br /&gt;
The first thing you need is the scriptobject, which you can get [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/page__view__findpost__p__307416, here]. Put t in your script folder and include it by adding the line&lt;br /&gt;
&lt;br /&gt;
  #include &amp;quot;script/trigger_look.script&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In your tdm_custom_scripts.script file. If there is no such file, you have to create it.&lt;br /&gt;
&lt;br /&gt;
== The setup ==&lt;br /&gt;
&lt;br /&gt;
On the object you want to trigger an event, add the spawnarg &amp;quot;scriptobject&amp;quot; &amp;quot;trigger_look&amp;quot;. That&#039;s it. If the player does look at it, it will trigger all it&#039;s targets.&lt;br /&gt;
&lt;br /&gt;
== Additional Spawnargs ==&lt;br /&gt;
&lt;br /&gt;
There are some additional spawnargs that can be used to control the behaviour of this object. They are all optional.&lt;br /&gt;
&lt;br /&gt;
- &amp;quot;entityname&amp;quot;: The entity to react to (default is player1, thus meaning the player)&lt;br /&gt;
- &amp;quot;stim&amp;quot;: the stim used to enable this object (default is PLAYER_STIM)&lt;br /&gt;
- &amp;quot;distance&amp;quot;: how close the entity must be (default: 1024)&lt;br /&gt;
- &amp;quot;tolerance&amp;quot;: describes how exact the player (or another entity) must look (default: 0.1)&lt;br /&gt;
- &amp;quot;once&amp;quot;: if set to one, the entity will trigger it&#039;s targets only once (default: 0)&lt;br /&gt;
&lt;br /&gt;
== Remarks ==&lt;br /&gt;
&lt;br /&gt;
There are two parts in the workflow of this object. The first part is the stim, that enables the object, the second one is the entity to react to. This must not be the same!&lt;br /&gt;
&lt;br /&gt;
While for the player the code checks, if he looks at it, for other entities it only checks wheter they are facing in the correct direction (in the x-y-plane).&lt;br /&gt;
&lt;br /&gt;
The code does not check, if the entity can be really seen. So if the player for example looks at it trough a wall within the proper range, it will be activated, too. I plan to add this feature later on. In the meantime, you should adjust the distance spawnarg to get the desired effect.&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=In-game_shop&amp;diff=15959</id>
		<title>In-game shop</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=In-game_shop&amp;diff=15959"/>
		<updated>2013-03-19T16:17:55Z</updated>

		<summary type="html">&lt;p&gt;Obsttorte: /* Setting it up */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
If you want to give the player the  possibility to buy items in-game, this article tells you how to do it.&lt;br /&gt;
&lt;br /&gt;
== The scriptobject ==&lt;br /&gt;
&lt;br /&gt;
First of all you need the scriptobject handling the behaviour of the specific objects you want the player to be able to buy. You can get it [http://forums.thedarkmod.com/topic/14394-apples-and-peaches-obsttortes-mapping-and-scripting-thread/page__view__findpost__p__307546, here]. It&#039;s shop_item.script.&lt;br /&gt;
&lt;br /&gt;
Put it in your script folder, delete the .txt ending and include it by adding the line&lt;br /&gt;
&lt;br /&gt;
  #include &amp;quot;script/shop_item.script&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to your tdm_custom_scripts.script file. If there is no such a file, you have to create it.&lt;br /&gt;
&lt;br /&gt;
== Setting it up ==&lt;br /&gt;
&lt;br /&gt;
In DarkRadiant, create a model of the object you want to sell. Place it at it&#039;s position and add the following spawnargs.&lt;br /&gt;
&lt;br /&gt;
- &amp;quot;scriptobject&amp;quot; &amp;quot;shop_item&amp;quot;: This tells the object to use the appropiate script&lt;br /&gt;
- &amp;quot;item&amp;quot; &amp;quot;&amp;lt;itemname&amp;gt;&amp;quot;: itemname is the name of the entity you want the player to buy. If you don&#039;t know the name, you can look it up in the create entity dialog (an example would be atdm:ammo_waterarrow)&lt;br /&gt;
- &amp;quot;price&amp;quot; &amp;quot;X&amp;quot;: how much this item costs (X is the value)&lt;br /&gt;
- &amp;quot;amount&amp;quot; &amp;quot;Y&amp;quot;: how many items are available for selling. If you don&#039;t set this there will be infinite&lt;br /&gt;
- &amp;quot;text&amp;quot; &amp;quot;your_text_here&amp;quot;: if you want a popup-message to appear if the player frobhilights this object, you can put it here (for example &amp;quot;Waterarrow: 50g&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
The script automatically uses the loot the player has. If one type of loot has exceeded, another type is used. If the player hasn&#039;t enough loot to purchase the item, nothings happen. If the amount of items available has exceeded the object will automatically be removed from game.&lt;br /&gt;
&lt;br /&gt;
--[[User:Obsttorte|Obsttorte]] ([[User talk:Obsttorte|talk]]) 11:51, 19 March 2013 (EDT)&lt;/div&gt;</summary>
		<author><name>Obsttorte</name></author>
	</entry>
</feed>