Team Fortress 2/Scripting/Script Functions

From Valve Developer Community
< Team Fortress 2‎ | Scripting
Revision as of 06:52, 7 November 2022 by Shadowysn (talk | contribs) (→‎CEnvEntityMaker: Fixed formatting error)
Jump to navigation Jump to search

Stub

This article or section is a stub. You can help by expanding it.

Squirrel This list contains the engine-related Squirrel classes, functions and variables available for VScript in Template:Game name.

The official documentation can be printed in the console by setting developer to non-zero, loading a map, and executing script_help. However, this documentation is very incomplete and most methods are not listed, requiring them to be found by other means instead.

Warning.pngWarning:This page is still work-in-progress, many functions lack documentation and testing.
Note.pngNote:Most of these functions were dumped externally as they are not exposed by normal means. For these functions, the return is unknown and the arguments may not be fully correct.
Todo: Copy over documentation from the L4D2 page, since Team Fortress 2 is derived from the VScript version as Left 4 Dead 2.
Todo: Constants and variables (e.g. PI)
Todo: Figure out inheritance, currently some methods are listed redundantly on each derived child
Todo: Format the constructors more nicely


























Classes

CBaseEntity

This is a script handle class for entities. All entities have a script handle using this class, sometimes as one of its subclasses.

An entity's own handle are accessed with:

Function Signature Description
__KeyValueFromFloat __KeyValueFromFloat(string, num)
__KeyValueFromInt __KeyValueFromInt(string, num)
__KeyValueFromString __KeyValueFromString(string, string)
__KeyValueFromVector __KeyValueFromVector(string, Vector)
ApplyAbsVelocityImpulse void ApplyAbsVelocityImpulse(Vector) Apply a Velocity Impulse
ApplyLocalAngularVelocityImpulse void ApplyLocalAngularVelocityImpulse(Vector) Apply an Ang Velocity Impulse
ConnectOutput void ConnectOutput(string, string) Adds an I/O connection that will call the named function when the specified output fires
Destroy void Destroy()
DisableDraw void DisableDraw() Enable drawing (removes EF_NODRAW)
DisconnectOutput void DisconnectOutput(string, string) Removes a connected script function from an I/O event.
DispatchSpawn void DispatchSpawn() Alternative dispatch spawn, same as the one in CEntities, for convenience.
EmitSound void EmitSound(string) Plays a sound from this entity.
EnableDraw void EnableDraw() Disable drawing (sets EF_NODRAW)
entindex int entindex()
EyePosition Vector EyePosition() Get vector to eye position - absolute coords
FirstMoveChild handle FirstMoveChild()
GetAbsAngles QAngle GetAbsAngles() Get entity pitch, yaw, roll as QAngles
GetAngles Vector GetAngles() !!!LEGACY FOR COMPAT!!! DO NOT USE ME. Get entity pitch, yaw, roll as a vector
GetAngularVelocity Vector GetAngularVelocity() Get the local angular velocity - returns a vector of pitch,yaw,roll
GetBaseVelocity Vector GetBaseVelocity() Get Base? velocity
GetBoundingMaxs Vector GetBoundingMaxs() Get a vector containing max bounds, centered on object
GetBoundingMaxsOriented Vector GetBoundingMaxsOriented() Get a vector containing max bounds, centered on object, taking the object's orientation into account
GetBoundingMins Vector GetBoundingMins() Get a vector containing min bounds, centered on object
GetBoundingMinsOriented Vector GetBoundingMinsOriented() Get a vector containing min bounds, centered on object, taking the object's orientation into account
GetCenter Vector GetCenter() Get vector to center of object - absolute coords
GetClassname string GetClassname()
GetEntityHandle <unknown> GetEntityHandle() Get the entity as an EHANDLE
GetEntityIndex int GetEntityIndex()
GetForwardVector Vector GetForwardVector() Get the forward vector of the entity
GetFriction float GetFriction() Get PLAYER friction, ignored for objects
GetHealth int GetHealth()
GetLeftVector Vector GetLeftVector() !!!LEGACY FOR COMPAT!!! Get the **right** vector of the entity. This is purely for compatibility. DO NOT USE ME. Use GetRightVector!
GetLocalAngles QAngle GetLocalAngles()
GetLocalOrigin Vector GetLocalOrigin()
GetLocalVelocity Vector GetLocalVelocity() Get Entity relative velocity
GetMaxHealth int GetMaxHealth()
GetModelKeyValues handle GetModelKeyValues() Get a KeyValue class instance on this entity's model
GetModelName string GetModelName() Returns the name of the model
GetMoveParent handle GetMoveParent() If in hierarchy, retrieves the entity's parent
GetName string GetName()
GetOrigin Vector GetOrigin() This is GetAbsOrigin with a funny script name for some reason. Not changing it for legacy compat though.
GetOwner handle GetOwner() Gets this entity's owner
GetPreTemplateName string GetPreTemplateName() Get the entity name stripped of template unique decoration
GetRightVector Vector GetRightVector() Get the right vector of the entity
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 script-side data associated with an entity
GetSoundDuration float GetSoundDuration(string, string) Returns float duration of the sound. Takes soundname and optional actormodelname.
GetTeam int GetTeam()
GetUpVector Vector GetUpVector() Get the up vector of the entity
GetVelocity Vector GetVelocity()
IsPlayer bool IsPlayer()
IsValid IsValid()
KeyValueFromFloat bool KeyValueFromFloat(string, float) Executes KeyValue with a float
KeyValueFromInt bool KeyValueFromInt(string, int) Executes KeyValue with an int
KeyValueFromString bool KeyValueFromString(string, string) Executes KeyValue with a string
KeyValueFromVector bool KeyValueFromVector(string, Vector) Executes KeyValue with a vector
Kill void Kill()
NextMovePeer handle NextMovePeer()
PrecacheModel void PrecacheModel(string)
PrecacheScriptSound void PrecacheScriptSound(string)
PrecacheSoundScript void PrecacheSoundScript(string) Precache a sound for later playing.
SetAbsAngles void SetAbsAngles(QAngle) Set entity pitch, yaw, roll as QAngles
SetAbsOrigin void SetAbsOrigin(Vector) SetAbsOrigin
SetAngles void SetAngles(float, float, float) !!!LEGACY FOR COMPAT!!! DO NOT USE ME. Set entity pitch, yaw, roll
SetAngularVelocity void SetAngularVelocity(float, float, float) Set the local angular velocity - takes float pitch,yaw,roll velocities
SetDrawEnabled void SetDrawEnabled(bool) Enables drawing if you pass true, disables drawing if you pass false.
SetForwardVector void SetForwardVector(Vector) Set the orientation of the entity to have this forward vector
SetFriction void SetFriction(float) Set PLAYER friction, ignored for objects
SetGravity void SetGravity(float) Set PLAYER gravity, ignored for objects
SetHealth void SetHealth(int)
SetLocalAngles void SetLocalAngles(QAngle)
SetLocalOrigin void SetLocalOrigin(Vector)
SetMaxHealth void SetMaxHealth(int)
SetModel void SetModel(string) Set a model for this entity
SetOrigin void SetOrigin(Vector) THIS DOESNT CALL SetAbsOrigin IT CALLS Teleport
SetOwner void SetOwner(handle) Sets this entity's owner
SetSize void SetSize(Vector, Vector)
SetTeam void SetTeam(int)
SetVelocity void SetVelocity(Vector)
StopSound void StopSound(string) Stops a sound on this entity.
TakeDamage void TakeDamage(float, int, handle) (flDamage, nDamageType, hAttacker)
TakeDamageEx void TakeDamageEx(handle, handle, handle, Vector, Vector, float, int) (hInflictor, hAttacker, hWeapon, vecDamageForce, vecDamagePosition, flDamage, nDamageType)
ValidateScriptScope bool ValidateScriptScope() Ensure that an entity's script scope has been created

CBaseAnimating

Extends CBaseEntity

Script handle class for animatable entities, such as props.

Function Signature Description
FindBodygroupByName int FindBodygroupByName(string) Find a bodygroup id by name
GetAttachmentAngles QAngle GetAttachmentAngles(int) Get the attachement id's angles as a p,y,r vector
GetAttachmentBone int GetAttachmentBone(int) Get the named attachement's parent bone index
GetAttachmentOrigin Vector GetAttachmentOrigin(int) Get the attachement id's origin vector
GetBodygroup int GetBodygroup(int) Get a bodygroup by id
GetBodygroupName string GetBodygroupName(int) Get the bodygroup id's name
GetBodygroupPartName string GetBodygroupPartName(int, int) Get name by group and part
GetBoneAngles QAngle GetBoneAngles(int) Get the bone id's angles as a p,y,r vector
GetBoneOrigin Vector GetBoneOrigin(int) Get the bone id's origin vector
GetModelScale float GetModelScale()
GetSequence int GetSequence() Get the current sequence id
GetSequenceActivityName string GetSequenceActivityName(int) Get the activity name for a sequence by id
GetSequenceDuration float GetSequenceDuration(int) Get a sequence duration by id
GetSequenceName string GetSequenceName(int) Get a sequence name by id
GetSkin int GetSkin() Gets the current skin index.
IsSequenceFinished bool IsSequenceFinished() Ask whether the main sequence is done playing
LookupActivity int LookupActivity(string) Get the named activity index
LookupAttachment int LookupAttachment(string) Get the named attachement id
LookupBone int LookupBone(string) Get the named bone index
LookupSequence int LookupSequence(string) Looks up a sequence by sequence name or activity name
ResetSequence void ResetSequence(int) Reset a sequence by id. If the id is different than the current sequence, switch to the new sequence
SetBodygroup void SetBodygroup(int, int) Sets a bodygroup
SetModelScale void SetModelScale(float, float) (scale, change_duration) Changes a model's scale over time
SetPoseParameter float SetPoseParameter(int, float) (id, value) Sets a pose parameter value
SetSequence void SetSequence(int) Set a sequence by id
SetSkin void SetSkin(int) Sets the skin.


CBasePlayer

Extends CBaseAnimating

Script handle class for player entities.

Function Signature Description
IsNoclipping bool IsNoclipping() Returns true if the player is in noclip mode.


CBaseMultiplayerPlayer

Extends CBasePlayer

Script handle sub-classes for player entities in multiplayer games. No additional methods.


CTFPlayer

Extends CBaseMultiplayerPlayer

Script handle class for TF2s player entities.

Function Signature Description
AddCond void AddCond(string)
AddCondEx void AddCondEx(string, float, handle)
AddCustomAttribute void AddCustomAttribute(string, float, float) Add a custom attribute to the player
ApplyPunchImpulseX bool ApplyPunchImpulseX(float)
CanAirDash bool CanAirDash()
CanBeDebuffed bool CanBeDebuffed()
CanBreatheUnderwater bool CanBreatheUnderwater()
CanDuck bool CanDuck() Can the player duck?
CanGetWet bool CanGetWet()
CanJump bool CanJump() Can the player jump?
CanPlayerMove bool CanPlayerMove() Can the player move?
DropFlag void DropFlag(bool) Force player to drop the flag.
DropRune void DropRune(bool, int) Force player to drop the rune.
FiringTalk void FiringTalk() Makes eg. a heavy go AAAAAAAAAAaAaa like they are firing their minigun.
FirstMoveChild FirstMoveChild()
ForceChangeTeam void ForceChangeTeam(int, bool) Force player to change their team.
GetBackstabs int GetBackstabs()
GetBuildingsDestroyed int GetBuildingsDestroyed()
GetCaptures int GetCaptures()
GetClassEyeHeight Vector GetClassEyeHeight() Gets the eye height of the player
GetCondDuration float GetCondDuration(string)
GetCurrentTauntMoveSpeed float GetCurrentTauntMoveSpeed()
GetDefenses int GetDefenses()
GetDisguiseAmmoCount int GetDisguiseAmmoCount()
GetDisguiseTarget handle GetDisguiseTarget()
GetDisguiseTeam int GetDisguiseTeam()
GetDominations int GetDominations()
GetGrapplingHookTarget handle GetGrapplingHookTarget() What entity is the player grappling?
GetHeadshots int GetHeadshots()
GetHealPoints int GetHealPoints()
GetHealTarget handle GetHealTarget() Who is the medic healing?
GetInvulns int GetInvulns()
GetKillAssists int GetKillAssists()
GetNextChangeClassTime float GetNextChangeClassTime() Get next change class time.
GetNextChangeTeamTime float GetNextChangeTeamTime() Get next change team time.
GetNextRegenTime float GetNextRegenTime() Get next health regen time.
GetRageMeter float GetRageMeter()
GetResupplyPoints int GetResupplyPoints()
GetRevenge int GetRevenge()
GetScoutHypeMeter float GetScoutHypeMeter()
GetSpyCloakMeter float GetSpyCloakMeter()
GetTeleports int GetTeleports()
GetTimeSinceCalledForMedic float GetTimeSinceCalledForMedic() When did the player last call medic
HasItem bool HasItem() Currently holding an item? Eg. capture flag
InAirDueToExplosion bool InAirDueToExplosion()
InAirDueToKnockback bool InAirDueToKnockback()
InCond bool InCond(string)
IsAirDashing bool IsAirDashing()
IsAllowedToTaunt bool IsAllowedToTaunt()
IsCallingForMedic bool IsCallingForMedic() Is this player calling for medic?
IsCarryingRune bool IsCarryingRune()
IsControlStunned bool IsControlStunned()
IsCritBoosted bool IsCritBoosted()
IsFireproof bool IsFireproof()
IsFullyInvisible bool IsFullyInvisible()
IsHypeBuffed bool IsHypeBuffed()
IsImmuneToPushback bool IsImmuneToPushback()
IsInspecting bool IsInspecting()
IsInvulnerable bool IsInvulnerable()
IsJumping bool IsJumping()
IsMiniBoss bool IsMiniBoss() Is this player an MvM mini-boss?
IsParachuteEquipped bool IsParachuteEquipped()
IsPlacingSapper bool IsPlacingSapper() Returns true if we placed a sapper in the last few moments
IsPlayer IsPlayer()
IsRageDraining bool IsRageDraining()
IsRegenerating bool IsRegenerating()
IsSapping bool IsSapping() Returns true if we are currently sapping
IsSnared bool IsSnared()
IsStealthed bool IsStealthed()
IsUsingActionSlot bool IsUsingActionSlot()
IsViewingCYOAPDA bool IsViewingCYOAPDA()
RemoveAllCond void RemoveAllCond()
RemoveAllObjects void RemoveAllObjects(bool) Remove all player objects. Eg. dispensers/sentries.
RemoveCond void RemoveCond(string)
RemoveCondEx void RemoveCondEx(string, bool)
RemoveCustomAttribute void RemoveCustomAttribute(string) Remove a custom attribute to the player
RemoveDisguise void RemoveDisguise() Undisguise a spy.
RemoveInvisibility void RemoveInvisibility() Un-invisible a spy.
ResetScores void ResetScores()
SetCondDuration void SetCondDuration(string, float)
SetCurrentTauntMoveSpeed void SetCurrentTauntMoveSpeed(float)
SetDisguiseAmmoCount void SetDisguiseAmmoCount(int)
SetGrapplingHookTarget void SetGrapplingHookTarget(handle, bool) Set the player's target grapple entity
SetIsMiniBoss void SetIsMiniBoss(bool) Make this player an MvM mini-boss.
SetNextChangeClassTime void SetNextChangeClassTime(float) Set next change class time.
SetNextChangeTeamTime void SetNextChangeTeamTime(float) Set next change team time.
SetNextRegenTime void SetNextRegenTime(float) Set next health regen time.
SetRageMeter void SetRageMeter(float)
SetScoutHypeMeter void SetScoutHypeMeter(float)
SetSpyCloakMeter void SetSpyCloakMeter(float)
SetUseBossHealthBar void SetUseBossHealthBar(bool)
TryToPickupBuilding bool TryToPickupBuilding() Make the player attempt to pick up a building in front of them
WasInCond bool WasInCond(string)


Convars

Game Instance: Convars

Provides an interface for getting and setting convars on the server.

Todo: The class for this doesn't seem to be directly available.

Methods

Function Signature Description
GetClientConvarValue string GetClientConvarValue(string name, int entindex) Returns the convar value for the entindex as a string. Only works on 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. Supported types are bool, int, float, string.

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 parameter in the appropriate method to start an iteration. A reference to a previously-found entity can be used instead to continue a search.

The following are two equivalent examples and iterate over all weapons on the map:

local ent = null;
while ( ent = Entities.FindByClassname(ent, "weapon_*") )
{
  // ...
}
for (local ent; ent = Entities.FindByName(ent, "weapon_*"); )
{
  // ...
}
Note.pngNote:
  • The variable name ent is arbitrary.
  • Indeed, we mean "=" and not "==" in the loop conditions! The loops end if ent becomes null, which happens when no matching entities have an entity index higher to the one in previous parameter.
  • Semicolons are optional, except in the header of the for statement.
  • The string parameters of the FindBy... functions support the wildcard star *. In the above example, FindByClassname only returns either a handle of an entity whose classname begins with "weapon_" or it returns null.
Function Signature Description
CreateByClassname handle CreateByClassname(string) Creates an entity by classname
DispatchSpawn void DispatchSpawn(handle) Dispatches spawn of an entity!
FindByClassname handle FindByClassname(handle, string) Find entities by class name. Pass 'null' to start an iteration, or reference to a previously found entity to continue a search
FindByClassnameNearest handle FindByClassnameNearest(string, Vector, float) Find entities by class name nearest to a point.
FindByClassnameWithin handle FindByClassnameWithin(handle, string, Vector, float) Find entities by class name within a radius. Pass 'null' to start an iteration, or reference to a previously found entity to continue a search
FindByModel handle FindByModel(handle, string) Find entities by model name. Pass 'null' to start an iteration, or reference to a previously found entity to continue a search
FindByName handle FindByName(handle, string) Find entities by name. Pass 'null' to start an iteration, or reference to a previously found entity to continue a search
FindByNameNearest handle FindByNameNearest(string, Vector, float) Find entities by name nearest to a point.
FindByNameWithin handle FindByNameWithin(handle, string, Vector, float) Find entities by name within a radius. Pass 'null' to start an iteration, or reference to a previously found entity to continue a search
FindByTarget handle FindByTarget(handle, string) Find entities by targetname. Pass 'null' to start an iteration, or reference to a previously found entity to continue a search
FindInSphere handle FindInSphere(handle, Vector, float) Find entities within a radius. Pass 'null' to start an iteration, or reference to a previously found entity to continue a search
First handle First() Begin an iteration over the list of entities
Next handle Next(handle) At the given reference of a previously-found entity, returns the next one after it in the list.


CNetPropManager

Game Instance: NetProps

Allows reading and updating the network properties and datamaps 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_itTimer.m_timestamp").

Tip.pngTip:List of netprops and datamaps can be found here: https://www.invalidvertex.com/tf2dump.php
Warning.pngWarning:Each netprop has a set size in bits, exceeding the size may desync the clients from the server causing unpredictable behavior.

Methods

Function Signature Description
GetPropArraySize int GetPropArraySize(CBaseEntity entity, string propertyName) Returns the size of an netprop array, or -1.
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.
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.
Todo:  Does it work for other dimensions too?
GetPropVectorArray Vector GetPropVectorArray(CBaseEntity entity, string propertyName, int arrayElement) Reads a 3D vector-valued netprop from an array.
HasProp bool HasProp(CBaseEntity entity, string propertyName) Checks if a netprop exists.
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.


CScriptEntityOutputs

Game Instance: EntityOutputs

Allows reading and manipulation of entity output data.

Methods

Function Signature Description
AddOutput void AddOutput(CBaseEntity entity, string outputName, string targetName, string inputName, string parameter, float delay, int timesToFire) Adds a new output to the entity.
GetNumElements int GetNumElements(CBaseEntity entity, string outputName) Returns the number of array elements.
GetOutputTable void GetOutputTable(CBaseEntity entity, string outputName, table, int arrayElement) Fills the passed table with output information.
HasAction bool HasAction(CBaseEntity entity, string outputName) Returns true if an action exists for the output.
HasOutput bool HasOutput(CBaseEntity entity, string outputName) Returns true if the output exists.
RemoveOutput void RemoveOutput(CBaseEntity entity, string outputName, string targetName, string inputName, string parameter) Removes an output from the entity.


CScriptKeyValues

Script handle representation of a model's $keyvalues block. All sub-keys are instances of the same class.

Methods

Function Signature Description
constructor
FindKey CScriptKeyValues FindKey(string key) Find a sub key by the key name.
GetFirstSubKey CScriptKeyValues GetFirstSubKey() Return the first sub key object.
GetKeyBool bool GetKeyBool(string key) Return the key value as a bool.
GetKeyFloat float GetKeyFloat(string key) Return the key value as a float.
GetKeyInt int GetKeyInt(string key) Return the key value as an integer.
GetKeyString string GetKeyString(string key) Return the key value as a string.
GetNextKey CScriptKeyValues GetNextKey() Return the next neighbor key object to the one the method is called on.
IsKeyEmpty bool IsKeyEmpty(string key) Returns true if the named key has no value.
IsValid bool IsValid() Whether the handle belongs to a valid key.
ReleaseKeyValues void ReleaseKeyValues() Releases the contents of the instance.


CPlayerVoiceListener

Todo: What instances use this class?
Function Signature Description
GetPlayerSpeechDuration float GetPlayerSpeechDuration(int) Returns the number of seconds the player has been continuously speaking.
IsPlayerSpeaking bool IsPlayerSpeaking(int) Returns whether the player specified is speaking.


CEnvEntityMaker

Extends CBaseEntity

Script handle class for env_entity_maker.

Function Signature Description
SpawnEntity void SpawnEntity() Create an entity at the location of the maker
SpawnEntityAtEntityOrigin void SpawnEntityAtEntityOrigin(handle) Create an entity at the location of a specified entity instance
SpawnEntityAtLocation void SpawnEntityAtLocation(Vector, Vector) Create an entity at a specified location and orientaton, orientation is Euler angle in degrees (pitch, yaw, roll)
SpawnEntityAtNamedEntityOrigin void SpawnEntityAtNamedEntityOrigin(string) Create an entity at the location of a named entity

CFuncTrackTrain

Extends CBaseEntity

Script handle class for func_tracktrain.

Function Signature Description
GetFuturePosition Vector GetFuturePosition(float, float) Get a position on the track x seconds in the future


CPointScriptTemplate

Extends CBaseEntity

Script handle class for point_script_template.

Function Signature Description
AddTemplate void AddTemplate(string, handle) Add an entity to the template spawner
SetGroupSpawnTables void SetGroupSpawnTables(handle, handle) Cache the group spawn tables


CSceneEntity

Extends CBaseEntity

Script handle class for scripted_scene, which make use of VCD data.

Function Signature Description
AddBroadcastTeamTarget void AddBroadcastTeamTarget(int) Adds a team (by index) to the broadcast list
EstimateLength float EstimateLength() Returns length of this scene in seconds.
FindNamedEntity handle FindNamedEntity(string) 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, string) given a dummy scene name and a vcd string, load the scene
RemoveBroadcastTeamTarget void RemoveBroadcastTeamTarget(int) Removes a team (by index) from the broadcast list


CSimpleCallChainer

Has the same members as CCallChainer. [Todo]

Function Signature Description
Call Call()
chain chain()
constructor constructor()
PostScriptExecute PostScriptExecute()
prefix prefix()
scope scope()

CCallChainer

Function Signature Description
Call Call()
chains chains()
constructor constructor()
PostScriptExecute PostScriptExecute()
prefix prefix()
scope scope()

LateBinder

[Todo]

Function Signature Description
Begin Begin()
End End()
EstablishDelegation EstablishDelegation()
HookRootMetamethod HookRootMetamethod()
Log Log()
m_bindNamesStack m_bindNamesStack()
m_fixupSet m_fixupSet()
m_targetTable m_targetTable()
RemoveDelegation RemoveDelegation()
Resolve Resolve()
UnhookRootMetamethod 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 subexpcount()

Data Types

Vector

Squirrel equivalent of the C++ Vector class. A three-dimensional vector with overloaded arithmetic operations for both Vectors and scalar values. [Todo]

Methods

Function Signature Description
constructor Vector() Creates a new null vector.
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. Meant to be used when working with the client's HUD.
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() Seems to also return the vector length.
Scale Vector Scale(float factor) Scales the vector magnitude.
ToKVString string ToKVString() Returns a string without separations commas.
tostring string tostring() Returns a human-readable string.


Members

Instance Type Description
x float Cartesian X axis.
y float Cartesian Y axis.
z float Cartesian Z axis.

Operations

Operation Description
Vector + Vector Returns the sum of two Vectors.
Vector - Vector Returns the subtraction of two Vectors.
Vector * Vector Returns the multiplication of two Vectors.
Vector / Vector Returns the division of two Vectors.

QAngle

Squirrel equivalent of the C++ QAngle class. Represents a three-dimensional orientation as Euler angles.

Has overloaded arithmetic operations with both QAngles and scalar values. [Todo]

Function Signature Description
constructor constructor()
Forward Forward()
Left Left()
Pitch Pitch()
Roll Roll()
ToKVString ToKVString()
ToQuat ToQuat()
Up Up()
Yaw Yaw()


Vector2D, Vector4D

Two and four-dimensional equivalents to Vector.

Methods

Function Signature Description
constructor VectorXD(float x, float y, ...) Creates a new vector with the specified Cartesian coordiantes.
Dot float Dot(VectorXD 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.
Norm float Norm() Seems to also return the vector length.
ToKVString string ToKVString() Returns a string without separations commas.


Quaternion

Function Signature Description
constructor constructor()
Dot Dot()
Invert Invert()
Norm Norm()
SetPitchYawRoll SetPitchYawRoll(num, num, num)
ToKVString ToKVString()
ToQAngle ToQAngle()

Globals

Todo: Split this section up (especially the built-in Squirrel functions)
Function Signature Description
__CollectEventCallbacks __CollectEventCallbacks()
__CollectGameEventCallbacks __CollectGameEventCallbacks()
__DumpScope __DumpScope()
__ReplaceClosures __ReplaceClosures()
__RunEventCallbacks __RunEventCallbacks()
__RunGameEventCallbacks __RunGameEventCallbacks()
__VScriptServerDebugHook __VScriptServerDebugHook()
abs abs(num)
acos acos(num)
AddThinkToEnt void AddThinkToEnt(handle, string) Adds a late bound think function to the C++ think tables for the obj
AddToScriptHelp AddToScriptHelp()
AllowThirdPersonCamera bool AllowThirdPersonCamera()
ArePlayersInHell bool ArePlayersInHell()
array array(num)
asin asin(num)
assert assert()
Assert Assert()
atan atan(num)
atan2 atan2(num, num)
BeginScriptDebug BeginScriptDebug()
callee callee()
ceil ceil(num)
ClearGameEventCallbacks ClearGameEventCallbacks()
ClientPrint void ClientPrint(handle, int, string) Print a client message
collectgarbage collectgarbage()
compilestring compilestring(string, string)
cos cos(num)
CreateProp handle CreateProp(string, Vector, string, int) Create a physics prop
CreateSceneEntity handle CreateSceneEntity(string) Create a scene entity to play the specified scene.
DebugDrawBox void DebugDrawBox(Vector, Vector, int, int, int, int, float) Draw a debug overlay box
DebugDrawBoxAngles void DebugDrawBoxAngles(Vector, Vector, Vector, QAngle, Vector, float, float) Draw a debug oriented box (cent, min, max, angles(p,y,r), vRgb, a, duration)
DebugDrawBoxDirection void DebugDrawBoxDirection(Vector, Vector, Vector, Vector, Vector, float, float) Draw a debug forward box (cent, min, max, forward, vRgb, a, duration)
DebugDrawCircle void DebugDrawCircle(Vector, Vector, float, float, bool, float) Draw a debug circle (center, rad, vRgb, a, ztest, duration)
DebugDrawClear void DebugDrawClear() Try to clear all the debug overlay info
DebugDrawLine void DebugDrawLine(Vector, Vector, int, int, int, bool, float) Draw a debug overlay line
DebugDrawLine_vCol void DebugDrawLine_vCol(Vector, Vector, Vector, bool, float) Draw a debug line using color vec (start, end, vRgb, a, ztest, duration)
DebugDrawScreenTextLine void DebugDrawScreenTextLine(float, float, int, string, int, int, int, int, float) Draw text with a line offset
DebugDrawText void DebugDrawText(Vector, string, bool, float) Draw text in 3d (origin, text, bViewCheck, duration)
developer developer()
DispatchParticleEffect void DispatchParticleEffect(string, Vector, Vector) Dispatches a one-off particle system
Document Document()
DoEntFire DoEntFire(string, string, string, num, Vector, Vector)
DoIncludeScript bool DoIncludeScript(string, handle) Execute a script (internal)
DoUniqueString DoUniqueString(string)
dummy dummy()
DumpObject DumpObject()
EmitAmbientSoundOn void EmitAmbientSoundOn(string, float, int, int, handle) Play named ambient sound on an entity.
EmitSoundOn void EmitSoundOn(string, handle) Play named sound on Entity
EmitSoundOnClient void EmitSoundOnClient(string, handle) Play named sound only on the client for the passed in player
enabledebuginfo enabledebuginfo()
EndScriptDebug EndScriptDebug()
EntFire function EntFire(target, action, value, delay, activator) Generate and entity i/o event
EntFireByHandle void EntFireByHandle(handle, string, string, float, handle, handle) Generate and entity i/o event. First parameter is an entity instance.
EntIndexToHScript handle EntIndexToHScript(int) Turn an entity index integer to an HScript representing that entity's script instance.
error error()
exp exp(num)
fabs fabs(num)
FileToString string FileToString(string) Reads a string from a file to send to script
FindCircularReference FindCircularReference()
FindCircularReferences FindCircularReferences()
FireGameEvent bool FireGameEvent(string, handle) Fire a game event to a listening callback function in script. Parameters are passed in a squirrel table.
FireScriptEvent FireScriptEvent()
FlagsMayBeCapped bool FlagsMayBeCapped() May a flag be captured?
floor floor(num)
format format(string)
FrameTime float FrameTime() Get the time spent on the server in the last frame
GameModeUsesCurrency bool GameModeUsesCurrency() Does the current gamemode have currency?
GameModeUsesMiniBosses bool GameModeUsesMiniBosses() Does the current gamemode have minibosses?
GameModeUsesUpgrades bool GameModeUsesUpgrades() Does the current gamemode have upgrades?
GetClassLimit int GetClassLimit(int) Get class limit for class. Indices:
getconsttable getconsttable()
GetDeveloperLevel int GetDeveloperLevel() Gets the level of 'developer'
GetFrameCount int GetFrameCount() Returns the engines current frame count
GetFriction float GetFriction(handle) Returns the Friction on a player entity, meaningless if not a player
GetFunctionSignature GetFunctionSignature()
GetGravityMultiplier float GetGravityMultiplier()
GetListenServerHost handle GetListenServerHost() Get the local player on a listen server.
GetMannVsMachineAlarmStatus bool GetMannVsMachineAlarmStatus()
GetMapName string GetMapName() Get the name of the map.
GetModelIndex int GetModelIndex(string) Returns the index of the named model.
GetOvertimeAllowedForCTF bool GetOvertimeAllowedForCTF()
GetPhysAngularVelocity Vector GetPhysAngularVelocity(handle) Get Angular Velocity for VPHYS or normal object
GetPhysVelocity Vector GetPhysVelocity(handle) Get Velocity for VPHYS or normal object
GetPlayerFromUserID handle GetPlayerFromUserID(int) Given a user id, return the entity, or null
getroottable getroottable()
GetRoundState int GetRoundState() Get current round state. Indices:
GetSoundDuration float GetSoundDuration(string, string) Returns float duration of the sound. Takes soundname and optional actormodelname.
getstackinfos getstackinfos(num)
GetStopWatchState int GetStopWatchState() Get the current stopwatch state. Indices:
GetWinningTeam int GetWinningTeam() Who won!
HaveStopWatchWinner bool HaveStopWatchWinner()
IncludeScript IncludeScript()
InMatchStartCountdown bool InMatchStartCountdown() Are we in the pre-match state?
InOvertime bool InOvertime() Currently in overtime?
IsAttackDefenseMode bool IsAttackDefenseMode()
IsBirthday bool IsBirthday() Are we in birthday mode?
IsCompetitiveMode bool IsCompetitiveMode() Playing competitive?
IsDedicatedServer bool IsDedicatedServer() Returns true if this server is a dedicated server.
IsDefaultGameMode bool IsDefaultGameMode() The absence of arena, mvm, tournament mode, etc
IsHolidayActive bool IsHolidayActive(int) Is the given holiday active? Indices:
IsHolidayMap bool IsHolidayMap(int) Playing a holiday map? Indices:
IsInArenaMode bool IsInArenaMode() Playing arena mode?
IsInKothMode bool IsInKothMode() Playing king of the hill mode?
IsInMedievalMode bool IsInMedievalMode() Playing medieval mode?
IsInWaitingForPlayers bool IsInWaitingForPlayers() Are we waiting for some stragglers?
IsMannVsMachineMode bool IsMannVsMachineMode() Playing MvM? Beep boop
IsMannVsMachineRespecEnabled bool IsMannVsMachineRespecEnabled() Are players allowed to refund their upgrades?
IsMatchTypeCasual bool IsMatchTypeCasual() Playing casual?
IsMatchTypeCompetitive bool IsMatchTypeCompetitive() Playing competitive?
IsModelPrecached bool IsModelPrecached(string) Checks if the modelname is precached.
IsPasstimeMode bool IsPasstimeMode() No ball games.
IsPlayerABot bool IsPlayerABot(handle) Is this player/entity a bot
IsPowerupMode bool IsPowerupMode() Playing powerup mode? Not compatible with MvM
IsPVEModeActive bool IsPVEModeActive()
IsQuickBuildTime bool IsQuickBuildTime() If an engie places a building, will it immediately upgrade? Eg. MvM pre-round etc.
IsSoundPrecached bool IsSoundPrecached(string) Takes a sound name
IsTruceActive bool IsTruceActive()
IsUsingGrapplingHook bool IsUsingGrapplingHook()
IsUsingSpells bool IsUsingSpells()
IsWeakref IsWeakref()
LocalTime void LocalTime(handle) Fills out a table with the local time (second, minute, hour, day, month, year, dayofweek, dayofyear, daylightsavings)
log log(num)
log10 log10(num)
lstrip lstrip(string)
MakeNamespace MakeNamespace()
MapHasMatchSummaryStage bool MapHasMatchSummaryStage()
MatchmakingShouldUseStopwatchMode bool MatchmakingShouldUseStopwatchMode()
Msg Msg()
newthread newthread(Vector)
PickupObject void PickupObject(handle, handle) Have a player pickup a nearby named entity
PlayerInstanceFromIndex handle PlayerInstanceFromIndex(int) Get a script instance of a player by index.
PlayerReadyStatus_ArePlayersOnTeamReady bool PlayerReadyStatus_ArePlayersOnTeamReady(int)
PlayerReadyStatus_HaveMinPlayersToEnable bool PlayerReadyStatus_HaveMinPlayersToEnable()
PlayerReadyStatus_ResetState void PlayerReadyStatus_ResetState()
PlayersAreOnMatchSummaryStage bool PlayersAreOnMatchSummaryStage()
PointsMayBeCaptured bool PointsMayBeCaptured() Are points able to be captured?
pow pow(num, num)
PrecacheEntityFromTable bool PrecacheEntityFromTable(handle) Precache an entity from KeyValues in table
PrecacheModel void PrecacheModel(string) Precache a model.
PrecacheSound void PrecacheSound(string) Precache a sound.
print print()
PrintHelp PrintHelp()
printl printl()
rand rand()
RandomFloat float RandomFloat(float, float) Generate a random floating point number within a range, inclusive
RandomInt int RandomInt(int, int) Generate a random integer within a range, inclusive
realPrint realPrint()
RegisterFunctionDocumentation RegisterFunctionDocumentation()
RegisterScriptGameEventListener void RegisterScriptGameEventListener(string) Register as a listener for a game event from script.
resurrectunreachable resurrectunreachable()
RetrieveNativeSignature RetrieveNativeSignature()
RotateOrientation QAngle RotateOrientation(QAngle, QAngle) Rotate a QAngle by another QAngle.
RotatePosition Vector RotatePosition(Vector, QAngle, Vector) Rotate a Vector around a point.
rstrip rstrip(string)
Say void Say(handle, string, bool) Have Entity say string, and teamOnly or not
ScreenFade void ScreenFade(handle, int, int, int, int, float, float, int) Start a screenfade with the following parameters. player, red, green, blue, alpha, flFadeTime, flFadeHold, flags
ScreenShake void ScreenShake(Vector, float, float, float, float, int, bool) Start a screenshake with the following parameters. vecCenter, flAmplitude, flFrequency, flDuration, flRadius, eCommand( SHAKE_START = 0, SHAKE_STOP = 1 ), bAirShake
ScriptDebugAddTextFilter ScriptDebugAddTextFilter()
ScriptDebugAddTrace ScriptDebugAddTrace()
ScriptDebugAddWatch ScriptDebugAddWatch()
ScriptDebugAddWatches ScriptDebugAddWatches()
ScriptDebugAddWatchPattern ScriptDebugAddWatchPattern()
ScriptDebugClearTraces ScriptDebugClearTraces()
ScriptDebugClearWatches ScriptDebugClearWatches()
ScriptDebugDefaultWatchColor ScriptDebugDefaultWatchColor()
ScriptDebugDraw ScriptDebugDraw()
ScriptDebugDrawWatches ScriptDebugDrawWatches()
ScriptDebugDumpKeys ScriptDebugDumpKeys()
ScriptDebugHook ScriptDebugHook()
ScriptDebugIterateKeys ScriptDebugIterateKeys()
ScriptDebugIterateKeysRecursive ScriptDebugIterateKeysRecursive()
ScriptDebugRemoveTextFilter ScriptDebugRemoveTextFilter()
ScriptDebugRemoveTrace ScriptDebugRemoveTrace()
ScriptDebugRemoveWatch ScriptDebugRemoveWatch()
ScriptDebugRemoveWatches ScriptDebugRemoveWatches()
ScriptDebugRemoveWatchPattern ScriptDebugRemoveWatchPattern()
ScriptDebugText ScriptDebugText()
ScriptDebugTextDraw ScriptDebugTextDraw()
ScriptDebugTextPrint ScriptDebugTextPrint()
ScriptDebugTextTrace ScriptDebugTextTrace()
ScriptDebugTraceAll ScriptDebugTraceAll()
ScriptDebugWatches ScriptDebugWatches()
SendToConsole void SendToConsole(string) Send a string to the console as a command
SendToConsoleServer void SendToConsoleServer(string) Copy of SendToServerConsole with another name for compat.
SendToServerConsole void SendToServerConsole(string) Send a string that gets executed on the server as a ServerCommand
setconsttable setconsttable()
setdebughook setdebughook()
seterrorhandler seterrorhandler()
SetFakeClientConVarValue void SetFakeClientConVarValue(handle, string, string) Sets a USERINFO client ConVar for a fakeclient
SetGravityMultiplier void SetGravityMultiplier(float)
SetMannVsMachineAlarmStatus void SetMannVsMachineAlarmStatus(bool)
SetOvertimeAllowedForCTF void SetOvertimeAllowedForCTF(bool)
SetPlayersInHell void SetPlayersInHell(bool)
setroottable setroottable()
SetUsingSpells void SetUsingSpells(bool)
ShowMessage void ShowMessage(string) Print a hud message on all clients
sin sin(num)
SpawnEntityFromTable handle SpawnEntityFromTable(string, handle) Spawn entity from KeyValues in table - 'name' is entity name, rest are KeyValues for spawn.
SpawnEntityGroupFromTable bool SpawnEntityGroupFromTable(handle) Hierarchically spawn an entity group from a set of spawn tables.
split split(string, string)
sqrt sqrt(num)
srand srand(num)
StopAmbientSoundOn void StopAmbientSoundOn(string, handle) Stop named ambient sound on an entity.
StopSoundOn void StopSoundOn(string, handle) Stop named sound on Entity
StringToFile bool StringToFile(string, string) Store a string to a file for later reading
strip strip(string)
suspend suspend()
tan tan(num)
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
TraceLineEx bool TraceLineEx(handle) Pass table - Inputs: start, end, mask, ignore -- outputs: pos, fraction, hit, enthit, startsolid
TraceLinePlayersIncluded float TraceLinePlayersIncluded(Vector, Vector, handle) given 2 points & ent to ignore, return fraction along line that hits world, models, players or npcs
type type()
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.
UsePlayerReadyStatusMode bool UsePlayerReadyStatusMode()
VSquirrel_OnCreateScope VSquirrel_OnCreateScope()
VSquirrel_OnReleaseScope VSquirrel_OnReleaseScope()

Squirrel Standard Library

[Todo]

See also