Alien Swarm: Reactive Drop/Scripting/Script Functions

This list contains the engine-related Squirrel classes, functions and variables available for VScript in .
== Variables ==
Instance 	Type 	Description
Convars 	Convars 	Provides an interface to read and change the values of console variables.
Director 	CDirector 	Provides a limited interface to the Director.
Entities 	CEntities 	Provides access to currently spawned entities.
EntityOutputs 	CScriptEntityOutputs 	Allows reading entity output data.
g_ModeScript 	table 	Script scope for mode specific vscripts. Only available in Challenges.
InfoNodes 	CScriptInfoNodes 	Allows reading info_node data.
MissionChooser 	CASW_Mission_Chooser_VScript	Provides an interface for querying campaigns, missions, and challenges on the server.
Deathmatch 	CASW_Deathmatch_VScript 	Allows challenge modes to modify deathmatch scores.
NetProps 	CNetPropManager 	Allows reading and updating the network properties of an entity.
ResponseCriteria	CScriptResponseCriteria 	Allows reading the response criteria of an entity.
TempEnts 	CScriptTempEnts 	Allows creating Temporary Entities on clients.
== Constants ==
Instance 	Type 	Description
_charsize_ 	integer	
_floatsize_ 	integer	
_intsize_ 	integer	
_version_ 	string 	The version of squirrel.
_versionnumber_	integer	The version of squirrel as an integer.
RAND_MAX 	integer	
== Classes ==
=== CBaseEntity ===
This is a script handle class for entities. All entities spawned have a script handle using this or one of its subclasses. 
All script handles in-game are accessible from Entities. Entity Scripts can use self to access their own script handle.
==== Methods ====
Function 	Signature 	Description
__KeyValueFromInt 	bool __KeyValueFromInt(string key, int value) 	Sets an entity Keyvalue from an integer. This simply changes the value without executing any code that may be needed for the entity to process the KeyValue, so there may be unintended side effects.
__KeyValueFromFloat 	bool __KeyValueFromFloat(string key, float value) 	Sets an entity Keyvalue from a float. This simply changes the value without executing any code that may be needed for the entity to process the KeyValue, so there may be unintended side effects.
__KeyValueFromString 	bool __KeyValueFromString(string key, string value) 	Sets an entity Keyvalue from a string. This simply changes the value without executing any code that may be needed for the entity to process the KeyValue, so there may be unintended side effects.
__KeyValueFromVector 	bool __KeyValueFromVector(string key, Vector value) 	Sets an entity Keyvalue from a Vector. This simply changes the value without executing any code that may be needed for the entity to process the KeyValue, so there may be unintended side effects.
Activate 	void Activate() 	Activates the spawned entity.
ClearParent 	void ClearParent() 	Clears the entity's move parent.
ConnectOutput 	void ConnectOutput(string output, string function) 	Adds an I/O connection that will call the named function when the specified output fires.
DisconnectOutput 	void DisconnectOutput(string output, string function) 	Removes a connected script function from an I/O event.
Destroy 	void Destroy() 	Deletes the entity.
DispatchParticleEffect 	void DispatchParticleEffect(string name) 	Spawns a particle effect that follows the origin of this entity.
DispatchParticleEffectLink	void DispatchParticleEffectLink(string name, handle otherEntity) 	Spawns a particle effect that follows the origin of this entity and has another entity's origin as control point 1.
DispatchParticleEffectCP1 	void DispatchParticleEffectCP1(string name, Vector cp1) 	Spawns a particle effect at the origin of this entity with a specific offset for control point 1.
StopParticleEffect 	void StopParticleEffect(string name) 	Removes a particle effect from this entity by name.
StopParticleEffects 	void StopParticleEffects() 	Removes all particle effects from this entity.
EmitSound 	void EmitSound(string soundScript) 	Plays a sound from this entity.
EmitSoundTable 	void EmitSoundTable(string soundScript, table options) 	Plays a sound from this entity. Options that can be specified: caption (true or false), channel (one of the CHAN_ constants such as CHAN_AUTO), delay (number), origin (Vector), pitch (one of the PITCH_ constants such as PITCH_NORM or a number from 1 to 255), recipient (a player or character entity handle), soundlevel (one of the SNDLVL_ constants such as SNDLVL_GUNFIRE or a number of decibels - affects distance the sound can be heard from, not volume), volume (number from 0 to 1)
entindex 	int entindex() 	Returns the entity index.
EyePosition 	Vector EyePosition() 	Get vector to the eye position - absolute coordinates.
FirstMoveChild 	handle FirstMoveChild() 	
GetAngles 	Vector GetAngles() 	Get the entity pitch, yaw, roll as a Vector object.
GetAngularVelocity 	Vector GetAngularVelocity() 	Get the local angular velocity - returns a Vector of pitch, yaw, roll.
GetBoundingMaxs 	Vector GetBoundingMaxs() 	Returns the maximum extent of the entity bounding box as a local vector.
GetBoundingMins 	Vector GetBoundingMins() 	Returns the maximum extent of the entity bounding box as a local vector.
GetCenter 	Vector GetCenter() 	Returns a local vector of the bounding box center.
GetClassname 	string GetClassname() 	Returns the entity class. This includes player.
GetContext 	string GetContext() 	Looks up a response context and returns it if available. May return string or null (if the context isn't found).
GetForwardVector 	Vector GetForwardVector() 	Get the forward vector of the entity.
GetHealth 	int GetHealth() 	Returns the current health.
GetKeyValue 	variable GetKeyValue(string key) 	Returns the entity's Keyvalue.
GetLeftVector 	Vector GetLeftVector() 	Get the left vector of the entity.
GetLocalAngles 	Vector GetLocalAngles() 	Get entity pitch, yaw, roll relative to the parent as a vector.
GetLocalOrigin 	Vector GetLocalOrigin() 	Returns the Entity position in the world relative to the parent as a vector.
GetMaxHealth 	int GetMaxHealth() 	Returns the maximum health.
GetModelKeyValues 	Keyvalues GetModelKeyValues() 	Returns the [$keyvalues] block of the entitys model as a #Keyvalues object. Note that this is not the keyvalues of the entity itself.
GetModelName 	string GetModelName() 	Returns the file name of the entitys model.
GetMoveParent 	CBaseEntity GetMoveParent() 	If in hierarchy, retrieves the entitys parent.
GetName 	string GetName() 	Returns the targetname of the entity.
GetOrigin 	Vector GetOrigin() 	Returns the Entity position in the world.
GetOwner 	handle GetOwner() 	Gets this entity's owner. (seems to only be useful if you have used SetOwner() previously on this entity, could be wrong)
GetPreTemplateName 	string GetPreTemplateName() 	Get the entity name stripped of template unique decoration.
GetRootMoveParent 	handle GetRootMoveParent() 	If in hierarchy, walks up the hierarchy to find the root parent.
GetScriptId 	string GetScriptId() 	Retrieve the unique identifier used to refer to the entity within the scripting system.
GetScriptScope 	handle GetScriptScope() 	Retrieve the table storing the Entity Script data associated with this entity.
GetSoundDuration 	float GetSoundDuration(string soundName, string actorModelName = "") 	Returns float duration of the sound. Takes soundname and optional actormodelname.
GetTeam 	int GetTeam() 	Returns the team number of an entity.
GetUpVector 	Vector GetUpVector() 	Get the up vector of the entity.
GetVelocity 	Vector GetVelocity() 	Returns a local velocity Vector.
IsAlien 	bool IsAlien() 	Whether the handle belongs to an alien class.
IsValid 	bool IsValid() 	Whether the handle belongs to a valid entity.
NextMovePeer 	handle NextMovePeer() 	
PrecacheModel 	int PrecacheModel(string modelPath) 	Precache a model after the map has loaded and return index of the model.
PrecacheSoundScript 	void PrecacheSoundScript(string soundScript) 	Precache a sound for later playing.
SetAbsOrigin 	void SetAbsOrigin(Vector position) 	Same as SetOrigin().
SetAngles 	void SetAngles(float pitch, float yaw, float roll) 	Set entity pitch, yaw, roll. Note that it doesn't take a Vector object.
SetAnglesVector 	void SetAnglesVector(Vector angles) 	Set entity pitch, yaw, roll from a vector.
SetAngularVelocity 	void SetAngularVelocity(float pitch, float yaw, float roll) 	Set the local angular velocity - takes float pitch, yaw, roll velocities.
SetCollisionGroup 	void SetCollisionGroup(int collisionGroup) 	Sets the entity's collision group.
SetContext 	void SetContext(string name, string value, float duration) 	Stores any key/value pair in this entity's dialog contexts. Value must be a string. Will last for duration (set 0 to mean 'forever').
SetForwardVector 	void SetForwardVector(Vector forwardVector) 	Set the orientation of the entity to have this forward vector.
SetHealth 	void SetHealth(int newHealth) 	Sets the current health.
SetLocalAngles 	void SetLocalAngles(float pitch, float yaw, float roll) 	Set entity pitch, yaw, roll relative to the parent. Note that it doesn't take a Vector object.
SetLocalOrigin 	void SetLocalOrigin(Vector position) 	Moves the entity to this global position vector relative to the parent.
SetMaxHealth 	void SetMaxHealth(int maxHealth) 	Sets a new maximum health.
SetModel 	void SetModel(string modelName) 	Changes the model of the entity. Does not Precache the model.
SetName 	void SetName() 	Sets the targetname of the entity.
SetOrigin 	void SetOrigin(Vector position) 	Moves the entity to this global position vector.
SetOwner 	void SetOwner(handle owner) 	Sets this entity's owner.
SetParent 	void SetParent(CBaseEntity entity) 	Sets an entity as another entity's move parent.
SetSize 	void SetSize(Vector, Vector) 	
SetTeam 	void SetTeam(int teamNumber) 	Instantly switches an entity's team.
SetVelocity 	void SetVelocity(Vector velocity) 	Gives the entity a new local velocity.
Spawn 	void Spawn() 	Spawns the entity into the game.
StopSound 	void StopSound(string soundName) 	Stop sound from entity.
TakeDamage 	void TakeDamage(float damage, int damageType, CBaseEntity attacker) 	Damages the entity.
TakeDamageParams 	void TakeDamageParams(handle inflictor, handle attacker, handle weapon, Vector vecDmgForce, Vector vecDmgPosition, float damage, int dmgType)	Damages the entity, with additional parameters.
ValidateScriptScope 	bool ValidateScriptScope() 	Ensure that an entity's script scope has been created.
==== Hooks ====
If one of these functions are declared in an Entity Script, the entity will run this function automatically in the appropriate situation. 
Function 	Signature 	Description
InputInputName	bool InputInputName()	Called when the entity receives an input from the I/O system. The name of the function needs to be Input followed by the name of the input in CamelCase, for example InputFireUser1 for the FireUser1 input. When the function is called, the activating and calling entities Script Handles are written to the receiving entitys Script Scope in the activator and caller variables. The function needs to return a boolean value. Setting it to true allows the entity to process the input, while false cancels it.
OnPostSpawn 	void OnPostSpawn() 	Called immediately after the entity spawns. This could be used to have an entity register itself with a master script, or adjusting the entity parameters in a programmatic way.
Precache 	void Precache() 	Called after the script executes. Can be used to call precache functions for models and sounds on map load.
=== CBaseAnimating ===
Extends CBaseEntity
Script handle class for animating entities such as props.
==== Methods ====
Function 	Signature 	Description
DispatchParticleEffectAttachment 	void DispatchParticleEffectAttachment(string name, string attachment) 	Spawn a particle effect that follows an attachment point of this entity.
DispatchParticleEffectAttachmentLink	void DispatchParticleEffectAttachmentLink(string name, string attachment, handle otherEntity)	Spawns a particle effect that follows an attachment point of this entity and has another entity's origin as control point 1.
GetAttachmentAngles 	Vector GetAttachmentAngles(int id) 	Get the attachment ID's angles as a pitch, yaw, roll vector.
GetAttachmentBone 	int GetAttachmentBone(int id) 	Gets the bone for an attachment.
GetAttachmentOrigin 	Vector GetAttachmentOrigin(int id) 	Get the attachment ID's origin vector.
GetBodygroup 	int GetBodygroup(int group) 	Get the bodygroup.
GetBodygroupName 	string GetBodygroupName(int group) 	Get the name of the bodygroup.
GetBodygroupPartName 	string GetBodygroupPartName(int group, int part) 	Get the part name of the bodygroup.
GetBoneAngles 	Vector GetBoneAngles(int bone_id) 	Get the bone id's angles.
GetBoneOrigin 	Vector GetBoneOrigin(int bone_id) 	Get the bone id's origin vector.
GetModelScale 	float GetModelScale() 	Get scale of entity's model.
GetSequence 	int GetSequence() 	Get the active sequence.
GetSequenceActivityName 	string GetSequenceActivityName(int sequence_id) 	Get the activity name of the sequence.
GetSequenceDuration 	float GetSequenceDuration(int sequence_id) 	Returns the duration in seconds of the passed sequence.
GetSequenceName 	string GetSequenceName(int sequence_id) 	Returns the name of the sequence.
IsSequenceFinished 	bool IsSequenceFinished() 	Ask whether the main sequence is done playing.
LookupActivity 	int LookupActivity(string activityName) 	Get the named activity ID.
LookupAttachment 	int LookupAttachment(string attachmentName) 	Get the named attachment ID.
LookupBone 	int LookupBone(string boneName) 	Get the named bone ID.
LookupSequence 	int LookupSequence(string sequenceName) 	Get the named sequence ID.
ResetSequence 	void ResetSequence(int sequence_id) 	Sets the active sequence, resetting the current cycle.
SetBodygroup 	void SetBodygroup(int groupIndex, int value) 	Sets the models bodygroup value by index.
SetModelScale 	void SetModelScale(float scale, float changeDuration) 	Sets the model's scale with change duration.
SetPoseParameter 	float SetPoseParameter(string name, float value) 	Set the specified pose parameter to the specified value.
SetSequence 	void SetSequence(int sequence_id) 	Sets the active sequence, keeping the current cycle.
StopAnimation 	void StopAnimation() 	Stop the current animation by setting playback rate to 0.0.
=== CBaseFlex ===
Extends CBaseAnimating
==== Methods ====
Function 	Signature 	Description
GetCurrentScene	handle GetCurrentScene() 	Returns the instance of the oldest active scene entity (if any).
GetSceneByIndex	handle GetSceneByIndex(int index)	Returns the instance of the scene entity at the specified index.
=== CBasePlayer ===
Extends CBaseAnimating
==== Methods ====
Function 	Signature 	Description
GetNetworkIDString	string GetNetworkIDString()	Get the player's network (i.e. Steam) ID.
GetPlayerName 	string GetPlayerName() 	Get the players name.
GetPlayerUserID 	string GetPlayerUserID() 	Get the players userID.
IsNoclipping 	bool IsNoclipping() 	Returns true if the player is in noclip mode.
=== CASW_Player ===
Extends CBasePlayer
==== Methods ====
Function 	Signature 	Description
FindPickerEntity 	CBaseEntity FindPickerEntity() 	Finds the nearest entity in front of the player.
GetCrosshairTracePos 	Vector GetCrosshairTracePos() 	Returns the world location directly beneath the player's crosshair.
GetMarine (Shared) 	CASW_Marine GetMarine() 	Returns the marine the player is commanding.
GetNPC (Shared) 	CBaseEntity GetNPC() 	Returns entity the player is inhabiting.
SetNPC 	void SetNPC(handle entity) 	Sets the player's inhabiting entity.
GetSpectatingNPC (Shared)	CBaseEntity GetSpectatingNPC() 	Returns entity the player is spectating.
SetSpectatingNPC 	void SetSpectatingNPC(handle entity) 	Sets the player's spectating entity.
GetViewNPC (Shared) 	CBaseEntity GetViewNPC() 	Returns entity the player is spectating, else will return inhabiting entity.
ResurrectMarine 	CASW_Marine ResurrectMarine(Vector position, bool bEffect)	Resurrect the marine.
=== CBaseCombatCharacter ===
Extends CBaseAnimating
==== Methods ====
Function 	Signature 	Description
RemoveAllAmmo	void RemoveAllAmmo()	Removes all ammo for the character.
=== CASW_Inhabitable_NPC ===
Extends CBaseCombatCharacter
==== Methods ====
Function 	Signature 	Description
IsInhabited 	bool IsInhabited() 	Removes true if this character is being controlled by a player.
GetCommander 	CASW_Player GetCommander() 	Returns the player who "owns" this character, for example the player who is playing as a marine or who added a marine bot to the lobby.
SetControls 	void SetControls(int controls) 	Sets this character to use a specific control scheme. -1 = use asw_controls convar, 0 = first person, 1 = top-down, 2 = third person
SetFogController 	void SetFogController(entity) 	Force this character to use a specific env_fog_controller entity.
SetPostProcessController 	void SetPostProcessController(entity) 	Force this character to use a specific postprocess_controller entity.
SetColorCorrection 	void SetColorCorrection(entity) 	Force this character to use a specific color_correction entity.
SetTonemapController 	void SetTonemapController(entity) 	Force this character to use a specific env_tonemap_controller entity.
SetGlow 	void SetGlow(Vector color, float alpha, bool glowWhenOccluded, bool glowWhenUnoccluded, bool fullBloom)	Make this character glow when occluded or when unoccluded. Does not affect cases where the character would glow due to built-in game logic.
ClearOrders 	void ClearOrders() 	Clear the alien's orders.
OrderMoveTo 	void OrderMoveTo(entity orderObject, bool ignoreMarines) 	Order the alien to chase an entity.
ChaseNearestMarine 	void ChaseNearestMarine() 	Order the alien to chase the nearest marine.
Extinguish 	void Extinguish() 	Put out a fire.
Ignite 	void Ignite(float duration) 	Set a character on fire.
Thaw 	void Thaw(float amount) 	Unfreeze this character.
Freeze 	void Freeze(float amount) 	Freeze this character.
ElectroStun 	void ElectroStun(float duration) 	Electrocute this character.
Wake 	void Wake() 	Wake up this character's AI.
SetSpawnZombineOnMarineKill	void SetSpawnZombineOnMarineKill(bool spawnZombine) 	Sets this character to spawn a zombie marine if it kills a marine.
SetHealthBarColor 	void SetHealthBarColor(int r, int g, int b, int a) 	Sets the health bar color. Cheaper than spawning an asw_health_bar. Set alpha to 0 to disable the health bar.
SetHealthBarScale 	void SetHealthBarScale(float scale) 	Sets the health bar scale. Negative scales hide the health bar if the alien's health is full.
SetHealthBarOffset 	void SetHealthBarOffset(Vector offset) 	Sets the health bar offset in local space.
=== CBaseTrigger ===
Extends CBaseEntity
Entity class for triggers.
==== Methods ====
Function 	Signature 	Description
Disable 	void Disable() 	Disable the trigger
Enable 	void Enable() 	Enable the trigger
IsTouching 	bool IsTouching(handle entity)	Checks whether the passed entity is touching the trigger.
GetNumTouching	int GetNumTouching() 	Returns the number of entities currently touching the trigger.
GetTouching 	handle GetTouching(int index) 	Returns an entity currently touching the trigger. If index is not from 0 to GetNumTouching() - 1, returns null.
=== CASW_Marine ===
Extends CASW_Inhabitable_NPC
==== Methods ====
Function 	Signature 	Description
AddSlowHeal 	void AddSlowHeal(int health, float healratescale, handle healer, handle weapon)	Heals the marine. Medic and weapon can be null, those are used for stats.
BecomeInfested 	void BecomeInfested() 	Infests the marine.
CureInfestation 	void CureInfestation() 	Cures an infestation.
DropWeapon 	void DropWeapon(int slot) 	Makes the marine drop a weapon.
Extinguish 	void Extinguish() 	Extinguish a burning marine.
GetCommander 	CBasePlayer GetCommander() 	Get the player that owns the marine.
GetInventoryTable 	void GetInventoryTable(table) 	Fills the passed table with the marine's inventory.
GetInvTable 	table GetInvTable() 	-DEPRECATED- Returns a table of the marine's inventory data.
GetMarineName 	string GetMarineName() 	-DEPRECATED- Returns the translated marine name. This changes based on the host's game language.
GetMarineProfile 	int GetMarineProfile() 	Returns an integer representing which marine profile is in use. Constants are available: ASW_MARINE_PROFILE_SARGE, ASW_MARINE_PROFILE_WILDCAT, ASW_MARINE_PROFILE_FAITH, etc.
GiveAmmo 	void GiveAmmo(int amount, int ammoIndex) 	Gives the marine ammo for the specified ammo index.
GiveWeapon 	void GiveWeapon(string weaponName, int slot) 	Gives the marine a weapon.
Ignite 	void Ignite(float duration) 	Ignites the marine into flames.
IsInhabited 	bool IsInhabited() 	True if the marine is a player, false if the marine is a bot.
Knockdown 	void Knockdown(Vector velocity) 	Knocks down the marine with desired velocity.
OrderMoveTo 	void OrderMoveTo(float yaw, Vector position) 	Order an uninhabited marine to move to this position.
RemoveWeapon 	void RemoveWeapon(int slot) 	Removes a weapon from the marine.
SetKnockedOut 	void SetKnockedOut(bool knockedOut) 	Used to knock out and incapacitate a marine, or revive them.
Speak 	void Speak(string concept, float delay, string criteria) 	Makes the marine speak a response rules concept.
SwitchWeapon 	bool SwitchWeapon(int slot) 	Make the marine switch to a weapon.
SetMarineRolls 	void SetMarineRolls(bool bRolls) 	Send true to make a marine roll when the player presses the roll button, send false to make a marine jump (Changing asw_marine_rolls ConVar overrides all marines' roll/jump behavior).
SetSpawnZombineOnDeath 	void SetSpawnZombineOnDeath(bool bSpawn) 	Makes a zombine spawn when the marine dies.
SetColorCorrection 	void SetColorCorrection(handle entity) 	Force this character to use a specific color_correction.
SetFogController 	void SetFogController(handle entity) 	Force this character to use a specific env_fog_controller.
SetPostProcessController	void SetPostProcessController(handle entity) 	Force this character to use a specific postprocess_controller.
SetTonemapController 	void SetTonemapController(handle entity) 	Force this character to use a specific env_tonemap_controller.
Example of how a script writer might set up the handles, with a table g_fx_t (For SetColorCorrection, SetFogController, SetPostProcessController, SetTonemapController functions usage).
function OnMissionStart()
{	
	InitFXTable();
}
g_fx_t <- {};
function InitFXTable()
{
// color corrections
	local cc_kvs_t = 
	{ 
		// shouldnt be edited
		maxfalloff = -1
		spawnflags = 2
		
		// can be edited
		fadeOutDuration = 0.5
		filename = "scripts/colorcorrection/cc_std_sepia.raw"
	};
	g_fx_t[ "cc_sepia" ] <- SpawnEntityFromTable( "color_correction", cc_kvs_t );
	
	cc_kvs_t[ "filename" ] = "scripts/colorcorrection/infested_green.raw";
	g_fx_t[ "cc_red" ] <- SpawnEntityFromTable( "color_correction", cc_kvs_t );
	
// fog controllers
	local fog_kvs_t =
	{
		// shouldnt be edited
		fogenable = 1
		
		// can be edited
		foglerptime = 0
		fogstart = 500
		fogend = 2000
		fogcolor = "192 70 70"
		fogmaxdensity = 0.4
	};
	g_fx_t[ "fog_red" ] <- SpawnEntityFromTable( "env_fog_controller", fog_kvs_t );
	
	fog_kvs_t[ "fogcolor" ] = "50 255 50";
	fog_kvs_t[ "fogstart" ] = 0;
	g_fx_t[ "fog_green" ] <- SpawnEntityFromTable( "env_fog_controller", fog_kvs_t );
// postprocess controllers
	local pp_kvs_t =
	{
		// can be edited
		fadetime = 0.25
		localcontrastedgestrength = 3
		localcontraststrength = 3
		fadetoblackstrength = 0
		screenblurstrength = 0
		depthblurstrength = 0
		depthblurfocaldistance = 0
	};
	g_fx_t[ "pp_contrast_high" ] <- SpawnEntityFromTable( "postprocess_controller", pp_kvs_t );
	
	pp_kvs_t[ "localcontrastedgestrength" ] = 0;
	pp_kvs_t[ "localcontraststrength" ] = 0;
	pp_kvs_t[ "fadetoblackstrength" ] = 0.5;
	pp_kvs_t[ "screenblurstrength" ] = 0.55;
	pp_kvs_t[ "depthblurstrength" ] = 0.2;
	pp_kvs_t[ "depthblurfocaldistance" ] = 0.9;
	g_fx_t[ "pp_blurry" ] <- SpawnEntityFromTable( "postprocess_controller", pp_kvs_t );
// tonemap controllers a little more tricky, have no keyvalues so we are playing with netprops
	local hTNMP = Entities.CreateByClassname( "env_tonemap_controller" );
	NetProps.SetPropBool( hTNMP, "m_bUseCustomAutoExposureMin", true );
	NetProps.SetPropBool( hTNMP, "m_bUseCustomAutoExposureMax", true );
	NetProps.SetPropBool( hTNMP, "m_bUseCustomManualTonemapRate", true );
	NetProps.SetPropFloat( hTNMP, "m_flCustomManualTonemapRate", 0.0 );
	
	NetProps.SetPropFloat( hTNMP, "m_flCustomAutoExposureMin", 0.0 );
	NetProps.SetPropFloat( hTNMP, "m_flCustomAutoExposureMax", 0.0 );
	g_fx_t[ "tnmp_dark" ] <- hTNMP;
}
Accessing the handles example:
function OnGameEvent_marine_infested( params )
{	
	local hMarine = EntIndexToHScript( params[ "entindex" ] );
	
	hMarine.SetFogController( g_fx_t[ "fog_green" ] );
	hMarine.SetPostProcessController( g_fx_t[ "pp_blurry" ] );
	hMarine.SetTonemapController( g_fx_t[ "tnmp_dark" ] );
}
function OnGameEvent_marine_infested_cured( params )
{
	local hMarine = EntIndexToHScript( params[ "entindex" ] );
	
	hMarine.SetFogController( null );
	hMarine.SetPostProcessController( null );
	hMarine.SetTonemapController( null );
}
=== CASW_Alien ===
Extends CASW_Inhabitable_NPC
==== Methods ====
Function 	Signature 	Description
ChaseNearestMarine 	void ChaseNearestMarine() 	Order the alien to chase the nearest marine.
ClearOrders 	void ClearOrders() 	Clear the alien's orders.
ElectroStun 	void ElectroStun(float duration) 	Stuns the alien.
Extinguish 	void Extinguish() 	Extinguish a burning alien.
Freeze 	void Freeze(float freezeTime) 	Freezes the alien.
Ignite 	void Ignite(float duration) 	Ignites the alien into flames.
OrderMoveTo 	bool OrderMoveTo(handle entity, bool ignoreMarines)	Order the alien to move to an entity handle, second parameter ignore marines.
Wake 	void Wake(bool bFireOutput) 	Wake up the alien, with option to fire output.
SetSpawnZombineOnMarineKill	void SetSpawnZombineOnMarineKill(bool bSpawn) 	Makes a zombine spawn after killing a marine.
=== CASW_Parasite ===
Extends CASW_Alien
==== Methods ====
Function 	Signature 	Description
JumpAttack	void JumpAttack()	Jump and attack something.
=== CASW_Buzzer ===
Extends CASW_Inhabitable_NPC
==== Methods ====
Function 	Signature 	Description
ChaseNearestMarine	void ChaseNearestMarine() 	Order the buzzer to chase the nearest marine.
ClearOrders 	void ClearOrders() 	Clear the buzzer's orders.
ElectroStun 	void ElectroStun(float duration) 	Stuns the buzzer.
Extinguish 	void Extinguish() 	Extinguish a burning buzzer.
Freeze 	void Freeze(float freezeTime) 	Freezes the buzzer.
Ignite 	void Ignite(float duration) 	Ignites the buzzer into flames.
OrderMoveTo 	bool OrderMoveTo(handle entity, bool ignoreMarines)	Order the buzzer to move to an entity handle, second parameter ignore marines.
Wake 	void Wake(bool bFireOutput) 	Wake up the buzzer, with option to fire output.
=== CASW_Colonist ===
Extends CASW_Inhabitable_NPC
==== Methods ====
Function 	Signature 	Description
BecomeInfested 	void BecomeInfested() 	Infests the colonist.
CureInfestation	void CureInfestation() 	Cures an infestation.
DropWeapon 	void DropWeapon() 	Makes the colonist drop a weapon.
Extinguish 	void Extinguish() 	Extinguish a burning colonist.
GiveWeapon 	void GiveWeapon(string weaponName)	Gives the colonist a weapon.
Ignite 	void Ignite(float duration) 	Ignites the colonist into flames.
RemoveWeapon 	void RemoveWeapon() 	Removes a weapon from the colonist.
=== CBaseCombatWeapon ===
Extends CBaseAnimating
==== Methods ====
Function 	Signature 	Description
Clip1 	int Clip1() 	Get the weapon's current primary clip. Note: also used to get the offhand item's count.
Clip2 	int Clip2() 	Get the weapon's current secondary clip.
GetClips 	int GetClips() 	Get the amount of clips for weapon.
GetDefaultClip1	int GetDefaultClip1() 	Get the weapon's default primary clip. Note: also used to get the offhand item's default count.
GetDefaultClip2	int GetDefaultClip2() 	Get the weapon's default secondary clip.
GetMaxAmmo1 	int GetMaxAmmo1() 	Get max primary ammo for weapon.
GetMaxAmmo2 	int GetMaxAmmo2() 	Get max secondary ammo for weapon.
GetMaxClip1 	int GetMaxClip1() 	Get max primary clip for weapon. Note: also used to get the offhand item's max count.
GetMaxClip2 	int GetMaxClip2() 	Get max secondary clip for weapon.
GetMaxClips 	int GetMaxClips() 	Get max total clips for weapon.
SetClip1 	void SetClip1(int amount)	Set weapon's primary clip. Note: also used to set the offhand item's count.
SetClip2 	void SetClip2(int amount)	Set weapon's secondary clip.
SetClips 	void SetClips(int amount)	Set weapon's total clips.
=== CASW_Sentry_Base ===
Extends CBaseAnimating
==== Methods ====
Function 	Signature 	Description
GetAmmo 	int GetAmmo() 	Get the sentry's current ammo.
GetMaxAmmo 	int GetMaxAmmo() 	Get the sentry's max allowed ammo.
GetSentryTop	CASW_Sentry_Top GetSentryTop()	Get a handle of the sentry's top.
SetAmmo 	void SetAmmo() 	Set the sentry's current ammo.
=== CASW_Sentry_Top ===
Extends CBaseAnimating
==== Methods ====
Function 	Signature 	Description
PreventFiringUntil	void PreventFiringUntil(float nextFireTime)	Prevents sentry from firing until the time set.
=== CASW_Weapon_Sentry ===
Extends CASW_Weapon
==== Methods ====
Function 	Signature 	Description
GetSentryAmmo	int GetSentryAmmo() 	Returns the amount of ammo for the contained sentry.
SetSentryAmmo	void SetSentryAmmo(int nAmmo)	Changes the amount of ammo for the contained sentry.
=== CAI_DynamicLink ===
Extends CBaseEntity
==== Methods ====
Function 	Signature 	Description
FindLink 	CAI_Link FindLink() 	Returns the node link or null if not found.
GetDestNode	CAI_Node GetDestNode()	Returns the node on the other end of the link.
GetSrcNode 	CAI_Node GetSrcNode() 	Returns the node that 'owns' this link.
IsLinkValid	bool IsLinkValid() 	Returns true if the dynamic link has a corresponding node link.
TurnOff 	void TurnOff() 	Disables node link connections.
TurnOn 	void TurnOn() 	Enables node link connections.
=== CAI_Link ===
This is a script handle class for node links.
==== Methods ====
Function 	Signature 	Description
GetAcceptedMoveTypes	int GetAcceptedMoveTypes(int hullType) 	Get the Capability_T of motions acceptable for passed hull type.
GetDangerCount 	int GetDangerCount() 	Returns how many dangerous things are near this link.
GetDestNodeID 	int GetDestNodeID() 	Get the ID of the node on the other end of the link.
GetDynamicLink 	CAI_DynamicLink GetDynamicLink() 	Returns the info_node_link entity for this link or null if it doesn't exist.
GetLinkInfo 	int GetLinkInfo() 	Get other information about this link.
GetSrcNodeID 	int GetSrcNodeID() 	Get the ID of the node that 'owns' this link.
GetTimeStaleExpires 	float GetTimeStaleExpires() 	Returns the amount of time until this link is available again.
SetAcceptedMoveTypes	void SetAcceptedMoveTypes(int hullType, int moveType)	Set the Capability_T of motions acceptable for passed hull type.
SetDangerCount 	void SetDangerCount(int count) 	Sets how many dangerous things are near this link.
SetLinkInfo 	void SetLinkInfo(int info) 	Sets information about this link.
SetTimeStaleExpires 	void SetTimeStaleExpires(float duration) 	Sets the amount of time until this link is available again.
=== CAI_Node ===
This is a script handle class for nodes.
==== Methods ====
Function 	Signature 	Description
AddLink 	void AddLink(CAI_Link link) 	Adds a link to this node.
ClearLinks 	void ClearLinks() 	Clears all links from node.
DebugDrawNode 	void DebugDrawNode(int r, int g, int b, float duration)	Draw node as a box of the given color for x seconds.
GetId 	int GetId() 	Get node ID.
GetInfo 	int GetInfo() 	Get node info.
GetLink 	CAI_Link GetLink(int nodeID) 	Get link to dest node ID.
GetLinkByIndex	CAI_Link GetLinkByIndex(int index) 	Get link by index.
GetOrigin 	Vector GetOrigin() 	Get node origin.
GetPosition 	Vector GetPosition(int hullType) 	Get hull specific position for a node.
GetType 	int GetType() 	Get node type.
GetYaw 	float GetYaw() 	Get node Yaw.
GetZone 	int GetZone() 	Get node zone.
IsLocked 	bool IsLocked() 	Returns true if node is locked.
Lock 	void Lock(float duration) 	Locks the node for x seconds.
NumLinks 	int NumLinks() 	Number of links for node.
RemoveLink 	void RemoveLink(CAI_Link link) 	Removes a link from this node.
SetInfo 	void SetInfo(int info) 	Set node info.
SetType 	void SetType(int type) 	Set node type.
SetZone 	void SetZone(int zone) 	Set node zone.
Unlock 	void Unlock() 	Unlocks the node.
=== CEnvEntityMaker ===
Extends CBaseEntity
Script handle class for env_entity_maker. 
==== Methods ====
Function 	Signature 	Description
SpawnEntity 	void SpawnEntity() 	Create an entity at the location of the maker
SpawnEntityAtEntityOrigin 	void SpawnEntityAtEntityOrigin(CBaseEntity entity) 	Create an entity at the location of a specified entity instance.
SpawnEntityAtLocation 	void SpawnEntityAtLocation(Vector origin, Vector orientation)	Create an entity at a specified location and orientation, orientation is Euler angle in degrees (pitch, yaw, roll).
SpawnEntityAtNamedEntityOrigin	void SpawnEntityAtNamedEntityOrigin(string targetName) 	Create an entity at the location of a named entity.
=== CPointTemplate ===
Extends CBaseEntity
Script handle class for point_template.
==== Hooks ====
;table PreSpawnInstance(string entityClass, string entityName)
:If this is defined, it will be called right before the entity is created, and any KeyValues returned will be assigned to the entity.
function PreSpawnInstance( entityClass, entityName )
{
	local keyvalues =
	{ 
 		rendercolor = "0 255 0"
 		targetname = "mySpawnedEntity"
	}
	return keyvalues
	
}
;void PostSpawn(table entities)
:Called after the entities are spawned. A table with the handles of the spawned entities indexed by name is passed to the function. Could use this to connect outputs or do whatever needs to be done after the entity was created. 
function PostSpawn( entities )
{
	foreach( name, handle in entities )
	{
		printl( name + ": " + handle )
	}
}
=== CSceneEntity ===
Extends CBaseEntity
==== Methods ====
Function 	Signature 	Description
AddBroadcastTeamTarget 	void AddBroadcastTeamTarget(int index) 	Adds a team (by index) to the broadcast list.
EstimateLength 	float EstimateLength() 	Returns length of this scene in seconds.
FindNamedEntity 	handle FindNamedEntity(string reference) 	given an entity reference, such as !target, get actual entity from scene object.
IsPaused 	bool IsPaused() 	If this scene is currently paused.
IsPlayingBack 	bool IsPlayingBack() 	If this scene is currently playing.
LoadSceneFromString 	bool LoadSceneFromString(string sceneName, string scene)	Given a dummy scene name and a vcd string, load the scene.
RemoveBroadcastTeamTarget	void RemoveBroadcastTeamTarget(int index) 	Removes a team (by index) from the broadcast list.
=== CTriggerCamera ===
Extends CBaseEntity
==== Methods ====
Function	Signature 	Description
GetFov 	int GetFov() 	Get cameras current Field Of View setting as integer.
SetFov 	void SetFov(int fov, float rate)	Set cameras current FOV in integer degrees and FOV change rate as float.
=== CASW_Grenade_Cluster ===
Extends CBaseCombatCharacter
==== Methods ====
Function 	Signature 	Description
Disable 	void Disable() 	Disable the grenade.
Enable 	void Enable() 	Enable the grenade, different time setting like explosion time correctly adjusted after disable state.
EnableWithReset 	void EnableWithReset() 	Enable the grenade, different time setting like explosion time reset like grenade is newly created.
ReflectBack 	void ReflectBack() 	Reflect grenade preciselly to firer marine position if marine is alive, ReflectBackSimple used otherwise.
ReflectBackSimple	void ReflectBackSimple()	Reflect grenade near to initial fire position.
ReflectRandomly 	void ReflectRandomly() 	Reflect grenade to random porition.
==== Hooks ====
;void ScriptStartCameraShot(string shotType, handle sceneEntity, handle actor1, handle actor2, float duration)
: Called from SceneEntity in response to a CChoreoEvent::CAMERA sent from a VCD. 
=== CDirector ===
Game Instance: Director
Provides methods for reading information and forcing events in the AI Director.
==== Methods ====
Function 	Signature 	Description
FindHordePosition 	Vector FindHordePosition(bool north) 	Get a random position where a horde can spawn (returns null on fail).
GetAlienCount 	int GetAlienCount() 	Returns number of aliens currently spawned.
GetIntensity 	float GetIntensity(CBaseEntity marine) 	Get the intensity value for a marine.
GetMaxIntensity 	float GetMaxIntensity() 	Get the maximum intensity value for all living marines.
GetTimeToNextHorde 	float GetTimeToNextHorde() 	Get the current number of seconds until the director will try to spawn a horde.
IsOfflineGame 	bool IsOfflineGame() 	Return true if game is in single player.
IsSpawningHorde 	int IsSpawningHorde() 	Get the number of aliens remaining to spawn in the current horde.
MissionComplete 	void MissionComplete(bool completed) 	Completes the mission if true.
ResetIntensity 	void ResetIntensity(CBaseEntity marine) 	Reset the intensity value for a marine to zero.
ResetIntensityForAllMarines	void ResetIntensityForAllMarines() 	Reset the intensity value for all marines to zero.
RestartMission 	void RestartMission() 	Restarts the mission.
SetTimeToNextHorde 	void SetTimeToNextHorde(float seconds) 	Force the horde countdown timer to be set to this number of seconds.
SpawnAlienAt 	handle SpawnAlienAt(string alienClass, Vector position, Vector angles) 	Spawn an alien by class name.
SpawnAlienBatch 	int SpawnAlienBatch(string alienClass, int aliens, Vector position, Vector angles)	Spawn a group of aliens by class name.
SpawnAlienAuto 	bool SpawnAlienAuto(string alienClass) 	Spawn an alien automatically near the marines.
SpawnHordeSoon 	void SpawnHordeSoon() 	Queue a horde to spawn soon (the same logic as when a hack starts).
StartFinale 	void StartFinale() 	Spawn a horde every few seconds for the rest of the level.
StartHoldout 	void StartHoldout() 	Starts spawning a horde every few seconds until stopped.
StopHoldout 	void StopHoldout() 	Stops spawning hordes.
ValidSpawnPoint 	bool ValidSpawnPoint(Vector position, Vector mins, Vector maxs) 	Return true if the position is a valid spawn point.
GetMinNPCClassIndex 	int GetMinNPCClassIndex() 	Returns the minimum NPC class index. Class indexes that are negative cannot be used in spawners. -1 is reserved for "no class".
GetMaxNPCClassIndex 	int GetMaxNPCClassIndex() 	Returns the maximum NPC class index.
GetNPCClassName 	string GetNPCClassName(int index) 	Returns the NPC classname associated with a given index.
GetNPCClassIndex 	int GetNPCClassIndex(string classname) 	Returns the NPC class index associated with a given classname, or -1 if there is none.
GetNPCHordeSound 	string GetNPCHordeSound(int index) 	Returns the horde sound name for a given NPC class index. This can be used to roughly categorize enemies into factions.
GetNPCHullType 	int GetNPCHullType(int index) 	Returns the hull type (for example, HULL_MEDIUMBIG) of an NPC class.
GetNPCMins 	Vector GetNPCMins(int index) 	Returns the component-wise minimum coordinate on the given NPC class's hull. (For hull traces)
GetNPCMaxs 	Vector GetNPCMaxs(int index) 	Returns the component-wise maximum coordinate on the given NPC class's hull. (For hull traces)
=== CEntities ===
Game Instance: Entities
An interface to find and iterate over the script handles for the entities in play. 
To iterate over a set of entities, pass null to the previous argument in the appropriate method to start an iteration, or reference to a previously found entity to continue a search.
==== Methods ====
Function 	Signature 	Description
CreateByClassname 	handle CreateByClassname(string class) 	Creates an entity by class name.
FindByClassname 	handle FindByClassname(handle previous, string class) 	Find entities by class name.
FindByClassnameNearest	handle FindByClassnameNearest(string class, Vector origin, float radius) 	Find the entity with the given class name nearest to the specified point.
FindByClassnameWithin 	handle FindByClassnameWithin(handle previous, string class, Vector origin, float radius)	Find entities by class name within a radius.
FindByModel 	handle FindByModel(handle previous, string filename) 	Find entities by model name.
FindByName 	handle FindByName(handle previous, string name) 	Find entities by name.
FindByNameNearest 	handle FindByNameNearest(string name, Vector origin, float radius) 	Find entities by name nearest to a point.
FindByNameWithin 	handle FindByNameWithin(handle previous, string name, Vector origin, float radius) 	Find entities by name within a radius.
FindByTarget 	handle FindByTarget(handle previous, string targetname) 	Find entities by its target.
FindInSphere 	handle FindInSphere(handle previous, Vector origin, float radius) 	Find entities within a radius.
First 	handle First() 	Begin an iteration over the list of entities.
Next 	handle Next(handle previous) 	Continue an iteration over the list of entities, providing reference to a previously found entity.
IsValid 	bool IsValid() 	Whether the handle belongs to a valid entity.
=== CNetPropManager ===
Game Instance: NetProps
Allows reading and updating the network properties of an entity.
If the entity has multiple netprops with the same name, the data table name can be prepended with a dot to specify which one to use (e.g. "m_Collision.m_nSolidType").
==== Methods ====
Function 	Signature 	Description
GetPropArraySize 	int GetPropArraySize(CBaseEntity entity, string propertyName) 	Returns the size of an netprop array, or -1.
GetPropBool 	bool GetPropBool(CBaseEntity entity, string propertyName) 	Reads a boolean valued netprop.
GetPropBoolArray 	bool GetPropBoolArray(CBaseEntity entity, string propertyName, int arrayElement) 	Reads a boolean valued netprop from an array.
GetPropEntity 	CBaseEntity GetPropEntity(CBaseEntity entity, string propertyName) 	Reads an EHANDLE valued netprop (21 bit integer). Returns the script handle of the entity.
GetPropEntityArray	CBaseEntity GetPropEntityArray(CBaseEntity entity, string propertyName, int arrayElement) 	Reads an EHANDLE valued netprop (21 bit integer) from an array. Returns the script handle of the entity.
GetPropFloat 	float GetPropFloat(CBaseEntity entity, string propertyName) 	Reads a float valued netprop.
GetPropFloatArray 	float GetPropFloatArray(CBaseEntity entity, string propertyName, int arrayElement) 	Reads a float valued netprop from an array.
GetPropInfo 	void GetPropInfo(CBaseEntity entity, string propertyName, int arrayElement, table) 	Fills in a passed table with property info for the provided entity.
GetPropInt 	int GetPropInt(CBaseEntity entity, string propertyName) 	Reads an integer valued netprop.
GetPropIntArray 	int GetPropIntArray(CBaseEntity entity, string propertyName, int arrayElement) 	Reads an integer valued netprop from an array.
GetPropString 	string GetPropString(CBaseEntity entity, string propertyName) 	Reads an string valued netprop.
GetPropStringArray	string GetPropStringArray(CBaseEntity entity, string propertyName, int arrayElement) 	Reads an string valued netprop from an array.
GetPropType 	string GetPropType(CBaseEntity entity, string propertyName) 	Returns the name of the netprop type as a string.
GetPropVector 	Vector GetPropVector(CBaseEntity entity, string propertyName) 	Reads a 3D vector valued netprop.
GetPropVectorArray	Vector GetPropVectorArray(CBaseEntity entity, string propertyName, int arrayElement) 	Reads a 3D vector valued netprop from an array.
GetTable 	void GetTable(CBaseEntity entity, int propType, table) 	Fills in a passed table with all props of a specified type for the provided entity (set propType to 0 for SendTable or 1 for DataMap).
HasProp 	bool HasProp(CBaseEntity entity, string propertyName) 	Checks if a netprop exists.
SetPropBool 	void SetPropBool(CBaseEntity entity, string propertyName, bool value) 	Sets a netprop to the specified boolean.
SetPropBoolArray 	void SetPropBoolArray(CBaseEntity entity, string propertyName, bool value, int arrayElement) 	Sets a netprop from an array to the specified boolean.
SetPropEntity 	void SetPropEntity(CBaseEntity entity, string propertyName, CBaseEntity value) 	Sets an EHANDLE valued netprop (21 bit integer) to reference the specified entity.
SetPropEntityArray	void SetPropEntityArray(CBaseEntity entity, string propertyName, CBaseEntity value, int arrayElement)	Sets an EHANDLE valued netprop (21 bit integer) from an array to reference the specified entity.
SetPropFloat 	void SetPropFloat(CBaseEntity entity, string propertyName, float value) 	Sets a netprop to the specified float.
SetPropFloatArray 	void SetPropFloatArray(CBaseEntity entity, string propertyName, float value, int arrayElement) 	Sets a netprop from an array to the specified float.
SetPropInt 	void SetPropInt(CBaseEntity entity, string propertyName, int value) 	Sets a netprop to the specified integer.
SetPropIntArray 	void SetPropInt(CBaseEntity entity, string propertyName, int value, int arrayElement) 	Sets a netprop from an array to the specified integer.
SetPropString 	void SetPropString(CBaseEntity entity, string propertyName, string value) 	Sets a netprop to the specified string.
SetPropStringArray	void SetPropStringArray(CBaseEntity entity, string propertyName, string value, int arrayElement) 	Sets a netprop from an array to the specified string.
SetPropVector 	void SetPropVector(CBaseEntity entity, string propertyName, Vector value) 	Sets a netprop to the specified vector.
SetPropVectorArray	void SetPropVectorArray(CBaseEntity entity, string propertyName, Vector value, int arrayElement) 	Sets a netprop from an array to the specified vector.
=== CScriptInfoNodes ===
Game Instance: InfoNodes
Allows reading info_node data.
==== Methods ====
Function 	Signature 	Description
CreateLink 	CAI_Link CreateLink(int srcID, int destID) 	Creates a new link from srcID to destID and returns the link.
GetAllNearestNodes 	int GetAllNearestNodes(CBaseEntity npc, Vector position, int maxNodes, table)	Fills a passed in table of x nearest nodes to origin with optional npc parameter, and returns number of nodes found.
GetAllNodes 	void GetAllNodes(table) 	Fills a passed in table of all nodes.
GetNearestNodeToPoint	CAI_Node GetNearestNodeToPoint(CBaseEntity npc, Vector position) 	Returns the node nearest to origin with optional npc parameter.
GetNumNodes 	int GetNumNodes() 	Returns the amount of info_nodes in the network array.
GetNodeOrigin 	Vector GetNodeOrigin(int nodeID) 	Returns the origin of the node.
GetNodePosition 	Vector GetNodePosition(int nodeID, int hull) 	Returns the hull specific origin of the node.
GetNodeType 	int GetNodeType(int nodeID) 	Returns the type of node.
Example of spawning stuff at random info_node origins.
for( local i = 0; i < 5; i++ )
{
	local node_id = RandomInt( 0, InfoNodes.GetNumNodes() - 1 );
	local node_type = InfoNodes.GetNodeType( node_id );
	
	if ( node_type != NODE_GROUND )
		continue;
	
	local ammo = Entities.CreateByClassname( "asw_ammo_drop" );
	ammo.SetOrigin( InfoNodes.GetNodeOrigin( node_id ) );
	ammo.SetName( "info_node_ammospawn_" + i );
	ammo.Spawn();
	
	//Director.SpawnAlienAt( "asw_shieldbug", InfoNodes.GetNodePosition( node_id, HULL_WIDE_SHORT ), Vector( 0, 0, 0 ) );
}
=== CScriptEntityOutputs ===
Game Instance: EntityOutputs
Allows reading entity output data.
==== Methods ====
Function 	Signature 	Description
AddOutput 	void AddOutput(handle entity, string outputName, string targetName, string inputName, string parameter, float delay, int timesToFire)	Adds a new output to the entity.
GetNumElements	int GetNumElements(handle entity, string outputName) 	Returns the number of array elements.
GetOutputTable	void GetOutputTable(handle entity, string outputName, table, int arrayElement) 	Returns a table of output information.
GetValue 	variable GetValue(handle entity, string outputName) 	Returns the value of the output if it has one. (can be used to read math_counter OutValue)
HasAction 	bool HasAction(handle entity, string outputName) 	Returns true if an action exists for the output.
HasOutput 	bool HasOutput(handle entity, string outputName) 	Returns true if the output exists.
RemoveOutput 	void RemoveOutput(handle entity, string outputName, string targetName, string inputName, string parameter) 	Removes an output from the entity.
Example of looping through entity outputs.
ent <- null;
while( ent = Entities.FindByClassname(ent, "trigger_once") )
{
	if ( EntityOutputs.HasAction( ent, "OnTrigger" ) )
	{
		local numElements = EntityOutputs.GetNumElements( ent, "OnTrigger" );
		for ( local i = 0; i < numElements; i++ )
		{
			local tbl = {};
			EntityOutputs.GetOutputTable( ent, "OnTrigger", tbl, i );
			DeepPrintTable( tbl );
		}
	}
}
=== CScriptTempEnts ===
Game Instance: TempEnts
Allows creating Temporary Entities on clients.
==== Methods ====
Function 	Signature 	Description
Create 	void Create(handle player, string name, float delay, table)	Queue a temp entity for transmission on a client from a passed table of SendProp data. Passing null for a player will playback Temp Entity on all clients.
GetNames 	void GetNames(string name, table) 	Fills in a passed table with the names of all temp entities
GetPropTypes	void GetPropTypes(table) 	Fills in a passed table with all SendProps and their types for the temp entity.
=== Convars ===
Game Instance: Convars
Provides an interface for getting and setting convars on the server.
==== Methods ====
Function 	Signature 	Description
ExecuteConCommand 	void ExecuteConCommand(string cmd) 	Executes the convar command.
GetClientConvarValue	string GetClientConvarValue(int entindex, string name)	Returns the convar value for the entindex as a string. Only works with client convars with the FCVAR_USERINFO flag.
GetStr 	string GetStr(string name) 	Returns the convar as a string. May return null if no such convar.
GetFloat 	float GetFloat(string name) 	Returns the convar as a float. May return null if no such convar.
SetValue 	void SetValue(string name, value) 	Sets the value of the convar to a numeric value.
SetValueString 	void SetValueString(string name, string value) 	Sets the value of the convar to a string.
=== CScriptResponseCriteria ===
Game Instance: ResponseCriteria
Allows reading the response rules of an entity. 
==== Methods ====
Function 	Signature 	Description
GetTable 	void GetTable(CBaseEntity entity, table) 	Returns a table of all criteria.
GetValue 	string GetValue(CBaseEntity entity, string criteriaName) 	Returns a string.
HasCriterion	bool HasCriterion(CBaseEntity entity, string criteriaName)	Returns true if the criterion exists.
=== CASW_Mission_Chooser_VScript ===
Game Instance: MissionChooser
Provides an interface for querying campaigns, missions, and challenges on the server.
==== Methods ====
Function 	Signature 	Description
CountCampaigns 	int CountCampaigns() 	Returns the number of installed campaigns.
CountChallenges 	int CountChallenges() 	Returns the number of installed challenges.
CountMissions 	int CountMissions() 	Returns the number of installed missions.
GetCampaign 	table GetCampaign(int index) 	Creates a table containing campaign data for a campaign by index.
GetCampaignByName 	table GetCampaignByName(string name) 	Creates a table containing campaign data for a campaign by name.
GetChallenge 	table GetChallenge(int index) 	Creates a table containing challenge data for a challenge by index.
GetChallengeByName 	table GetChallengeByName(string name)	Creates a table containing challenge data for a challenge by name.
GetCurrentCampaign 	table GetCurrentCampaign() 	Creates a table containing campaign data for the current campaign.
GetCurrentChallenge	table GetCurrentChallenge() 	Creates a table containing challenge data for the current challenge.
GetCurrentMission 	table GetCurrentMission() 	Creates a table containing mission overview data for the current mission.
GetMission 	table GetMission(int index) 	Creates a table containing mission overview data for a mission by index.
GetMissionByName 	table GetMissionByName(string name) 	Creates a table containing mission overview data for a mission by name.
=== CASW_Deathmatch_VScript ===
Game Instance: Deathmatch
Allows challenge modes to modify deathmatch scores.
==== Methods ====
Function 	Signature 	Description
ResetScores 	void ResetScores() 	Clears all scores.
GetKills 	int GetKills(handle marineOrResource) 	Returns a marine's kill count.
SetKills 	void SetKills(handle marineOrResource, int kills) 	Overrides a marine's kill count.
GetDeaths 	int GetKills(handle marineOrResource) 	Returns a marine's death count.
SetDeaths 	void SetDeaths(handle marineOrResource, int deaths)	Overrides a marine's death count.
GetTeamScore 	int GetKills(int teamNumber) 	Returns a team's score. Team numbers are TEAM_ALPHA (2) for the yellow team and TEAM_BETA (3) for the blue team.
SetTeamScore 	void SetTeamScore(int teamNumber, int score) 	Overrides a team's score. Team numbers are TEAM_ALPHA (2) for the yellow team and TEAM_BETA (3) for the blue team.
CheckFragLimit 	bool CheckFragLimit(handle marineOrResource) 	Checks if a player or their team should win the match. Call this after modifying a team's score or a marine's kill count.
ResetKillingSpree 	void ResetKillingSpree(handle marineOrResource) 	Reset a marine's killing spree counter.
IncreaseKillingSpree	void IncreaseKillingSpree(handle marineOrResource) 	Record a kill for a marine's killing spree counter.
GetKillingSpree 	int GetKillingSpree(handle marineOrResource) 	Get a marine's current killing spree counter. This is always 0 if rd_quake_sounds is 0.
=== CPlayerVoiceListener ===
==== Methods ====
Function 	Signature 	Description
GetPlayerSpeechDuration	float GetPlayerSpeechDuration(int playerIndex)	Returns the number of seconds the player has been continuously speaking.
IsPlayerSpeaking 	bool IsPlayerSpeaking(int playerIndex) 	Returns whether the player specified is speaking.
IsValid 	bool IsValid() 	Whether the handle belongs to a valid entity.
=== CRD_HUD_VScript ===
Classname of the entity: rd_hud_vscript.
==== Methods ====
Function 	Signature 	Description
LookupTexture (Client) 	int LookupTexture(string filename) 	Loads a vmt file for use in Paint. Should not be called while the Paint function is running. Instead, store the texture number and reuse it.
LookupFont (Client) 	int LookupFont(string name) 	Gets the ID of a font defined in SwarmSchemeNew.res. Examples of font names include Default, DefaultExtraLarge, DefaultVerySmall, DefaultBlur. Should not be called while the Paint function is running. Instead, store the font ID and reuse it.
GetFontTall (Client) 	int GetFontTall(int font) 	Returns the height in pixels of a font. Fast and safe to call from anywhere.
GetTextWide (Client) 	int GetTextWide(int font, string text) 	Returns the width in pixels of a string in a given font. Fast and safe to call from anywhere.
PaintText (Client) 	void PaintText(int x, int y, int r, int g, int b, int a, int font, string text) 	Draws a string to the screen in a given color and font, with the top-left corner x pixels from the left edge of the screen and y pixels from the top of the screen. Can only be called during Paint.
PaintRectangle (Client) 	void PaintRectangle(int x0, int y0, int x1, int y1, int r, int g, int b, int a) 	Draws a solid-color rectangle to the screen. Can only be called during Paint.
PaintRectangleFade (Client) 	void PaintRectangleFade(int x0, int y0, int x1, int y1, int r, int g, int b, int a0, int a1, int fadeStart, int fadeEnd, bool horizontal) 	Draws a solid-color rectangle with a gradient alpha channel. Can only be called during paint.
PaintTexturedRectangle (Client) 	void PaintTexturedRectangle(int x0, int y0, int x1, int y1, int r, int g, int b, int a, int texture) 	Draws a textured rectangle to the screen, multiplied by a color. Can only be called during paint.
PaintTexturedRectangleAdvanced (Client)	void PaintTexturedRectangleAdvanced({int x0, int y0, int x1, int y1, int r, int g, int b, int a0, int a1, int a2, int a3, float s0, float t0, float s1, float t1, float angle, int texture})	Takes a table and draws a rectangle to the screen. You can leave out fields from the table if you don't need them. Can only be called during paint.
PaintPolygon (Client) 	void PaintPolygon([{float x, float y, float s, float t}, ...], int r, int g, int b, int a, int texture) 	Draws an arbitrary convex polygon made up of at least three vertices defined by x,y (position) and s,t (texture) coordinates.
GetEntity (Shared) 	handle GetEntity(int index) 	Returns an entity stored in the data. Index must be 0.
GetInt (Shared) 	int GetInt(int index) 	Returns an integer stored in the data. Index can be from 0 to 63.
GetFloat (Shared) 	float GetFloat(int index) 	Returns a float stored in the data. Index can be from 0 to 31.
GetString (Shared) 	string GetString(int index) 	Returns a string stored in the data. Index must be 0.
SetEntity (Server) 	void SetEntity(int index, handle entity) 	Stores an entity handle in the data. Index must be 0.
SetInt (Server) 	void SetInt(int index, int value) 	Stores an integer in the data. Index can be from 0 to 63.
SetFloat (Server) 	void SetFloat(int index, float value) 	Stores a float in the data. Index can be from 0 to 31.
SetString (Server) 	void SetString(int index, string text) 	Stores a string of up to 255 bytes in the data. Index must be 0.
Set up the entity:
local hHud = Entities.CreateByClassname( "rd_hud_vscript" );
hHud.__KeyValueFromString( "client_vscript", "your_nut_file.nut" );
hHud.Spawn();
hHud.Activate();
The client script should define two functions: OnUpdate and Paint.
OnUpdate is called on every client whenever the server changes the entity data, including immediately after the entity spawns on the client.
Paint is called on every client on every frame while the HUD is being drawn.
This entity can hold up to 64 integers, 32 floats, 1 string and 1 entity of data.
An example below on how to display marine's kill count when they kill an alien, for 2 seconds.
Your challenge's .nut file:
function OnGameplayStart()
{
	local hMarine = null;
	while ( hMarine = Entities.FindByClassname( hMarine, "asw_marine" ) )
	{
		local hHud = Entities.CreateByClassname( "rd_hud_vscript" );
		hHud.__KeyValueFromString( "client_vscript", "your_nut_file.nut" );
		hHud.Spawn();
		hHud.Activate();
		hHud.SetEntity( 0, hMarine );
		hHud.SetName( hMarine.GetName() + "_hud" );
		
		hMarine.ValidateScriptScope();
		hMarine.GetScriptScope().nKillCount <- 0;
	}
}
function OnGameEvent_alien_died( params )
{
	if ( !( "marine" in params ) )
		return;
	
	local hMarine = EntIndexToHScript( params["marine"] );
	if ( !hMarine || !hMarine.IsValid() )
		return;
		
	hMarine.GetScriptScope().nKillCount += 1;
		
	local hHud = Entities.FindByName( null, hMarine.GetName() + "_hud" );
	hHud.SetInt( 0, hMarine.GetScriptScope().nKillCount );
	hHud.SetFloat( 0, Time() );
}
Client script file for hud, in this case your_nut_file.nut:
/*
	float 0 - time when last kill was performed
	int 0 - kill count
	
	entity 0 - marine
*/
FONT_DEFAULTLARGE <- self.LookupFont( "DefaultLarge" );
function Paint()
{
	// if we are not playing or not spectating this marine, dont show his kill count
	if ( self.GetEntity(0) != GetLocalPlayer().GetViewNPC() )
		return;
		
	// if more than 2 seconds have passed since last kill, dont show the kill count
	if ( Time() - self.GetFloat(0) > 2.0 )
		return;
		
	self.PaintText( ScreenPosX( 0.5 ), ScreenPosY( 0.2 ), 200, 200, 200, 200, FONT_DEFAULTLARGE, self.GetInt(0).tostring() );
}
// pass in a value from 0.0 to 1.0, 0.0 means the left side of the screen, 1.0 means the right, 0.5 in the middle
function ScreenPosX( fFraction )
{
	return ScreenWidth() * fFraction;
}
// pass in a value from 0.0 to 1.0, 0.0 means the up side of the screen, 1.0 means the down, 0.5 in the middle
function ScreenPosY( fFraction )
{
	return ScreenHeight() * fFraction;
}
Some fonts (use LookupFont to get their IDs as they can change with game updates or Workshop mods):
*DefaultVerySmall
*DefaultVerySmallBlur
*DefaultSmall
*DefaultSmallBlur
*DefaultSmallOutline
*Default
*DefaultBlur
*DefaultShadowed
*DefaultUnderline
*DefaultMedium
*DefaultMediumBlur
*DefaultLarge
*DefaultLargeBlur
*DefaultBold
*DefaultBoldBlur
*DefaultExtraLarge
*DefaultExtraLargeBlur
*Countdown
*CountdownBlur
=== CRD_VGui_VScript ===
Classname of the entity: rd_vgui_vscript. Supports all methods that rd_hud_vscript does, plus:
==== Methods ====
Function 	Signature 	Description
SendInput (Client) 	void SendInput(int value) 	Sends an input to the server. Inputs can be integers between ±16,777,215; larger values may result in floating point precision loss. Inputs will arrive on the server in order. Can only be called during the Control function.
CreateButton (Client) 	CRD_VGui_VScript_Button CreateButton() 	Creates a button that can be targeted by both mice and controllers. Do not create new buttons every frame; buttons exist for the lifetime of the rd_vgui_vscript entity. Instead, move or enable/disable buttons as needed.
GetInteracter (Shared)	CASW_Inhabitable_NPC GetInteracter() 	Returns the character (usually marine) that is allowed to interact with this screen.
SetInteracter (Server)	void SetInteracter(CASW_Inhabitable_NPC interacter)	Sets which character (usually marine) is allowed to interact with this screen.
In addition to the callback functions for rd_hud_vscript, rd_vgui_vscript has the following callback functions:
Control(table) (Client)
The table contains:
*bool mouse (is the player using the mouse to aim? otherwise controller)
*bool keyboard (is the player using the keyboard to act/move? otherwise controller)
*int button (the button code that was pressed)
*bool mouse_left, mouse_right, key_left, key_right, key_up, key_down, key_space, key_enter, controller_left, controller_right, controller_up, controller_down, controller_a, controller_b (whether each button is held)
*int mouse_x, mouse_y (mouse position on screen)
*float move_x, move_y, look_x, look_y (controller stick positions)
*CRD_VGui_VScript_Button focus (currently focused button on controller)
Input(integer) (Shared)
Called on both the client and the server when the client calls self.SendInput. The client can call SetInt, SetFloat, SetString, and SetEntity during this callback. Should only change data stored in the slots of the rd_vgui_vscript entity on the client as this function will be called repeatedly and only those values will be rolled back for prediction. When called on the client, it is followed by a call to the Update callback.
=== CRD_VGui_VScript_Button ===
==== Methods ====
Function 	Signature 	Description
GetX 	int GetX() 	Returns the x coordinate of the left edge of the button, previously set by SetX, SetPos, or SetBounds.
GetY 	int GetY() 	Returns the y coordinate of the top edge of the button, previously set by SetY, SetPos, or SetBounds.
GetWide 	int GetWide() 	Returns the width of the button, previously set by SetWide, SetSize, or SetBounds.
GetTall 	int GetTall() 	Returns the height of the button, previously set by SetTall, SetSize, or SetBounds.
SetX 	void SetX(int x) 	Moves the button.
SetY 	void SetY(int y) 	Moves the button.
SetWide 	void SetWide(int wide) 	Resizes the button.
SetTall 	void SetTall(int tall) 	Resizes the button.
SetPos 	void SetPos(int x, int y) 	Shortcut for calling SetX and SetY.
SetSize 	void SetSize(int wide, int tall) 	Shortcut for calling SetWide and SetTall.
SetBounds 	void SetBounds(int x, int y, int wide, int tall) 	Shortcut for calling SetPos and SetSize.
SetEnabled 	void SetEnabled(bool enabled) 	Enables or disables the button. Disabled buttons cannot be focused by the controller and do not run callbacks.
SetOnClicked 	void SetOnClicked(function() callback) 	Sets a function to be called when the button is clicked with the mouse or activated with the controller. This callback counts as part of the Control function, meaning you can call self.SendInput during the callback.
SetOnCursorMoved 	void SetOnCursorMoved(function(int x, int y) callback)	Sets a function to be called when the mouse is moved over the button. This callback counts as part of the Control function, meaning you can call self.SendInput during the callback.
SetOnCursorEntered	void SetOnCursorEntered(function() callback) 	Sets a function to be called when the mouse is moved onto the button. This callback counts as part of the Control function, meaning you can call self.SendInput during the callback.
SetOnCursorExited 	void SetOnCursorExited(function() callback) 	Sets a function to be called when the mouse is moved off of the button. This callback counts as part of the Control function, meaning you can call self.SendInput during the callback.
SetOnMousePressed 	void SetOnMousePressed(function(bool right) callback) 	Sets a function to be called when a mouse button is pressed over the button. This callback counts as part of the Control function, meaning you can call self.SendInput during the callback.
SetOnMouseReleased	void SetOnMouseReleased(function(bool right) callback)	Sets a function to be called when a mouse button is released over the button. This callback counts as part of the Control function, meaning you can call self.SendInput during the callback.
=== CRD_Computer_VScript ===
Classname of the entity: rd_computer_vscript. Supports all methods that rd_vgui_vscript does, plus:
==== Methods ====
Function 	Signature 	Description
HackCompleted (Server) 	void HackCompleted() 	Call this function to complete the hack. No effect if this entity is not being used as the hack.
SetFastHackEndTime (Server)	void SetFastHackEndTime(float time) 	Sets the deadline for the fast hack. In order for the fast hack to award stat progress and play the failed sound, the computer area must be set to have at least 6 tumblers. The hack must have been initialized, so the earliest this can be called is in the first call to OnOpened.
GetFastHackEndTime (Shared)	float GetFastHackEndTime() 	Returns the deadline for the fast hack. The current time can be determined by calling Time().
GetHackStartTime (Shared) 	float GetHackStartTime() 	Returns the value of Time() when the hack started.
Back (Shared) 	void Back() 	Closes the screen, returning to the menu or exiting the computer.
SetHackProgress (Shared) 	void SetHackProgress(float progress)	Sets the hack progress between 0 (just started) and 1 (ready to call HackCompleted). Can only be called during the Input callback.
In addition to the callback functions for rd_vgui_vscript, rd_computer_vscript has OnOpened and OnClosed callback functions on both the client and the server. The screen resolution is YRes(416) by YRes(312) rather than the usual XRes(640) by YRes(480).
=== CScriptKeyValues ===
Script handle representation of a models $keyvalues block.
Sub keys are instances of the same class.
==== Methods ====
Function 	Signature 	Description
constructor 	 	
FindKey 	CScriptKeyValues FindKey(string keyName)	Find a sub key by the key name.
GetFirstSubKey 	CScriptKeyValues GetFirstSubKey() 	Return the first sub key object.
GetKeyBool 	bool GetKeyBool(string keyName) 	Return the key value as a bool.
GetKeyFloat 	float GetKeyFloat(string keyName) 	Return the key value as a float.
GetKeyInt 	int GetKeyInt(string keyName) 	Return the key value as an integer.
GetKeyString 	string GetKeyString(string keyName) 	Return the key value as a string.
GetNextKey 	handle GetNextKey() 	Return the next neighbor key object to the one the method is called on.
IsKeyEmpty 	bool IsKeyEmpty(string keyName) 	Returns true if the named key has no value.
IsValid 	bool IsValid() 	Whether the handle belongs to a valid entity.
ReleaseKeyValues	void ReleaseKeyValues() 	Releases the contents of the instance.
=== CCallChainer ===
CCallChainer objects collect all functions with a matching prefix in a given scope, then inserts it all into the chains table with the prefix removed. All collected unprefixed functions can then be called in a chain using the class's Call() method, given the method's event argument matches the functions' name.
Whenever a CCallChainer object is created, a function named Dispatch followed by its given prefix will also be created, which the class binds the environment of its Call() method to.
==== Methods ====
Function 	Signature 	Description
constructor 	CCallChainer(string functionPrefix, table scope = null)	Creates a CCallChainer object that'll collect functions that have a matching prefix in the given scope.
PostScriptExecute	void PostScriptExecute() 	Search for all non-native functions with matching prefixes, then push them into the chains table.
Call 	bool Call(string event, any ...) 	Find an unprefixed function name in the chains table and call it with the given arguments.
==== Members ====
Instance	Type 	Description
chains 	table 	Contains names of unprefixed functions, each with an array of functions to call.
prefix 	string	Prefix that functions should have to be added into the chains table. Set by the constructor.
scope 	table 	If set, seek functions in this scope instead. Set by the constructor.
=== CSimpleCallChainer ===
Intended to be simpler to use than CCallChainer, the class CSimpleCallChainer holds only a single chain of functions inside an array instead of multiple inside a table. As such, its Call() method does not need a function's name.
This class is also used internally by these CBaseEntity hooks: Precache() and OnPostSpawn().
==== Methods ====
Function 	Signature 	Description
constructor 	CSimpleCallChainer(string functionPrefix, table scope = null, exactMatch = false)	Creates a CSimpleCallChainer object that'll collect functions that have a matching prefix in the given scope, unless it seek for an exact name match.
PostScriptExecute	void PostScriptExecute() 	Begin searching for all non-native functions with matching prefixes, then push them into the chain array.
Call 	bool Call(any ...) 	Call all functions inside the chain array with the given arguments.
==== Members ====
Instance 	Type 	Description
chain 	array 	All functions to be called by the Call() method.
exactMatch	bool 	If set, names of non-native functions and prefix must be an exact match. Set by the constructor.
prefix 	string	Prefix that functions should have to be added into the chain array. Set by the constructor.
scope 	table 	If set, seek functions in this scope instead. Set by the constructor.
=== LateBinder ===
Late binding: allows a table to refer to parts of itself, it's children, it's owner, and then have the references fixed up after it's fully parsed.
// Usage:
lateBinder <- LateBinder();
lateBinder.Begin( this );
Test1 <-
{ 
 Foo=1
} 
Test2 <-
{ 
 FooFoo = "I'm foo foo"
 BarBar="@Test1.Foo"
 SubTable = { boo=[bah, "@Test2.FooFoo", "@Test1.Foo"], booboo2={one=bah, two="@Test2.FooFoo", three="@Test1.Foo"} }
 booboo=[bah, "@Test2.FooFoo", "@Test1.Foo"]
 booboo2={one=bah, two="@Test2.FooFoo", three="@Test1.Foo"}
 bah=wha
} 
lateBinder.End();
delete lateBinder;
When End() is called, all of the unresolved symbols in the tables and arrays will be resolved, any left unresolved will become a string prepended with '~', which later code can deal with.
==== Methods ====
Function 	Signature	Description
Begin 	 	
End 	 	
EstablishDelegation 	 	
HookRootMetamethod 	 	
Log 	 	
m_bindNamesStack 	 	
m_fixupSet 	 	
m_log 	 	
m_logIndent 	 	
m_targetTable 	 	
RemoveDelegation 	 	
Resolve 	 	
UnhookRootMetamethod	 	
=== regexp ===
The built-in Squirrel class for regular expressions.
==== Methods ====
Function 	Signature 	Description
constructor	regexp() 	
capture 	[table] capture(str, [start])	Returns an array of tables containing two indexes("begin" and "end")of the first match of the regular expression in the string str. An array entry is created for each captured sub expressions. If no match occurs returns null. The search starts from the index start of the string, if start is omitted the search starts from the beginning of the string.
match 	bool match(str) 	Returns a true if the regular expression matches the string str, otherwise returns false.
search 	table search(str, [start]) 	Returns a table containing two indexes("begin" and "end") of the first match of the regular expression in the string str, otherwise if no match occurs returns null. The search starts from the index start of the string, if start is omitted the search starts from the beginning of the string.
subexpcount	 	
=== Vector ===
Squirrel equivalent of the C++ Vector class.
Three-dimensional vector.
Has overloaded arithmetic operations with both Vectors and scalar values.
==== Methods ====
Function 	Signature 	Description
constructor	Vector(float x, float y, float z)	Creates a new vector with the specified Cartesian coordiantes.
Cross 	float Cross(Vector factor) 	The vector product of two vectors. Returns a vector orthogonal to the input vectors.
Dot 	float Dot(Vector factor) 	The scalar product of two vectors.
Length 	float Length() 	Magnitude of the vector.
LengthSqr 	float LengthSqr() 	The magnitude of the vector squared. Faster than the above method.
Length2D 	float Length2D() 	Returns the magnitude of the vector on the x-y plane.
Length2DSqr	float Length2DSqr() 	Returns the square of the magnitude of the vector on the x-y plane. Faster than the above method.
Norm 	float Norm() 	Will return the vector length as a float. This function will also NORMALIZE the vector, the X, Y, and Z values will each be set to a number between -1 and 1. You can then multiply these values by, for example, 3000 to use the vector to set the velocity of something in game.
ToKVString 	string ToKVString() 	Returns a string without separations commas.
==== Members ====
Instance	Type 	Description
x 	float	Cartesian X axis.
y 	float	Cartesian Y axis.
z 	float	Cartesian Z axis.
=== Hooks ===
These hook functions are used by simply adding a function with the same name and arguments to the script, and are called back by the C++ code at the appropriate moments.
==== OnTakeDamage_Alive_Any ====
float OnTakeDamage_Alive_Any(CBaseEntity victim, CBaseEntity inflictor, CBaseEntity attacker, CBaseEntity weapon, float damage, int damageType, string ammoName): Adding a function with this name in the script causes C++ to call it on all OnTakeDamage_Alive events.
Returning "false" causes the damage to be stopped and nothing will be done to the target (though animation/bloodstains/decals will probably still happen, sorry about that).
==== UserConsoleCommand ====
void UserConsoleCommand(handle playerScript, arg): when a user does a <scripted_user_func argument> at console (or bound to a key) this function is called (if it exists). The playerscript is which players console it came from. You can pass strings or whatever, of course. So could do a switch statement off <arg> to give players special controls, etc.
==== OnGameEvent_x ====
void OnGameEvent_x(table params): A callback that is called when the game event x is fired. See scripts\gameevents.res and scripts\modeevents.res for valid events. The list of game events a script can listen for is available in the game's source code.
==== OnMissionStart ====
void OnMissionStart(): A callback that is called when MissionStart occurs.
==== OnGameplayStart ====
void OnGameplayStart(): A callback that is called when all marines have spawned and players start to play.
==== Update ====
void Update(): Update gets called much like a Think() function. If you return a float value the function will get called again in x seconds.
==== OnReceivedTextMessage ====
string OnReceivedTextMessage(CBaseEntity recipient, CBaseEntity sender, string message): Called when a player sends a text message into chat.
Sent message will be replaced by the returned string. If the return type is not a string, message is not sent. Note, the message parameter contains an end of line character. If you want to get rid of it, do message = message.slice( 
0, message.len() - 1 )
== Global functions ==
=== Printing and Drawing ===
Function 	Signature 	Description
ClientPrint 	void ClientPrint(CBasePlayer player, int destination, string message, ...) 	Print a client message. If you pass null instead of a valid player, the message will be sent to all clients. destination should be HUD_PRINTNOTIFY, HUD_PRINTCONSOLE, HUD_PRINTTALK, HUD_PRINTCENTER, or ASW_HUD_PRINTTALKANDCONSOLE. message will be looked up as a translation string and can contain %s1 through %s4 to reference extra string arguments passed after message.
TextColor 	string TextColor(int r, int g, int b) 	Returns a string which is reinterpreted into a color internally in the ClientPrint message string. Turns all the characters that come after the returned string into respective RGB color.
TextColorBlend 	string TextColorBlend(int r1, int g1, int b1, int r2, int g2, int b2) 	Returns a string which is reinterpreted into a color blend internally in the ClientPrint message string. Turns all the characters that come after the returned string into respective RGB color blend.
TextColorBlendInvert 	string TextColorBlendInvert(int r, int g, int b) 	Returns a string which is reinterpreted into a inverted color blend internally in the ClientPrint message string. Turns all the characters that come after the returned string into respective inverted RGB color blend.
TextColorBlend3 	string TextColorBlend3(int r1, int g1, int b1, int r2, int g2, int b2, int r3, int g3, int b3) 	Returns a string which is reinterpreted into a triple color blend internally in the ClientPrint message string. Turns all the characters that come after the returned string into respective triple RGB color blend.
TextColorBlendCycle 	string TextColorBlendCycle(int transition_length, int r1, int g1, int b1, int r2, int g2, int b2) 	Returns a string which is reinterpreted into a color blend cycle internally in the ClientPrint message string. Turns all the characters that come after the returned string into respective RGB color blend cycle.
TextColorBlendSmoothCycle	string TextColorBlendSmoothCycle(int transition_length, int r1, int g1, int b1, int r2, int g2, int b2) 	Returns a string which is reinterpreted into a smooth color blend cycle internally in the ClientPrint message string. Turns all the characters that come after the returned string into respective smooth RGB color blend cycle.
DebugDrawBox 	void DebugDrawBox(vector origin, vector min, vector max, int r, int g, int b, int alpha, float duration)	Draw a debug overlay box.
DebugDrawLine 	void DebugDrawLine(Vector start, Vector end, int red, int green, int blue, bool zTest, float time) 	Draw a debug line between two points.
Msg 	void Msg(string message) 	Equivalent to print
print 	void print(string message) 	Prints the given message to the developer console.
printl 	void printl(string message) 	Prints the given message to the developer console just like print but also appends a newline.
Say 	void Say(CBasePlayer player, string message) 	Calling this will have the specified player send the message to chat.
ScreenHeight (Client) 	int ScreenHeight() 	Returns the height of the screen in pixels.
ScreenWidth (Client) 	int ScreenWidth() 	Returns the width of the screen in pixels.
ShowMessage 	void ShowMessage(string) 	Print a hud message on all clients.
TryLocalize (Client) 	string TryLocalize(string text) 	If text is a valid translation key starting with #, returns the translated string. Otherwise, returns text as-is.
XRes (Client) 	float XRes(float x) 	Scales an X coordinate based on a 640 pixel wide screen.
YRes (Client) 	float YRes(float y) 	Scales a Y coordinate based on a 480 pixel tall screen.
__DumpScope 	void __DumpScope(int indentation, handle scope) 	Dumps contents of everything in the scope.
=== Other ===
Function 	Signature 	Description
AddThinkToEnt 	void AddThinkToEnt(handle entity, string funcName) 	Adds a late bound think function to the C++ think tables for the obj.
Assert 	void Assert(bool value, string optional message) 	Test value and if not true, throws exception, optionally with message.
ChangeLevel 	void ChangeLevel(string mapname) 	Tell engine to change level.
CreateGrenadeCluster 	handle CreateGrenadeCluster(float damage, float radius, int clusters, Vector position, Vector angles, Vector velocity, Vector angVelocity) 	Create grenade cluster.
CreateProp 	handle CreateProp(string class, Vector origin, string model, int animation) 	Create a prop with the specified class and model. Both prop_physics, prop_dynamic as well as some other entity classes with models work. Does not precache the model.
CreateSceneEntity 	CSceneEntity CreateSceneEntity(string scene) 	Create a scene entity to play the specified scene .vcd file.
DisptchParticleEffect 	void DispatchParticleEffect(string name, Vector origin, Vector angles) 	Spawns a particle effect in the world.
DisptchParticleEffectCP1 	void DispatchParticleEffectCP1(string name, Vector origin, Vector angles, Vector cp1) 	Spawns a particle effect in the world with a specific offset for control point 1.
DoIncludeScript 	bool DoIncludeScript(string filename, table scope) 	Execute a script with the script scope set to the specified table.
DoEntFire 	void DoEntFire(string target, string action, string value, float delay, handle activator, handle caller) 	Generate an entity I/O event. The caller argument takes a script handle, so it can be used with target set to !self to fire inputs to entities without usable targetnames.
DropFragGrenade 	handle DropFragGrenade(float damage, float grenadeRadius, Vector origin) 	Drops a frag grenade.
DropFreezeGrenade 	handle DropFreezeGrenade(float damage, float freezeAmount, float grenadeRadius, Vector origin) 	Drops a freeze grenade.
DropGasGrenade 	handle DropGasGrenade(float damage, float dmgInterval, float duration, float fuse, Vector origin) 	Drops a gas grenade. // new edit default: damge = 20 , damage per seconds = 0.3, duration = 30, fuse = 1 # radius being fix to 100 using covar asw_gas_grenade_cloud_width
DropIncendiaryGrenade 	handle DropIncendiaryGrenade(float damage, float grenadeRadius, Vector origin) 	Drops an incendiary grenade.
DropStunGrenade 	handle DropStunGrenade(float damage, float grenadeRadius, Vector origin) 	Drops a stun grenade.
EntFire 	function EntFire(string target, string action, string value, float delay = 0.0, handle activator = null) 	Generate an entity I/O event.
EntFireByHandle 	void EntFireByHandle(handle target, string action, string value, float delay, handle activator, handle caller) 	Generate an entity I/O event. The first parameter is an entity instance, so the handles of nameless or script generated entities can be passed easily.
EntIndexToHScript 	CBaseEntity EntIndexToHScript(int entIndex) 	Returns the script handle for the given entity index.
FadeClientVolume 	void FadeClientVolume(handle player, float fadePercent, float fadeOutSeconds, float holdTime, float fadeInSeconds) 	Fade out the client's volume level toward silence (or fadePercent).
FileToString 	string FileToString(string file) 	Reads a string from file. Returns the string from the file, empty string if no file or file is too big.
FindNearestNPC 	handle FindNearestNPC(Vector position, bool checkZCoordinate, float radius) 	Returns the nearest character (Marine, Colonist, or Alien) to the given coordinate.
FrameTime 	float FrameTime() 	Get the time spent on the server in the last frame
GamePause 	void GamePause(bool bPause) 	Pause or unpause the game.
GetClientXUID 	string GetClientXUID(handle player) 	Get the player's xuid (i.e. SteamID64).
GetDecalIndexForName 	int GetDecalIndexForName(string name) 	Get decal index from a string.
GetEffectIndex 	int GetEffectIndex(string name) 	Converts a previously precached effect into an index.
GetEffectNameFromIndex 	string GetEffectNameFromIndex(int index) 	Converts a previously precached effect index into a string.
GetFrameCount 	int GetFrameCount() 	Returns the engine's current frame count.
GetHullMaxs 	Vector GetHullMaxs(int hullType) 	Returns a Vector for the hull maxs.
GetHullMins 	Vector GetHullMins(int hullType) 	Returns a Vector for the hull mins.
GetLocalPlayer (Client) 	handle GetLocalPlayer() 	Returns the local C_ASW_Player.
GetListenServerHost 	handle GetListenServerHost() 	Get the host player on a listen server.
GetMapName 	string GetMapName() 	Get the name of the map.
GetModelIndex 	int GetModelIndex(string filename) 	Returns index of model by name.
GetParticleSystemIndex 	int GetParticleSystemIndex(string name) 	Converts a previously precached material into an index.
GetParticleSystemNameFromIndex	string GetParticleSystemNameFromIndex(int index) 	Converts a previously precached material index into a string.
GetPlayerConnectionInfo 	void GetPlayerConnectionInfo(handle player, table) 	Returns a table containing the player's connection info.
GetPlayerFromUserID 	handle GetPlayerFromUserID(int ID) 	Given a user id, return the entity, or null.
IsAnniversaryWeek 	bool IsAnniversaryWeek() 	Returns true if it is the anniversary week of Alien Swarm: Reactive Drop.
IsDedicatedServer 	bool IsDedicatedServer() 	Returns true if this is a dedicated server.
IsModelPrecached 	bool IsModelPrecached(string modelname) 	Checks if the modelname is precached.
LocalTime 	void LocalTime(table) 	Fills in the passed table with the local system time.
PlaceDamageAmplifier 	handle PlaceDamageAmplifier(float duration, float grenadeRadius, Vector origin) 	Places a damage amplifier.
PlaceHealBeacon 	handle PlaceHealBeacon(float healAmount, float healthPerSecond, float infestationCureAmount, float duration, float grenadeRadius, Vector origin)	Places a heal beacon. Default values for Faith / Bastille are : healAmount = 100 / 90, healthPerSecond = 3, infestationCureAmount = 0.75 / 0.25, duration = 20, grenadeRadius = 100
PlantIncendiaryMine 	handle PlantIncendiaryMine(Vector origin, Vector angles) 	Plants an incendiary mine.
PlantLaserMine 	handle PlantLaserMine(bool friendly, Vector origin, Vector angles) 	Plants a laser mine.
PlayerInstanceFromIndex 	CBasePlayer PlayerInstanceFromIndex(int index) 	Get a script handle of a player using the player index.
PrecacheEffect 	void PrecacheEffect(string name) 	Precaches an effect.
PrecacheModel 	int PrecacheModel(string filename) 	Precache a model and return index of the model.
PrecacheParticleSystem 	int PrecacheParticleSystem(string name) 	Precaches a particle material.
PrintHelp 	 	
RandomFloat 	float RandomFloat() 	Generate a random floating point number.
RandomFloat 	float RandomFloat(float min, float max) 	Generate a random floating point number within a range, inclusive
RandomInt 	int RandomInt() 	Generate a random integer.
RandomInt 	int RandomInt(int min, int max) 	Generate a random integer within a range, inclusive
RetrieveNativeSignature 	void RetrieveNativeSignature(string or func) 	Name suggests it would print the calling format for a native function, but I can't get it to output anything other than <unnamed>
ScreenFade 	void ScreenFade(handle player, int red, int green, int blue, int alpha, float fadeTime, float fadeHold, int flags) 	Start a screenfade with the following parameters.
ScreenShake 	void ScreenShake(Vector vecCenter, float flAmplitude, float flFrequency, float flDuration, float flRadius, int eCommand, bool bAirShake) 	Start a screenshake with the following parameters.
SendToConsole 	void SendToConsole(string command) 	Send a string to the console as a command.
SendToServerConsole 	void SendToServerConsole(string) 	Send a string that gets executed on the server as a ServerCommand
SpawnEntityFromTable 	handle SpawnEntityFromTable(string name, handle keyvalues) 	Spawn entity from KeyValues in table - 'name' is entity name, rest are KeyValues for spawn.
StartStim 	void StartStim(float duration) 	Activates a stim pack for desired duration.
StopStim 	void StopStim() 	Stops any active stim pack.
StringToFile 	void StringToFile(string file, string string) 	Stores the string into the file.
Time 	float Time() 	Get the current server time
TraceLine 	float TraceLine(Vector, Vector, handle) 	given 2 points & ent to ignore, return fraction along line that hits world or models
TraceLineTable 	void TraceLineTable(table traceTable) 	Uses a configuration table to do a raytrace, puts return information into the table for return usage.
UniqueString 	function UniqueString(string) 	Generate a string guaranteed to be unique across the life of the script VM, with an optional root string. Useful for adding data to tables when not sure what keys are already in use in that table.
__ReplaceClosures 	 	
== Useful Code ==
=== Delaying Code Execution ===
function DelayCodeExecution( string_code, delay )
{
	DoEntFire( "worldspawn", "RunScriptCode", string_code, delay, null, null );
}
Usage example, this code below prints each marine's health into console 5 seconds after they have spawned:
function OnGameplayStart()
{		
	DelayCodeExecution( 
	"local handle_marine = null; while ( ( handle_marine = Entities.FindByClassname( handle_marine, \"asw_marine\" ) ) != null ) { printl( handle_marine.GetMarineName() + \" health is \" + handle_marine.GetHealth() ); }",
	5.0 );
}
Note that if the code that you want to delay uses quotation marks, you have to add a '\' symbol before those quotation marks so that they would get parsed into the string.
=== Delaying a Function Call ===
Delays a function call, the function that gets delayed has to be in the same script scope.
function DelayFunctionCall( function_name, function_params, delay )
{
	if ( !this["self"] )
		return;
	
	// this[ function_name ]( function_params );
	EntFireByHandle( this["self"], "RunScriptCode", "this[\"" + function_name + "\"](" + function_params + ");", delay, null, null );
}
Usage examples:
function OnGameplayStart()
{		
	DelayFunctionCall( "PrintToChat", "\"Hello, I was printed with a 3 second delay.\"", 3.0 );
}
function PrintToChat( message )
{
	ClientPrint( null, 3, message );
}
function OnGameplayStart()
{		
	DelayFunctionCall( "SetMarineHealth", "50", 3.0 );
}
function SetMarineHealth( health )
{
	local handle_marine = null;
	
	while ( ( handle_marine = Entities.FindByClassname( handle_marine, "asw_marine" ) ) != null )
	{
		handle_marine.SetHealth( health );
	}
}
Note that the parameters have to be constants or indexes which are global to the scope.
== See also ==
* VScript
* VScript Fundamentals
* Squirrel
* Left 4 Dead 2/Script Functions
* List of Portal 2 Script Functions
* List of Counter-Strike: Global Offensive Script Functions
* List of Team Fortress 2 Script Functions
Category:Alien Swarm: Reactive Drop
Category:Scripting