This article relates to the game "Team Fortress 2." Click here for more information.

List of TF2 Script Functions

From Valve Developer Community
Jump to: navigation, search

EnglishEspañol

Contents

Squirrel This list contains the engine-related Squirrel classes, functions and variables available for VScript in Team Fortress 2 Team Fortress 2.

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.
Tip.pngTip:Tutorial on setting up Visual Studio Code (VSCode), including auto-completing of VScript functions, can be found here.
To do THE TRAGIC I-NEED-HELP TODO TABLE To do
#1 To do: Figure out inheritance - CBaseMultiplayerPlayer's inheritance is unclear.
#2 To do: Constants and variables (e.g. PI). This did not used to include the update that added the Constants table.
#3 To do: Copy over documentation from the L4D2 page, since Team Fortress 2 is derived from the VScript version as Left 4 Dead 2.
#4 To do: Split the Globals section into various sub-sections, especially the built-in Squirrel functions.
#5 To do: Names for function sigs's params, since params are mysterious magical properties otherwise.
#6 To do: Format the data types's constructors more nicely
#7 To do: Script debug functions have no info other than their names!
#8 To do: Consolidate script function subpages from Left 4 Dead 2 together into a generic page that describes both Team Fortress 2 and Left 4 Dead 2, including any differences both branches have. E.g. TraceLine, ClientPrint...
#9 To do: Organize the hierarchy/section formatting of the NextBot classes properly

Instances

Name Class Description
Convars Convars Provides an interface to read and change the values of console variables.
Entities CEntities Provides access to currently spawned entities.
EntityOutputs CScriptEntityOutputs Allows manipulation of entity output data
NavMesh CNavMesh Provides access to the maps NavMesh and NavAreas.
NetProps CNetPropManager Allows reading and updating the network properties of an entity.
PlayerVoiceListener PlayerVoiceListener Tracks if any player is using voice and for how long.

Variables

Name Type Value / Description
Constants table Enumerations for various function arguments or netprops. See this page for the list.
Documentation table Contains the printed strings from the script_help command.
print_indent integer 0
_PublishedHelp table NONE

Script Debug

Name Type Value
ScriptDebugDefaultWatchColor array [0, 192, 0]
ScriptDebugDrawTextEnabled bool true
ScriptDebugDrawWatchesEnabled bool true
ScriptDebugInDebugDraw bool false
ScriptDebugText array NONE
ScriptDebugTextIndent integer 0
ScriptDebugTextFilters table NONE
ScriptDebugTraces table NONE
ScriptDebugTraceAllOn bool false
ScriptDebugWatches array NONE

Constants

A constant is a variable whose value cannot be altered during program runtime, usually made to rid any instances of magic numbers by giving them self-documenting names.

Name Type Value
_charsize_ integer 1
_floatsize_ integer 4
_intsize_ integer 4
_version_ string "Squirrel 3.2 stable"
_versionnumber_ integer 320
RAND_MAX integer 32767
PI float 3.14159

Enums

See this page for all enums under the Constants table.

There are also enums kept within the Constants table, all with their own constants. For an example of accessing an enum's constant, the HIDEHUD_CROSSHAIR constant of the enum HideHUD is accessed by doing Constants.HideHUD.HIDEHUD_CROSSHAIR.

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:

Methods

Function Signature Description
__KeyValueFromFloat bool __KeyValueFromFloat(string key, float value) Sets an entity keyvalue from a float. Returns true if successfully set, false if it fails such as the key not existing.

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.

Warning.png Warning: Does not update the internal network state of the entity, which can result in any desired visual changes being delayed for clients if used after spawning. Netprops can be used instead which correctly updates the networking state and results in an immediate update.
__KeyValueFromInt bool __KeyValueFromInt(string key, int value) Sets an entity keyvalue from an integer. Returns true if successfully set, false if it fails such as the key not existing.

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.

Warning.png Warning: See above.
__KeyValueFromString bool __KeyValueFromString(string key, string value) Sets an entity keyvalue from a string. Returns true if successfully set, false if it fails such as the key not existing.

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.

Warning.png Warning: See above.
__KeyValueFromVector bool __KeyValueFromVector(string key, Vector value) Sets an entity keyvalue from a Vector. Returns true if successfully set, false if it fails such as the key not existing.

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.

Warning.png Warning: See above.
AddEFlags void AddEFlags(int flags) Adds the supplied flags to the Entity Flags in the entity. (m_iEFlags datamap)

See Constants.FEntityEFlags.

AddFlag void AddFlag(int flags) Adds the supplied flags to another separate player-related entity flags system in the entity. (m_fFlags datamap)

See Constants.FPlayer.

AddSolidFlags void AddSolidFlags(int flags) Adds the supplied flags to the Solid Flags in the entity. (m_Collision.m_usSolidFlags datamap)

See Constants.FSolid.

ApplyAbsVelocityImpulse void ApplyAbsVelocityImpulse(Vector impulse) Apply a Velocity Impulse as a world space impulse vector. Works for most physics-based objects including dropped weapons and even dropped Sandviches.
ApplyLocalAngularVelocityImpulse void ApplyLocalAngularVelocityImpulse(Vector impulse) Apply an Angular Velocity Impulse in entity local space. The direction of the input vector is the rotation axis, and the length is the magnitude of the impulse.
BecomeRagdollOnClient bool BecomeRagdollOnClient(Vector impulse) Acts like the BecomeRagdoll input, with the required impulse value applied as a force on the ragdoll. Does NOT spawn a prop_ragdoll or any other entity.
ClearFlags void ClearFlags() Sets the player-related entity flags to 0 on an entity, clearing them.
ClearSolidFlags void ClearSolidFlags() Sets Solid Flags to 0 on an entity, clearing them.
ConnectOutput void ConnectOutput(string output, string function) Adds an I/O connection that will call the named function when the specified output fires.
Destroy void Destroy() Removes the entity. Simply calls UTIL_Remove.
DisableDraw void DisableDraw() Disable drawing and transmitting the entity to clients. (adds EF_NODRAW)
DisconnectOutput void DisconnectOutput(string output, string function) 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() Enable drawing and transmitting the entity to clients. (removes EF_NODRAW)
entindex int entindex() Returns the entity index.
EyeAngles QAngle EyeAngles() Returns the entity's eye angles. Acts like GetAbsAngles if the entity does not support it.
EyePosition Vector EyePosition() Get vector to eye position - absolute coords. Acts like GetOrigin if the entity does not support it.
FirstMoveChild handle FirstMoveChild() Returns the most-recent entity parented to this one.
GetAbsAngles QAngle GetAbsAngles() Get the entity's pitch, yaw, and roll as QAngles.
GetAbsVelocity Vector GetAbsVelocity() Returns the current absolute velocity of the entity.
Obsolete GetAngles (→ GetAbsAngles) Vector GetAngles() Get the entity's pitch, yaw, and roll as a Vector.
GetAngularVelocity Vector GetAngularVelocity() Get the local angular velocity - returns a Vector of pitch, yaw, and roll.
GetBaseVelocity Vector GetBaseVelocity() Returns any constant velocity currently being imparted onto the entity. This includes being pushed by effects like trigger_push and players standing on moving geometry like elevators. Should always returns a zero vector if the entity is not affected by any movement effects.
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()
GetCollisionGroup GetCollisionGroup() Gets the current collision group of the entity.
GetEFlags int GetEFlags()
GetFlags int GetFlags()
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
GetGravity float GetGravity()
GetHealth int GetHealth()
Obsolete GetLeftVector (→ GetRightVector) Vector GetLeftVector() Get the right vector of the entity. This is purely for compatibility.
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
GetMoveType int GetMoveType()
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
GetPhysAngularVelocity Vector GetPhysAngularVelocity()
GetPhysVelocity Vector GetPhysVelocity()
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
GetScriptThinkFunc string GetScriptThinkFunc() Retrieve the name of the current script think func
GetSolid int GetSolid()
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
Obsolete GetVelocity (→ GetAbsVelocity) Vector GetVelocity()
GetWaterLevel int GetWaterLevel()
GetWaterType int GetWaterType()
IsEFlagSet bool IsEFlagSet(int)
IsPlayer bool IsPlayer()
IsSolid bool IsSolid()
IsSolidFlagSet bool IsSolidFlagSet(int)
IsValid bool IsValid()
KeyValueFromFloat bool KeyValueFromFloat(string, float) Executes KeyValue with a float
Warning.png Warning: Does not update the internal network state of the entity, which can result in any desired visual changes being delayed for clients if used after spawning. Netprops can be used instead which correctly updates the networking state and results in an immediate update.
KeyValueFromInt bool KeyValueFromInt(string, int) Executes KeyValue with an int
Warning.png Warning: See above.
KeyValueFromString bool KeyValueFromString(string, string) Executes KeyValue with a string
Warning.png Warning: See above.
KeyValueFromVector bool KeyValueFromVector(string, Vector) Executes KeyValue with a vector
Warning.png Warning: See above.
Kill void Kill() Removes the entity. Equivalent of firing the Kill I/O input, but instantaneous.
LocalEyeAngles handle LocalEyeAngles() Returns the entity's local eye angles
NextMovePeer handle NextMovePeer()
PrecacheModel void PrecacheModel(string)
PrecacheScriptSound void PrecacheScriptSound(string)
PrecacheSoundScript void PrecacheSoundScript(string) Precache a sound for later playing.
RemoveEFlags void RemoveEFlags(int)
RemoveFlag void RemoveFlag(int)
RemoveSolidFlags void RemoveSolidFlags(int)
SetAbsAngles void SetAbsAngles(QAngle) Set entity pitch, yaw, roll as QAngles
SetAbsVelocity void SetAbsVelocity(Vector) Sets the current absolute velocity of the entity
SetAbsOrigin void SetAbsOrigin(Vector) SetAbsOrigin
Obsolete SetAngles (→ SetAbsAngles) void SetAngles(float, float, float) Set entity pitch, yaw, roll.
SetAngularVelocity void SetAngularVelocity(float, float, float) Set the local angular velocity - takes float pitch,yaw,roll velocities
SetCollisionGroup void SetCollisionGroup(int) Set the current collision group of the entity.

See Constants.ECollisionGroup

SetDrawEnabled void SetDrawEnabled(bool) Enables drawing if you pass true, disables drawing if you pass false.
SetEFlags void SetEFlags(int)
SetForwardVector void SetForwardVector(Vector) Set the orientation of the entity to have this forward vector
SetFriction void SetFriction(float)
SetGravity void SetGravity(float)
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
SetMoveType void SetMoveType(EMoveType movetype, EMoveCollide movecollide)
Obsolete SetOrigin (→ SetAbsOrigin) void SetOrigin(Vector)
SetOwner void SetOwner(handle) Sets this entity's owner
SetPhysAngularVelocity void SetPhysAngularVelocity(Vector)
SetPhysVelocity void SetPhysVelocity(Vector)
SetSize void SetSize(Vector mins, Vector maxs) Sets the bounding box's scale for this entity.
SetSolid SetSolid(int)
SetSolidFlags SetSolidFlags(int)
SetTeam void SetTeam(int)
SetVelocity void SetVelocity(Vector)
SetWaterLevel SetWaterLevel(int)
SetWaterType SetWaterType(int)
StopSound void StopSound(string) Stops a sound on this entity.
TakeDamage void TakeDamage(float flDamage, int nDamageType, handle hAttacker)
Teleport void Teleport(bool, Vector, bool, QAngle, bool, Vector) Teleports this entity
TerminateScriptScope void TerminateScriptScope() Clear the current script scope for this entity
ToggleFlag ToggleFlag(int)
TakeDamageEx void TakeDamageEx(handle hInflictor, handle hAttacker, handle hWeapon, Vector vecDamageForce, Vector vecDamagePosition, float flDamage, int nDamageType)
TakeDamageCustom void TakeDamageCustom(handle hInflictor, handle hAttacker, handle hWeapon, Vector vecDamageForce, Vector vecDamagePosition, float flDamage, int nDamageType, int nCustomDamageType)
ValidateScriptScope bool ValidateScriptScope() Ensure that an entity's script scope has been created

Hooks

Hooks are functions that are called by the game code at appropriate moments. For example, when an entity takes damage, the OnTakeDamage hook would be executed.

Function Signature Description
Input_name bool Input_name() Called when the entity receives an input from the I/O system that matches the function's name. The name of the function needs to beInputfollowed by the name of the input. E.g. for the FireUser1 input, it would beInputFireUser1.
Note.png Note: There is an inconsistency with the naming scheme of the inputs. Certain inputs are required in PascalCase format, others in lowercase format. For example, ForceDrop input on item_teamflag must be specified in lowercase, i.e. Inputforcedrop, but another input such as Kill input must be in PascalCase, i.e. InputKill. However it appears this inconsistency varies between different entity classes as well. It is currently unknown what causes this inconsistency.
Tip.png Tip: It may be best to define both variants of these function and have one be a wrapper for the other if the entity class is unknown.

When the function is called, Script Handles of the activator and caller entities are accessible to the function under the variablesactivatorandcaller. The function needs to return a boolean value; Returningtrueprocesses the input, whilefalsecancels it.

OnGameEvent_name void OnGameEvent_name(table params) Called each time a game event with the specified name occurs. The name of the function needs to be OnGameEvent_ followed by the name of the game event. E.g. for the player_spawn input, it would be OnGameEvent_player_spawn.

When the function is called, a table is passed to the function with keys that vary depending on the event. For example, the player_spawn event passes a table with the keys userid, team, class, while the deadringer_cheat_death event passes a table with the keys spy, attacker.

See this page for a list of game events as well as the table passed on each event.

Scripts containing OnGameEvent should also issue a call to the function __CollectGameEventCallbacks in order to work properly

OnPostSpawn void OnPostSpawn() Called after the entity spawns, which is after scripts and players have loaded. 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.
OnTakeDamage void OnTakeDamage(handle params) Called each time an entity takes damage. The script can modify the table entries not suffixed with const, and these will be sent back to the game code.
Note.pngNote:This is a special "entity hook" and works differently than the other hooks, see the example below for how to set it up.
Warning.pngWarning:This is called before any actual damage processing is done. Certain entries might not be calculated or have different values compared to what will be calculated.
Tip.png Tip: Listen for the player_hurt or npc_hurt event to effectively have an OnTakeDamage callback after final damage calculations are done.

The table contains the following keys:

Name Type Description
const_entity handle The entity which took damage
inflictor handle The entity which dealt the damage, can be null
weapon handle The weapon which dealt the damage, can be null
attacker handle The owner of the damage, can be null
damage float Damage amount
max_damage float Damage cap
damage_bonus float Additional damage (e.g. from crits)
damage_bonus_provider handle Owner of the damage bonus
base_damage_const float Base damage
damage_force Vector Damage force
damage_for_force_calc float If non-zero, this damage is used for force calculations
damage_position Vector Where the damage actually came from
reported_position Vector Where the damage supposedly came from
damage_type int Damage type. See Constants.FDmgType
damage_custom int Special damage type. See Constants.ETFDmgCustom
damage_stats int Unused
force_friendly_fire bool If true, force the damage to friendlyfire, regardless of this entity's and attacker's team
ammo_type int Unused
player_penetration_count int How many players the damage has penetrated so far
damaged_other_players int How many players other than the attacker has the damage been applied to. Used for rocket jump damage reduction
crit_type int Type of crit damage. 0 - None, 1 - Mini, 2 - Full
early_out bool If set to true by the script, the game's damage routine will not run and it will simply return the currently set damage.

Example:


function OnScriptHook_OnTakeDamage(params)
{
    printl("OnScriptHook_OnTakeDamage");

    if (params.const_entity.IsPlayer())
    {
        printl(params);
        params.damage = 0;
    }
}
__CollectGameEventCallbacks(this)

CBaseAnimating

Extends CBaseEntity

Script handle class for animatable entities, such as props.

Methods

Function Signature Description
DispatchAnimEvents void DispatchAnimEvents(handle entity) Dispatch animation events to a CBaseAnimating entity.
FindBodygroupByName int FindBodygroupByName(string name) Find a bodygroup ID by name. Returns -1 if the bodygroup does not exist.
GetAttachmentAngles QAngle GetAttachmentAngles(int ID) Get an attachment's angles as a QAngle, by ID.
GetAttachmentBone int GetAttachmentBone(int ID) Get an attachment's parent bone index by ID.
GetAttachmentOrigin Vector GetAttachmentOrigin(int ID) Get an attachment's origin as a Vector, by ID.
GetBodygroup int GetBodygroup(int ID) Get the bodygroup value by bodygroup ID.
GetBodygroupName string GetBodygroupName(int ID) Get the bodygroup's name by ID.
GetBodygroupPartName string GetBodygroupPartName(int group, int part) Get the bodygroup's name by group and part.
GetBoneAngles QAngle GetBoneAngles(int ID) Get the bone's angles as a QAngle, by ID.
GetBoneOrigin Vector GetBoneOrigin(int ID) Get the bone's origin Vector by ID.
GetCycle float GetCycle() Gets the model's current animation cycle rate.
GetModelScale float GetModelScale() Get the model's scale.
GetPlaybackRate float GetPlaybackRate() Get the current animation's playback rate.
GetSequence int GetSequence() Get the current-playing sequence's ID.
GetSequenceActivityName string GetSequenceActivityName(int ID) Get the activity name for a sequence by sequence ID.
GetSequenceDuration float GetSequenceDuration(int ID) Get a sequence duration in seconds by sequence ID.
GetSequenceName string GetSequenceName(int ID) Get a sequence name by sequence ID.
GetSkin int GetSkin() Gets the current skin index.
IsSequenceFinished bool IsSequenceFinished() Ask whether the main sequence is done playing.
LookupActivity int LookupActivity(string activity) Get the named activity index. Returns -1 if the activity does not exist.
LookupAttachment int LookupAttachment(string name) Get the named attachment index. Returns 0 if the attachment does not exist.
LookupBone int LookupBone(string bone) Get the named bone index. Returns -1 if the bone does not exist.
LookupSequence int LookupSequence(string name) Looks up a sequence by names of sequences or activities. Returns -1 if the sequence does not exist.
ResetSequence void ResetSequence(int ID) Reset a sequence by sequence ID. If the ID is different than the current sequence, switch to the new sequence.
SetBodygroup void SetBodygroup(int ID, int value) Set the bodygroup by ID.
SetCycle void SetCycle(float) Sets the model's current animation cycle
SetModelSimple void SetModelSimple(string) Set a model for this entity. Matches easier behaviour of the SetModel input, automatically precaches, maintains sequence/cycle if possible.
SetModelScale void SetModelScale(float scale, float change_duration) Changes a model's scale over time. Set the change duration to 0.0 to change the scale instantly.
SetPlaybackRate void SetPlaybackRate(float rate) Set the current animation's playback rate.
SetPoseParameter float SetPoseParameter(int ID, float value) Sets a pose parameter value. Returns the effective value after clamping or looping.
SetSequence void SetSequence(int ID) Plays a sequence by sequence ID.
SetSkin void SetSkin(int index) Sets the model's skin.
StopAnimation void StopAnimation() Stop the current animation (same as SetPlaybackRate 0.0)
StudioFrameAdvance void StudioFrameAdvance() Advance animation frame to some time in the future with an automatically calculated interval
StudioFrameAdvanceManual void StudioFrameAdvanceManual(float) Advance animation frame to some time in the future with a manual interval

CBaseCombatWeapon

Extends CBaseAnimating

Script handle class for any weapon entities that can be part of a player's inventory.
Team Fortress 2's weapons leave Clip2 unused, so those functions can be ignored

Methods

Function Signature Description
CanBeSelected bool CanBeSelected() Can this weapon be selected
Clip1 int Clip1() Current ammo in clip1
Clip2 int Clip2() Current ammo in clip2
GetDefaultClip1 int GetDefaultClip1() Default size of clip1
GetDefaultClip2 int GetDefaultClip2() Default size of clip2
GetMaxClip1 int GetMaxClip1() Max size of clip1
GetMaxClip2 int GetMaxClip2() Max size of clip2
GetName string GetName() Gets the weapon's name
GetPosition int GetPosition() Gets the weapon's current position
GetPrimaryAmmoCount int GetPrimaryAmmoCount() Current primary ammo count if no clip is used or to give a player if they pick up this weapon legacy style (not TF)
GetPrimaryAmmoType int GetPrimaryAmmoType() Returns the primary ammo type
GetPrintName string GetPrintName() Gets the weapon's print name
GetSecondaryAmmoCount int GetSecondaryAmmoCount() Current secondary ammo count if no clip is used or to give a player if they pick up this weapon legacy style (not TF)
GetSecondaryAmmoType int GetSecondaryAmmoType() Returns the secondary ammo type
GetSlot int GetSlot() Gets the weapon's current slot
GetSubType int GetSubType() Get the weapon subtype
GetWeaponFlags int GetWeaponFlags() Get the weapon flags
GetWeight int GetWeight() Get the weapon weighting/importance
HasAnyAmmo bool HasAnyAmmo() Do we have any ammo?
HasPrimaryAmmo bool HasPrimaryAmmo() Do we have any primary ammo?
HasSecondaryAmmo bool HasSecondaryAmmo() Do we have any secondary ammo?
IsAllowedToSwitch bool IsAllowedToSwitch() Are we allowed to switch to this weapon?
IsMeleeWeapon bool IsMeleeWeapon() Returns whether this is a melee weapon
PrimaryAttack void PrimaryAttack() Force a primary attack
Warning.pngWarning:Hitscan and melee weapons require lag compensation information to be present, or the game will crash! Calling this from a player's think function is sufficient. Alternatively, lag compensation can be temporarily disabled which allows calling this function from anywhere, with the side effect of poor hit registration for high latency players. This can be achieved by setting the m_bLagCompensation netprop on the player to to false, calling this function, and reverting it back to true.
SecondaryAttack void SecondaryAttack() Force a secondary attack
Warning.pngWarning:See above.
SetClip1 void SetClip1(int amount) Set current ammo in clip1.
SetClip2 void SetClip2(int amount) Set current ammo in clip2.
SetCustomViewModel void SetCustomViewModel(string modelName) Sets a custom view model for this weapon by model name.
SetCustomViewModelModelIndex void SetCustomViewModelModelIndex(int modelIndex) Sets a custom view model for this weapon by modelindex.
SetSubType void SetSubType(int subtype) Set the weapon subtype
UsesClipsForAmmo1 bool UsesClipsForAmmo1() Do we use clips for ammo 1?
UsesClipsForAmmo2 bool UsesClipsForAmmo2() Do we use clips for ammo 2?
UsesPrimaryAmmo bool UsesPrimaryAmmo() Do we use primary ammo?
UsesSecondaryAmmo bool UsesSecondaryAmmo() Do we use secondary ammo?
VisibleInWeaponSelection bool VisibleInWeaponSelection() Is this weapon visible in weapon selection

CBaseFlex

Extends CBaseAnimating

Animated characters who have vertex flex capability (e.g., facial expressions).

Methods

Function Signature Description
PlayScene float PlayScene(string sceneFile, float delay) Play the specified .vcd file, causing the related characters to speak and subtitles to play.

CBaseCombatCharacter

Extends CBaseFlex

Combat entities with similar movement capabilities to a player.

Methods

Function Signature Description
GetLastKnownArea handle GetLastKnownArea() Return the last nav area occupied, NULL if unknown.

See CTFNavArea.

CBasePlayer

Extends CBaseCombatCharacter

Script handle class for player entities.

Methods

Function Signature Description
GetForceLocalDraw bool GetForceLocalDraw() Whether the player is being forced by SetForceLocalDraw to be drawn.
GetPlayerMaxs Vector GetPlayerMaxs() Get a vector containing max bounds of the player in local space.
GetPlayerMins Vector GetPlayerMins() Get a vector containing min bounds of the player in local space.
GetScriptOverlayMaterial string GetScriptOverlayMaterial() Gets the current overlay material set by SetScriptOverlayMaterial.
IsNoclipping bool IsNoclipping() Returns true if the player is in noclip mode.
SetForceLocalDraw void SetForceLocalDraw(bool forceDraw) Forces the player to be drawn as if they were in thirdperson.
SetScriptOverlayMaterial void SetScriptOverlayMaterial(string material) Sets the overlay material that can't be overriden by other overlays. E.g. Jarate.
SnapEyeAngles void SnapEyeAngles(QAngle angles) Snap the player's eye angles to this.
ViewPunch void ViewPunch(QAngle angleOffset) Ow! Punches the player's view.
ViewPunchReset void ViewPunchReset(float tolerance) Reset's the player's view punch if the offset stays below the given tolerance.

CBaseMultiplayerPlayer

Extends CBasePlayer

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


CEconEntity

Extends CBaseAnimating

Script handle class for economic exquisite equippables, meaning hats and weapons.

Methods

Function Signature Description
AddAttribute void AddAttribute(string name, float value, float delay) Add an attribute to the entity. Set delay to -1 for the attributeto be applied instanteously.
RemoveAttribute void RemoveAttribute(string name) Remove an attribute from the entity.
ReapplyProvision void ReapplyProvision() Relinks attributes to provisioners, e.g. calling this on a weapon will add it's attributes to the player.

CTFPlayer

Extends CBaseMultiplayerPlayer

Script handle class for player entities of Team Fortress 2.

Methods

Function Signature Description
AddCond void AddCond(ETFCond cond)
AddCondEx void AddCondEx(ETFCond cond, float duration, handle provider)
AddCurrency void AddCurrency(int) Kaching! Give the player some cash for game modes with upgrades, ie. MvM
AddCustomAttribute void AddCustomAttribute(string name, float value, float delay) Add a custom attribute to the player. Set delay to -1 for the attributeto be applied instanteously.
ApplyPunchImpulseX bool ApplyPunchImpulseX(float)
BleedPlayer void BleedPlayer(float)
BleedPlayerEx void BleedPlayerEx(float, int, bool, int)
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?
ClearCustomModelRotation void ClearCustomModelRotation()
ClearSpells void ClearSpells()
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.
EquipWearableViewModel void EquipWearableViewModel(handle ent) Equips a wearble on the viewmodel. Intended to be used with tf_wearable_vm entities.
ExtinguishPlayerBurning void ExtinguishPlayerBurning()
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.
ForceRegenerateAndRespawn void ForceRegenerateAndRespawn() Force regenerates and respawns the player
ForceRespawn void ForceRespawn() Force respawns the player
GetActiveWeapon handle GetActiveWeapon() Get the player's current weapon
GetBackstabs int GetBackstabs()
GetBonusPoints int GetBonusPoints()
GetBotType int GetBotType()
GetBuildingsDestroyed int GetBuildingsDestroyed()
GetCaptures int GetCaptures()
GetClassEyeHeight Vector GetClassEyeHeight() Gets the eye height of the player
GetCondDuration float GetCondDuration(ETFCond cond)
GetCurrency int GetCurrency() Get player's cash for game modes with upgrades, ie. MvM
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()
GetLastWeapon GetLastWeapon()
GetNextChangeClassTime float GetNextChangeClassTime() Get next change class time.
GetNextChangeTeamTime float GetNextChangeTeamTime() Get next change team time.
GetNextRegenTime float GetNextRegenTime() Get next health regen time.
GetPlayerClass int GetPlayerClass()
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
GrantOrRemoveAllUpgrades GrantOrRemoveAllUpgrades(bool, bool)
HasItem bool HasItem() Currently holding an item? Eg. capture flag
IgnitePlayer void IgnitePlayer()
InAirDueToExplosion bool InAirDueToExplosion()
InAirDueToKnockback bool InAirDueToKnockback()
InCond bool InCond(ETFCond cond)
IsAirDashing bool IsAirDashing()
IsAllowedToTaunt bool IsAllowedToTaunt()
IsBotOfType bool IsBotOfType(int)
IsCallingForMedic bool IsCallingForMedic() Is this player calling for medic?
IsCarryingRune bool IsCarryingRune()
IsControlStunned bool IsControlStunned()
IsCritBoosted bool IsCritBoosted()
IsFakeClient bool IsFakeClient()
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()
IsViewingCYOAPDA bool IsViewingCYOAPDA()
Regenerate void Regenerate(bool) Resupplies a player. If regen health/ammo is set, clears negative conds, gives back player health/ammo
RemoveAllItems void RemoveAllItems(bool)
RemoveAllObjects void RemoveAllObjects(bool) Remove all player objects. Eg. dispensers/sentries.
RemoveCond void RemoveCond(ETFCond cond)
RemoveCondEx void RemoveCondEx(ETFCond cond, bool ignoreDuration)
RemoveCurrency void RemoveCurrency(int) Take away money from a player for reasons such as ie. spending.
RemoveCustomAttribute void RemoveCustomAttribute(string) Remove a custom attribute to the player
RemoveDisguise void RemoveDisguise() Undisguise a spy.
RemoveInvisibility void RemoveInvisibility() Un-invisible a spy.
RemoveTeleportEffect void RemoveTeleportEffect()
ResetScores void ResetScores()
RollRareSpell void RollRareSpell()
SetCondDuration void SetCondDuration(ETFCond cond, float duration)
SetCurrency void SetCurrency(int) Set player's cash for game modes with upgrades, ie. MvM
SetCurrentTauntMoveSpeed void SetCurrentTauntMoveSpeed(float)
SetCustomModel void SetCustomModel(string)
SetCustomModelOffset void SetCustomModelOffset(Vector)
SetCustomModelRotates void SetCustomModelRotates(bool)
SetCustomModelRotation void SetCustomModelRotation(QAngle)
SetCustomModelVisibleToSelf void SetCustomModelVisibleToSelf(bool)
SetCustomModelWithClassAnimations void SetCustomModelWithClassAnimations(string)
SetDisguiseAmmoCount void SetDisguiseAmmoCount(int)
SetForcedTauntCam void SetForcedTauntCam(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.
SetPlayerClass void SetPlayerClass(int) Sets the player class. Updates the player's visuals and model.
Note.png Note: Does not regenerate class properties, such as health or weapons. This can be done by calling ForceRegenerateAndRespawn afterwards.
Warning.png Warning: If the player is not respawned, the hitbox set will be used from the old class! Calling SetCustomModel with a blank parameter is sufficient to update it.
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
UpdateSkin UpdateSkin(num)
WasInCond bool WasInCond(ETFCond cond)
Weapon_CanUse bool Weapon_CanUse(handle weapon)
Weapon_Drop void Weapon_Drop(handle weapon)
Weapon_DropEx void Weapon_DropEx(handle weapon, Vector target, Vector velocity)
Weapon_Equip void Weapon_Equip(handle weapon)
Weapon_SetLast void Weapon_SetLast(handle weapon)
Weapon_ShootPosition Vector Weapon_ShootPosition()
Weapon_Switch void Weapon_Switch(handle weapon)

CTFBot

Extends CTFPlayer and NextBotCombatCharacter

Script handle class for bot-controlled players aka tf_bot. Beep boop.

Methods

Function Signature Description
AddBotAttribute void AddBotAttribute(int) Sets attribute flags on this TFBot
AddBotTag void AddBotTag(string) Adds a bot tag
AddWeaponRestriction void AddWeaponRestriction(int) Adds weapon restriction flags
ClearAllBotAttributes void ClearAllBotAttributes() Clears all attribute flags on this TFBot
ClearAllBotTags void ClearAllBotTags() Clears bot tags
ClearAllWeaponRestrictions void ClearAllWeaponRestrictions() Removes all weapon restriction flags
ClearAttentionFocus void ClearAttentionFocus() Clear current focus
DelayedThreatNotice void DelayedThreatNotice(handle, float)
DisbandCurrentSquad void DisbandCurrentSquad() Forces the current squad to be entirely disbanded by everyone
FindVantagePoint handle FindVantagePoint(float) Get the nav area of the closest vantage point (within distance)
GenerateAndWearItem void GenerateAndWearItem(string) Give me an item!
GetHomeArea handle GetHomeArea() Sets the home nav area of the bot
GetDifficulty ETFBotDifficultyType GetDifficulty() Returns the bot's difficulty level
GetMaxVisionRangeOverride float GetMaxVisionRangeOverride() Gets the max vision range override for the bot
GetNearestKnownSappableTarget handle GetNearestKnownSappableTarget() Gets the nearest known sappable target
GetSpawnArea handle GetSpawnArea() Return the nav area of where we spawned
GetSquadFormationError float GetSquadFormationError() Gets our formation error coefficient.
HasBotAttribute bool HasBotAttribute(int) Checks if this TFBot has the given attributes
HasBotTag bool HasBotTag(string) Checks if this TFBot has the given bot tag
HasWeaponRestriction bool HasWeaponRestriction(int) Checks if this TFBot has the given weapon restriction flags
IsAmmoFull bool IsAmmoFull()
IsAmmoLow bool IsAmmoLow()
IsAttentionFocused bool IsAttentionFocused() Is our attention focused right now?
IsAttentionFocusedOn bool IsAttentionFocusedOn(handle) Is our attention focused on this entity
IsDifficulty bool IsDifficulty(int) Returns true/false if the bot's difficulty level matches.
IsInASquad bool IsInASquad() Checks if we are in a squad
IsWeaponRestricted bool IsWeaponRestricted(handle) Checks if the given weapon is restricted for use on the bot
LeaveSquad void LeaveSquad() Makes us leave the current squad (if any)
PressAltFireButton void PressAltFireButton(float duration)
PressFireButton void PressFireButton(float duration)
PressSpecialFireButton void PressSpecialFireButton(float duration)
RemoveBotAttribute void RemoveBotAttribute(int) Removes attribute flags on this TFBot
RemoveBotTag void RemoveBotTag(string) Removes a bot tag
RemoveWeaponRestriction void RemoveWeaponRestriction(int) Removes weapon restriction flags
SetAttentionFocus void SetAttentionFocus(handle) Sets our current attention focus to this entity
SetAutoJump void SetAutoJump(float minTime, float maxTime) Sets if the bot should automatically jump, and how often.
SetDifficulty void SetDifficulty(int) Sets the bots difficulty level
SetHomeArea void SetHomeArea(handle) Returns the home nav area of the bot -- may be nil.
SetMaxVisionRangeOverride void SetMaxVisionRangeOverride(float) Sets max vision range override for the bot
SetScaleOverride void SetScaleOverride(float) Sets the scale override for the bot
SetShouldQuickBuild void SetShouldQuickBuild(bool) Sets if the bot should build instantly
SetSquadFormationError void SetSquadFormationError(float) Sets our formation error coefficient.
ShouldAutoJump bool ShouldAutoJump() Returns if the bot should automatically jump
ShouldQuickBuild bool ShouldQuickBuild() Returns if the bot should build instantly
UpdateDelayedThreatNotices void UpdateDelayedThreatNotices()

Convars

Game Instance: Convars

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

Note.pngNote:Protected convars (e.g. rcon_password) cannot be accessed.

Methods

Function Signature Description
GetBool bool GetClientConvarValue(string name) Returns the convar as a bool. May return null if no such convar.
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.
GetInt int GetInt(string name) Returns the convar as an int. May return null if no such convar.
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.
IsConVarOnAllowList bool IsConVarOnAllowList(string name) Checks if the convar is allowed to be used and is in cfg/vscript_convar_allowlist.txt. Please be nice with this and use it for *compatibility* if you need check support and NOT to force server owners to allow hostname to be set... or else this will simply lie and return true in future. ;-) You have been warned!
SetValue void SetValue(string name, any value) Sets the value of the convar. The convar must be in cfg/vscript_convar_allowlist.txt to be set. Convars marked as cheat-only can be set even if sv_cheats is off. Convars marked as dev-only (i.e. not visible in console) can also be set. 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, "tf_weapon_*") )
{
  // ...
}
for (local ent; ent = Entities.FindByName(ent, "tf_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 "tf_weapon_" or it returns null.

Methods

Function Signature Description
CreateByClassname handle CreateByClassname(string classname) Creates an entity by classname
DispatchSpawn void DispatchSpawn(handle entity) Dispatches spawn of an entity!
FindByClassname handle FindByClassname(handle previous, string classname) Find entities by the value of their classname keyvalue. Pass 'null' to start an iteration, or reference to a previously found entity to continue a search
Note.pngNote:The classname keyvalue of an entity can be manipulated and does not necessarily reflect its code class. There might be entities that have a different classname than the one they are created with.
FindByClassnameNearest handle FindByClassnameNearest(string classname, Vector center, float radius) Find entities by classname nearest to a point.
FindByClassnameWithin handle FindByClassnameWithin(handle previous, string classname, Vector center, float radius) Find entities by classname within a radius. Pass 'null' to start an iteration, or reference to a previously found entity to continue a search
FindByModel handle FindByModel(handle previous, string modelname) Find entities by the value of their model keyvalue. Pass 'null' to start an iteration, or reference to a previously found entity to continue a search
FindByName handle FindByName(handle previous, string targetname) Find entities by the value of their targetname keyvalue. Pass 'null' to start an iteration, or reference to a previously found entity to continue a search
FindByNameNearest handle FindByNameNearest(string targetname, Vector center, float radius) Find entities by targetname nearest to a point.
FindByNameWithin handle FindByNameWithin(handle previous, string targetname, Vector center, float radius) Find entities by targetname within a radius. Pass 'null' to start an iteration, or reference to a previously found entity to continue a search
FindByTarget handle FindByTarget(handle previous, string target) Find entities by the value of their target keyvalue.[confirm] Pass 'null' to start an iteration, or reference to a previously found entity to continue a search
FindInSphere handle FindInSphere(handle previous, Vector center, float radius) 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 previous) At the given reference of a previously-found entity, returns the next one after it in the list.

CTFNavArea

Script handle class for areas part of the navigation mesh.

Methods

Function Signature Description
AddIncomingConnection void AddIncomingConnection(handle area, int dir) Add areas that connect TO this area by a ONE-WAY link
ClearAttributeTF void ClearAttributeTF(int bits) Clear TF-specific area attribute bits.
ComputeClosestPointInPortal Vector ComputeClosestPointInPortal(handle to, ENavDirType dir, Vector closePos) Compute closest point within the "portal" between to an area's direction from the given position.
ComputeDirection int ComputeDirection(Vector point) Return direction from this area to the given point.
ConnectTo void ConnectTo(handle area, int dir) Connect this area to given area in given direction.
Contains bool Contains(handle area) Return true if other area is on or above this area, but no others.
ContainsOrigin bool ContainsOrigin(Vector point) Return true if given point is on or above this area, but no others.
DebugDrawFilled void DebugDrawFilled(int r, int g, int b, int a, float duration, bool noDepthTest) Draw area as a filled rectangle of the given color.
Disconnect void Disconnect(handle area) Disconnect this area from given area.
FindRandomSpot Vector FindRandomSpot() Get random origin within extent of area.
GetAdjacentArea handle GetAdjacentArea(int dir, int n) Return the n'th adjacent area in the given direction
GetAdjacentAreas void GetAdjacentAreas(int dir, handle table) Fills a passed in table with all adjacent areas in the given direction.
GetAdjacentCount int GetAdjacentCount(ENavDirType dir) Get the number of adjacent areas in the given direction.
GetAttributes int GetAttributes() Get area attribute bits.
GetAvoidanceObstacleHeight float GetAvoidanceObstacleHeight() Returns the maximum height of the obstruction above the ground.
GetCenter Vector GetCenter() Get center origin of area.
GetCorner Vector GetCorner(ENavDirType dir) Get corner origin of area.
GetDistanceSquaredToPoint float GetDistanceSquaredToPoint(Vector pos) Return shortest distance between point and this area.
GetDoor handle GetDoor() Returns the door entity above the area.
GetElevator handle GetElevator() Returns the elevator if in an elevator's path.
GetElevatorAreas void GetElevatorAreas(handle table) Fills table with a collection of areas reachable via elevator from this area.
GetID int GetID() Get area ID.
GetIncomingConnections void GetIncomingConnections(ENavDirType dir, handle table) Fills a passed in table with areas connected TO this area by a ONE-WAY link (ie: we have no connection back to them).
GetParent handle GetParent() Returns the area just prior to this one in the search path.
GetParentHow int GetParentHow() Returns how we get from parent to us.
GetPlaceName string GetPlaceName() Get place name if it exists, null otherwise.
GetPlayerCount int GetPlayerCount(int team) Return number of players of given team currently within this area (team of zero means any/all).
GetRandomAdjacentArea handle GetRandomAdjacentArea(int dir) Return a random adjacent area in the given direction.
GetSizeX float GetSizeX() Return the area size along the X axis.
GetSizeY float GetSizeY() Return the area size along the Y axis.
GetTravelDistanceToBombTarget float GetTravelDistanceToBombTarget() Gets the travel distance to the MvM bomb target.
GetZ float GetZ(Vector pos) Return Z of area at (x,y) of 'pos'
HasAttributeTF bool HasAttributeTF(int bits) Has TF-specific area attribute bits of the given ones.
HasAttributes bool HasAttributes(int bits) Has area attribute bits of the given ones?.
HasAvoidanceObstacle bool HasAvoidanceObstacle(float maxheight) Returns true if there's a large, immobile object obstructing this area
IsBlocked bool IsBlocked(int team, bool affectsFlow) Return true if team is blocked in this area.
IsBottleneck bool IsBottleneck() Returns true if area is a bottleneck. (tiny narrow areas with only one path)
IsCompletelyVisibleToTeam bool IsCompletelyVisibleToTeam(int team) Return true if given area is completely visible from somewhere in this area by someone on the team.
IsConnected bool IsConnected(handle area, ENavDirType dir) Return true if this area is connected to other area in given direction. (If you set direction to -1 or 4, it will automatically check all directions for a connection).
IsCoplanar bool IsCoplanar(handle area) Return true if this area and given. area are approximately co-planar
IsDamaging bool IsDamaging() Return true if this area is marked to have continuous damage.
IsDegenerate bool IsDegenerate() Return true if this area is badly formed.
IsEdge bool IsEdge(ENavDirType dir) Return true if there are no bi-directional links on the given side.
IsFlat bool IsFlat() Return true if this area is approximately flat.
IsOverlapping bool IsOverlapping(handle area) Return true if 'area' overlaps our 2D extents.
IsOverlappingOrigin bool IsOverlappingOrigin(Vector pos, float tolerance) Return true if 'pos' is within 2D extents of area.
IsPotentiallyVisibleToTeam bool IsPotentiallyVisibleToTeam(int team) Return true if any portion of this area is visible to anyone on the given team.
IsReachableByTeam bool IsReachableByTeam(int team) Is this area reachable by the given team?
IsRoughlySquare bool IsRoughlySquare() Return true if this area is approximately square.
IsTFMarked bool IsTFMarked() Is this nav area marked with the current marking scope?
IsUnderwater bool IsUnderwater() Return true if area is underwater.
IsValidForWanderingPopulation bool IsValidForWanderingPopulation() Returns true if area is valid for wandering population.
IsVisible bool IsVisible(Vector point) Return true if area is visible from the given eyepoint.
MarkAsBlocked void MarkAsBlocked(int team) Mark this area as blocked for team.
MarkAsDamaging void MarkAsDamaging(float duration) Mark this area is damaging for the next 'duration' seconds.
MarkObstacleToAvoid void MarkObstacleToAvoid(float height) Marks the obstructed status of the nav area.
RemoveAttributes void RemoveAttributes(int bits) Removes area attribute bits.
RemoveOrthogonalConnections void RemoveOrthogonalConnections(ENavDirType dir) Removes all connections in directions to left and right of specified direction.
SetAttributeTF void SetAttributeTF(int bits) Set TF-specific area attributes.
SetAttributes void SetAttributes(int bits) Set area attribute bits.
SetPlaceName void SetPlaceName(string name) Set place name. If you pass null, the place name will be set to nothing.
TFMark void TFMark() Mark this nav area with the current marking scope.
UnblockArea void UnblockArea() Unblocks this area.

CNavMesh

Game Instance: NavMesh

An interface to collect nav areas from, especially for pathfinding needs.

Methods

Function Signature Description
FindNavAreaAlongRay handle FindNavAreaAlongRay(Vector startpos, Vector endpos, handle ignoreAreaID) get nav area from ray
GetAllAreas void GetAllAreas(handle table) fills a passed in table of all nav areas
GetAreasWithAttributes void GetAreasWithAttributes(int bits, handle table) fills a passed in table of all nav areas that have the specified attributes
GetNavArea handle GetNavArea(Vector origin, float flBeneath) given a position in the world, return the nav area that is closest to or below that height.
GetNavAreaByID handle GetNavAreaByID(int areaID) get nav area by ID
GetNavAreaCount int GetNavAreaCount() return total number of nav areas
GetNavAreasFromBuildPath bool GetNavAreasFromBuildPath(handle startArea, handle endArea, Vector goalPos, float flMaxPathLength, int teamID, bool ignoreNavBlockers, handle table) Fills the table with areas from a path. Returns whether a path was found. If 'endArea' is NULL, will compute a path as close as possible to 'goalPos'.
GetNavAreasInRadius void GetNavAreasInRadius(Vector origin, float radius, handle table) fills a passed in table of nav areas within radius
GetNavAreasOverlappingEntityExtent void GetNavAreasOverlappingEntityExtent(handle entity, handle table) fills passed in table with areas overlapping entity's extent
GetNearestNavArea handle GetNearestNavArea(Vector origin, float maxDist, bool checkLOS, bool checkGround) given a position in the world, return the nav area that is closest to or below that height.
GetObstructingEntities void GetObstructingEntities(handle table) fills a passed in table of all obstructing entities
NavAreaBuildPath bool NavAreaBuildPath(handle startArea, handle endArea, Vector goalPos, float flMaxPathLength, int teamID, bool ignoreNavBlockers) returns true if a path exists
NavAreaTravelDistance float NavAreaTravelDistance(handle startArea, handle endArea, float flMaxPathLength) compute distance between two areas. Return -1 if can't reach 'endArea' from 'startArea'
RegisterAvoidanceObstacle void RegisterAvoidanceObstacle(handle entity) registers avoidance obstacle
UnregisterAvoidanceObstacle void UnregisterAvoidanceObstacle(handle entity) unregisters avoidance obstacle

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.png Tip: Resources for finding netprops and datamaps of entities:
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(handle entity, string propertyName) Returns the size of an netprop array, or -1.
GetPropEntity handle GetPropEntity(handle entity, string propertyName) Reads an EHANDLE-valued netprop (21 bit integer). Returns the script handle of the entity.
GetPropEntityArray handle GetPropEntityArray(handle entity, string propertyName, int arrayElement) Reads an EHANDLE-valued netprop (21 bit integer) from an array. Returns the script handle of the entity.
GetPropBool bool GetPropBool(handle entity, string propertyName) Reads a boolean-valued netprop.
GetPropBoolArray bool GetPropBoolArray(handle entity, string propertyName, int arrayElement) Reads a boolean-valued netprop from an array.
GetPropFloat float GetPropFloat(handle entity, string propertyName) Reads a float-valued netprop.
GetPropFloatArray float GetPropFloatArray(handle entity, string propertyName, int arrayElement) Reads a float-valued netprop from an array.
GetPropInfo bool GetPropInfo(handle entity, string propertyName, int arrayElement, handle table) Fills in a passed table with property info for the provided entity.
GetPropInt int GetPropInt(handle entity, string propertyName) Reads an integer-valued netprop.
GetPropIntArray int GetPropIntArray(handle entity, string propertyName, int arrayElement) Reads an integer-valued netprop from an array.
GetPropString string GetPropString(handle entity, string propertyName) Reads an string-valued netprop.
GetPropStringArray string GetPropStringArray(handle entity, string propertyName, int arrayElement) Reads an string-valued netprop from an array.
GetPropType string GetPropType(handle entity, string propertyName) Returns the name of the netprop type as a string.
GetPropVector Vector GetPropVector(handle entity, string propertyName) Reads a 3D vector-valued netprop. To do:  Does it work for other dimensions too?
GetPropVectorArray Vector GetPropVectorArray(handle entity, string propertyName, int arrayElement) Reads a 3D vector-valued netprop from an array.
GetTable void GetTable(handle entity, int iPropType, handle table) Fills in a passed table with all props of a specified type for the provided entity (set iPropType to 0 for SendTable or 1 for DataMap)
HasProp bool HasProp(handle entity, string propertyName) Checks if a netprop exists.
SetPropBool void SetPropBool(handle entity, string propertyName, bool value) Sets a netprop to the specified boolean.
SetPropBoolArray void SetPropBoolArray(handle entity, string propertyName, bool value, int arrayElement) Sets a netprop from an array to the specified boolean.
SetPropEntity void SetPropEntity(handle entity, string propertyName, handle value) Sets an EHANDLE-valued netprop (21 bit integer) to reference the specified entity.
SetPropEntityArray void SetPropEntityArray(handle entity, string propertyName, handle value, int arrayElement) Sets an EHANDLE-valued netprop (21 bit integer) from an array to reference the specified entity.
SetPropFloat void SetPropFloat(handle entity, string propertyName, float value) Sets a netprop to the specified float.
SetPropFloatArray void SetPropFloatArray(handle entity, string propertyName, float value, int arrayElement) Sets a netprop from an array to the specified float.
SetPropInt void SetPropInt(handle entity, string propertyName, int value) Sets a netprop to the specified integer.
SetPropIntArray void SetPropIntArray(handle entity, string propertyName, int value, int arrayElement) Sets a netprop from an array to the specified integer.
SetPropString void SetPropString(handle entity, string propertyName, string value) Sets a netprop to the specified string.
SetPropStringArray void SetPropStringArray(handle entity, string propertyName, string value, int arrayElement) Sets a netprop from an array to the specified string.
SetPropVector void SetPropVector(handle entity, string propertyName, Vector value) Sets a netprop to the specified vector.
SetPropVectorArray void SetPropVectorArray(handle 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(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 ntity entity, string outputName) Returns the number of array elements.
GetOutputTable void GetOutputTable(handle entity, string outputName, table, int arrayElement) Fills the passed table with output information.
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.


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

Game Instance: PlayerVoiceListener

Tracks if any player is using voice and for how long.

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.

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(handle 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. If multiple entities have the same name, only the one with the lowest entity index will be targeted.

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.
Note.pngNote:PostSpawn() will not be called unless the PreSpawnInstance() function is also defined in the script.

function PostSpawn( entities )
{
	foreach( targetname, handle in entities )
	{
		printl( targetname + ": " + handle )
	}
}
Example

Spawned entities can be accessed synchronously in script by using an entity maker. The following generalised example creates a global SpawnMyEntity() function which spawns and returns the templated entity. It can be modified to support multiple templated entities.


m_hSpawnedEntity <- null;
m_KeyValues <- null;

m_hSpawner <- Entities.CreateByClassname( "env_entity_maker" );
m_hSpawner.__KeyValueFromString( "EntityTemplate", self.GetName() );

function PreSpawnInstance( classname, targetname )
{
	return m_KeyValues;
}

function PostSpawn( entities )
{
	foreach ( targetname, entity in entities )
	{
		m_hSpawnedEntity = entity;
		break;
	}
}

::SpawnMyEntity <- function( keyvalues = null )
{
	m_KeyValues = keyvalues;
	m_hSpawner.SpawnEntity();
	return m_hSpawnedEntity;
}.bindenv(this)

Spawn templated entities from any script.


local ent = SpawnMyEntity( {
	rendercolor = Vector( RandomInt(0, 255), RandomInt(0, 255), RandomInt(0, 255) )
} )

printl( ent )

CFuncTrackTrain

Extends CBaseEntity

Script handle class for func_tracktrain.

Methods

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


CPointScriptTemplate

Extends CBaseEntity

Script handle class for point_script_template.

Methods

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


CSceneEntity

Extends CBaseEntity

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

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.


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.

NextBotCombatCharacter

Extends CBaseCombatCharacter

Script handle class for non-playable combat characters operating under the NextBot system.

Methods

Function Signature Description
ClearImmobileStatus void ClearImmobileStatus() Clear immobile status
FlagForUpdate void FlagForUpdate(bool) Flag this bot for update
GetBodyInterface INextBotComponent GetBodyInterface() Get this bot's body interface
GetBotId int GetBotId() Get this bot's id
GetImmobileDuration float GetImmobileDuration() How long have we been immobile
GetImmobileSpeedThreshold float GetImmobileSpeedThreshold() Return units/second below which this actor is considered immobile
GetIntentionInterface INextBotComponent GetIntentionInterface() Get this bot's intention interface
GetLocomotionInterface ILocomotion GetLocomotionInterface() Get this bot's locomotion interface
GetTickLastUpdate int GetTickLastUpdate() Get last update tick
GetVisionInterface INextBotComponent GetVisionInterface() Get this bot's vision interface
IsEnemy bool IsEnemy(handle) Return true if given entity is our enemy
IsFlaggedForUpdate bool IsFlaggedForUpdate() Is this bot flagged for update
IsFriend bool IsFriend(handle) Return true if given entity is our friend
IsImmobile bool IsImmobile() Return true if we haven't moved in awhile

INextBotComponent

Base script handle class for any interfaces belonging to an individual NextBotCombatCharacter entity.

Methods

Function Signature Description
ComputeUpdateInterval bool ComputeUpdateInterval() Recomputes the component update interval
GetUpdateInterval float GetUpdateInterval() Returns the component update interval
Reset void Reset() Resets the internal update state

ILocomotion

Extends INextBotComponent

The interface for interacting with a specific NextBot's movement brain.

Methods

Function Signature Description
Approach void Approach(Vector, float) The primary locomotive method. Sets the goal destination for the bot
ClearStuckStatus void ClearStuckStatus(string) Reset stuck status to un-stuck
ClimbUpToLedge bool ClimbUpToLedge(Vector, Vector, handle) Initiate a jump to an adjacent high ledge, return false if climb can't start
ComputeUpdateInterval ComputeUpdateInterval()
DriveTo void DriveTo(Vector) Move the bot to the precise given position immediately, updating internal state
FaceTowards void FaceTowards(Vector) Rotate body to face towards target
FractionPotentialGap float FractionPotentialGap(Vector, Vector) If the locomotor cannot jump over the gap, returns the fraction of the jumpable ray
FractionPotentiallyTraversable float FractionPotentiallyTraversable(Vector, Vector, bool) If the locomotor could not move along the line given, returns the fraction of the walkable ray.
GetDeathDropHeight float GetDeathDropHeight() Distance at which we will die if we fall
GetDesiredSpeed float GetDesiredSpeed() Get desired speed for locomotor movement
GetFeet Vector GetFeet() Return position of feet - the driving point where the bot contacts the ground
GetGround handle GetGround() Return the current ground entity or NULL if not on the ground
GetGroundMotionVector Vector GetGroundMotionVector() Return unit vector in XY plane describing our direction of motion - even if we are currently not moving
GetGroundNormal Vector GetGroundNormal() Surface normal of the ground we are in contact with
GetGroundSpeed float GetGroundSpeed() Return current world space speed in XY plane
GetMaxAcceleration float GetMaxAcceleration() Return maximum acceleration of locomotor
GetMaxDeceleration float GetMaxDeceleration() Return maximum deceleration of locomotor
GetMaxJumpHeight float GetMaxJumpHeight() Return maximum height of a jump
GetMotionVector Vector GetMotionVector() Return unit vector describing our direction of motion - even if we are currently not moving
GetRunSpeed float GetRunSpeed() Get maximum running speed
GetSpeed float GetSpeed() Return current world space speed (magnitude of velocity)
GetSpeedLimit float GetSpeedLimit() Get maximum speed bot can reach, regardless of desired speed
GetStepHeight float GetStepHeight() If delta Z is greater than this, we have to jump to get up
GetStuckDuration float GetStuckDuration() Return how long we've been stuck
GetTraversableSlopeLimit float GetTraversableSlopeLimit() Return Z component of unit normal of steepest traversable slope
GetUpdateInterval GetUpdateInterval()
GetVelocity Vector GetVelocity() Return current world space velocity
GetWalkSpeed float GetWalkSpeed() Get maximum walking speed
HasPotentialGap float HasPotentialGap(Vector, Vector) Return true if there is a possible gap that will need to be jumped over
IsAbleToClimb bool IsAbleToClimb() Return true if this bot can climb arbitrary geometry it encounters
IsAbleToJumpAcrossGaps bool IsAbleToJumpAcrossGaps() Return true if this bot can jump across gaps in its path
IsAreaTraversable bool IsAreaTraversable(handle) Return true if given area can be used for navigation
IsAttemptingToMove bool IsAttemptingToMove() Return true if we have tried to Approach() or DriveTo() very recently
IsClimbingOrJumping bool IsClimbingOrJumping() Is jumping in any form
IsClimbingUpToLedge bool IsClimbingUpToLedge() Is climbing up to a high ledge
IsEntityTraversable bool IsEntityTraversable(handle, bool) Return true if the entity handle is traversable
IsGap bool IsGap(Vector, Vector) Return true if there is a gap here when moving in the given direction
IsJumpingAcrossGap bool IsJumpingAcrossGap() Is jumping across a gap to the far side
IsOnGround bool IsOnGround() Return true if standing on something
IsPotentiallyTraversable float IsPotentiallyTraversable(Vector, Vector, bool) Return true if this locomotor could potentially move along the line given.
IsRunning bool IsRunning() Is running?
IsScrambling bool IsScrambling() Is in the middle of a complex action (climbing a ladder, climbing a ledge, jumping, etc) that shouldn't be interrupted
IsStuck bool IsStuck() Return true if bot is stuck. If the locomotor cannot make progress, it becomes stuck and can only leave this stuck state by successfully movingand becoming un-stuck.
Jump void Jump() Initiate a simple undirected jump in the air
JumpAcrossGap void JumpAcrossGap(Vector, Vector) Initiate a jump across an empty volume of space to far side
OnLandOnGround void OnLandOnGround(handle) Manually run the OnLandOnGround callback. Typically invoked when bot lands on the ground after being in the air
OnLeaveGround void OnLeaveGround(handle) Manually run the OnLeaveGround callback. Typically invoked when bot leaves ground for any reason
Reset Reset()
Run void Run() Set desired movement speed to running
SetDesiredSpeed void SetDesiredSpeed(float) Set desired speed for locomotor movement
SetSpeedLimit void SetSpeedLimit(float) Set maximum speed bot can reach, regardless of desired speed
Stop void Stop() Set desired movement speed to stopped
Walk void Walk() Set desired movement speed to walking

LateBinder

Methods

Function Signature Description
Begin
End
EstablishDelegation
HookRootMetamethod
UnhookRootMetamethod
RemoveDelegation
Resolve

Members

Instance Type Description
m_bindNamesStack array
m_fixupSet array
m_log bool
m_logIndent int
m_targetTable table?(null)

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.

Methods

Function Signature Description
constructor Vector(float x = 0, float y = 0, float z = 0) Creates a new vector with the specified Cartesian coordiantes.
Cross Vector 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() Normalizes the vector in place and returns it's 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 Return Type Description
Vector + Vector Vector Returns the sum of both classes's members (XYZ).
QAngle + Vector
Vector - Vector Vector Returns the subtraction of both classes's members (XYZ).
QAngle + Vector
Vector * integer Vector Returns the multiplication of a Vector against a scalar.
Vector * float

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.

Methods

Function Signature Description
constructor QAngle(float pitch = 0, float yaw = 0, float roll = 0) Creates a new QAngle.
Forward Vector Forward() Returns the Forward Vector of the angles.
Left Vector Left() Returns the left Vector of the angles.
Pitch float Pitch() Returns the pitch angle in degrees.
Roll float Roll() Returns the roll angle in degrees.
ToKVString string ToKVString() Returns a string with the values separated by one space.
ToQuat Quaternion ToQuat() Returns a quaternion representaion of the orientation.
Up Vector Up() Returns the Up Vector of the angles.
Yaw float Yaw() Returns the yaw angle in degrees.

Members

Instance Type Description
x float Pitch in degrees.
y float Yaw in degrees.
z float Roll in degrees.

Operations

Operation Return Type Description
QAngle + QAngle QAngle Sum of both classes's members (XYZ).
Vector + QAngle
QAngle - QAngle QAngle Subtraction of both classes's members (XYZ).
Vector - QAngle
QAngle * int QAngle QAngle multiplied by a number.
QAngle * float


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

Quaternion represents rotations in three-dimensional space.

Methods

Function Signature Description
constructor Quaternion() Creates a new identity quaternion.
constructor Quaternion(float x,float y,float z,float w) Creates a new quaternion of the form w + xi + yj + zk.
Dot float Dot(Quaternion factor) The 4D scalar product of two quaternions. represents the angle between the quaternions in the range [1, 0].
Invert Quaternion Invert() Returns a quaternion with the complimentary rotation.
Norm Quaternion Norm() Normalizes the 4D vector length. To do: What effect does this have in quaternions?
SetPitchYawRoll void SetPitchYawRoll(float pitch, float yaw, float roll) Recomputes the quaternion from the supplied Euler angles.
ToKVString string ToKVString() Returns a string with the values separated by one space.
ToQAngle QAngle ToQAngle() Returns the angles resulting from the rotation.

Members

Instance Type Description
x float Vector component along the i axis.
y float Vector component along the j axis.
z float Vector component along the k axis.
w float Scalar part.

Operations

To do: Descriptions of the operations are lacking details.

Operation Return Type Description
Quaternion + Quaternion Quaternion Sum of the two Quaternions.
Quaternion - Quaternion Quaternion Subtraction of the two Quaternions.
Quaternion * integer Quaternion Quaternion multiplied by a number.
Quaternion * float

Globals

Function Signature Description
AddThinkToEnt void AddThinkToEnt(handle entity, string FuncName) Sets a function in the entity's script to rerun by itself constantly. Pass null as the function name to remove a think function. The default think interval is 0.1s, unless overridden by returning a different time interval in seconds in the think function
AddToScriptHelp AddToScriptHelp()
AllowThirdPersonCamera bool AllowThirdPersonCamera()
ArePlayersInHell bool ArePlayersInHell()
Assert void Assert(bool value, string optional message) Test value and if not true, throws exception, optionally with message.
ClearGameEventCallbacks void ClearGameEventCallbacks() Empties the tables of game event callback functions.
ConnectOutputs void ConnectOutputs(table) sets output functions for entity by table To do
CreateProp handle CreateProp(string, Vector, string, int) Create a physics prop
CreateSceneEntity handle CreateSceneEntity(string) Create a scene entity to play the specified scene.
developer int developer() The current level of the developer console variable.
DispatchParticleEffect void DispatchParticleEffect(string name, Vector origin, Vector angles) Dispatches a one-off particle system
Bug.pngBug:The angles parameter is incorrectly defined as a Vector type rather than QAngle.
Document void Document(unknown symbolOrTable, unknown itemIfSymbol = null, string descriptionIfSymbol = null)
DoEntFire void DoEntFire(string target, string action, string value, float delay, handle activator, handle caller) Generate an entity I/O event. The caller and activator argument takes a CBaseEntity script handle, and entities assigned can receive inputs with target set to !self, or !activator / !caller.
DoIncludeScript bool DoIncludeScript(string file, handle/table scope) Execute a script. and put all its content for the argument passed to thescopeparameter. (internal)
IncludeScript bool IncludeScript(string file, handle scope = null) Wrapper for DoIncludeScript
EmitAmbientSoundOn void EmitAmbientSoundOn(string soundName, float volume, int soundlevel, int pitch, handle entity) Play named sound on an entity using configurations similar to ambient_generic.
StopAmbientSoundOn void StopAmbientSoundOn(string soundName, handle entity) Stop named sound on an entity using configurations similar to ambient_generic.
EmitSoundEx void EmitSoundEx(handle table) Play a sound. Takes in a script table of params. All parameters are optional except sound_name.
Name Type Default Description
sound_name string Name of sound. Can be raw filename or soundscript.
channel int 0 Channel ID on which to play the sound. Channels from -1 to 8 have special behavior, all other channels behave normally. List of special channels:
  • -1 : CHAN_REPLACE
  • 0 : CHAN_AUTO
  • 1 : CHAN_WEAPON
  • 2 : CHAN_VOICE
  • 3 : CHAN_ITEM
  • 4 : CHAN_BODY
  • 5 : CHAN_STREAM
  • 6 : CHAN_STATIC
  • 7 : CHAN_VOICE2
  • 8 : CHAN_VOICE_BASE
volume float 1.0 Volume of sound, in normalized 0 - 1 range.
sound_level int 0 Sound attenuation in decibels. See this page for real world equivalents.
flags int 0 Special sound flags. List of flags available:
Name Value Description
No Flags 0 Nothing special.
Change Volume 1 Changes volume of an already-playing sound on this entity.
Change Pitch 2 Changes pitch of an already-playing sound on this entity.
Stop Sound 4 Stops the specified sound if playing on this entity.
Note.pngNote:This may be channel-specific.
Spawning 8 Writes sound info into net message for connecting clients.
Note.pngNote:This probably doesn't do anything at runtime.
Delay 16 Specifies the sound should be scheduled with a delay.
Stop Looping 32 Stop all looping sounds on the entity.
Bug.pngBug:Not implemented by the engine.
Speaker 64 Used by audio played through env_microphone. Applies special mixing rules.
Should Pause 128 Sound will be paused when the game is paused. Useless in multiplayer.
Ignore Phonemes 256 Prevents flex animation from being driven by this sound, if available.
Ignore Name 512 Changes all sounds emitted on the entity, regardless of actual name.
Do Not Overwrite Existing On Channel 1024 If an existing sound is found on the channel, the sound will not play instead of overwriting it.
pitch int 100 Pitch of the sound.
special_dsp int 0 DSP effect to use on this sound.
origin Vector Overwrites sound origin if specified.
delay float Delay before playing sound.
Note.pngNote:Might require Delay flag to be set.
sound_time float Absolute time to delay sound until, NOT the duration. Overrides delay if specified.
Note.pngNote:Might require Delay flag to be set.
entity handle null Entity to play the sound on.
speaker_entity handle null Entity which will *speak* the sound. This is not the sound as the actual owner of the sound, see above.
filter int 0 Specifies what entities can hear this entity. See Constants.EScriptRecipientFilter.
filter_param int -1 Specifies an extra option to the filter. Currently only used by RECIPIENT_FILTER_TEAM, which uses this to specify which team to play to.
EmitSoundOn void EmitSoundOn(string soundScript, handle entity) Play named sound on Entity. Legacy only, use EmitSoundEx.
StopSoundOn void StopSoundOn(string soundScript, handle entity) Stop named sound on an entity.
EmitSoundOnClient void EmitSoundOnClient(string soundScript, handle player) Play named sound only on the client for the specified player. NOTE: This only supports soundscripts. Legacy only, use EmitSoundEx.
EntFire void EntFire(string target, string action, string value = null, float delay = 0, handle activator = null) Wrapper for DoEntFire() that setsactivator to null, but has nocallerparam.
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 entIndex) Turn an entity index integer to an HScript representing that entity's script instance.
FileToString string FileToString(string file) Reads a string from file located in the game's scriptdata folder. Returns the string from the file, null if no file or file is greater than 16384 bytes. The game will crash to desktop if the file is exactly 16384 bytes.
Note.pngNote:Files packed inside the BSP cannot be read.
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.
FireScriptHook bool FireScriptHook(string, handle) Fire a script hook to a listening callback function in script. Parameters are passed in a squirrel table.
FireScriptEvent void FireScriptEvent(string event, table params) Wrapper for __RunEventCallbacks()
ForceEnableUpgrades void ForceEnableUpgrades(int) Whether to force on MvM-styled upgrades on/off. 0 -> default, 1 -> force off, 2 -> force on
ForceEscortPushLogic void ForceEscortPushLogic(int) Forces payload pushing logic. 0 -> default, 1 -> force off, 2 -> force on
FlagsMayBeCapped bool FlagsMayBeCapped() May a flag be captured?
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. See Constants.ETFClass
GetDeveloperLevel int GetDeveloperLevel() Gets the level of 'developer'
GetFrameCount int GetFrameCount() Returns the engines current frame count
GetFriction float GetFriction(handle player) 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 filename) Returns the index of the named model.
GetOvertimeAllowedForCTF bool GetOvertimeAllowedForCTF()
GetPhysAngularVelocity Vector GetPhysAngularVelocity(handle entity) Returns the Angular velocity of the entity.
GetPhysVelocity Vector GetPhysVelocity(handle entity) Returns the velocity of the entity.
GetPlayerFromUserID handle GetPlayerFromUserID(int ID) Given a user id, return the entity, or null.
GetRoundState int GetRoundState() Get current round state. See Constants.ERoundState
GetSoundDuration float GetSoundDuration(string soundname, string actormodel) Returns float duration of the sound. Takes soundname and optional actormodelname.
GetStopWatchState int GetStopWatchState() Get the current stopwatch state. See Constants.EStopwatchState
GetWinningTeam int GetWinningTeam() Who won!
HaveStopWatchWinner bool HaveStopWatchWinner()
InMatchStartCountdown bool InMatchStartCountdown() Are we in the pre-match/setup 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 holiday) Is the given holiday active? See Constants.EHoliday
IsHolidayMap bool IsHolidayMap(int holiday) Playing a holiday map? See Constants.EHoliday
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 modelname) Checks if the modelname is precached.
IsSoundPrecached bool IsSoundPrecached(string soundname) Checks if the soundname is precached.
IsPasstimeMode bool IsPasstimeMode() No ball games.
IsPlayerABot bool IsPlayerABot(handle player) 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.
IsTruceActive bool IsTruceActive()
IsUsingGrapplingHook bool IsUsingGrapplingHook()
IsUsingSpells bool IsUsingSpells()
IsWeakref bool IsWeakref()
LocalTime void LocalTime(table) Fills out a table with the local time (second, minute, hour, day, month, year, dayofweek, dayofyear, daylightsavings)
MakeNamespace MakeNamespace()
MapHasMatchSummaryStage bool MapHasMatchSummaryStage()
MatchmakingShouldUseStopwatchMode bool MatchmakingShouldUseStopwatchMode()
MaxClients float MaxClients() Get the current number of max clients set by the maxplayers command.
PickupObject void PickupObject(handle player, handle entity) Object from world is put into the "Held" slot of the player. Warning: it will smoothly interpolate from where it is to the players hand - which is a bit goofy if it is on other side of level.
PlayerInstanceFromIndex CBasePlayer PlayerInstanceFromIndex(int index) Get a script handle of a player using the player 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?
PrecacheEntityFromTable bool PrecacheEntityFromTable(table keyvalues) Precache an entity from KeyValues in a table; useful for env_shake.
PrecacheModel int PrecacheModel(string filename) Precache a model and return index of the model.
PrecacheScriptSound bool PrecacheScriptSound(string soundName) Precache a soundscript.
PrecacheSound bool PrecacheSound(string soundName) Precache a raw sound.
PrintHelp PrintHelp()
RandomFloat float RandomFloat(float min, float max) Generate a random floating-point number within a range, inclusive.
RandomInt int RandomInt(int min, int max) Generate a random integer within a range, inclusive.
RegisterFunctionDocumentation void RegisterFunctionDocumentation(unknown func, string name, string signature, string description)
RegisterScriptGameEventListener void RegisterScriptGameEventListener(string eventName) Register as a listener for a game event from script. It's what __CollectGameEventCallbacks() uses to register event callbacks to the C++ code.
RegisterScriptHookListener void RegisterScriptHookListener(string) Register as a listener for a script hook from script.
RetrieveNativeSignature RetrieveNativeSignature()
RotateOrientation QAngle RotateOrientation(QAngle, QAngle) Rotate a QAngle by another QAngle.
RotatePosition Vector RotatePosition(Vector origin, QAngle rotation, Vector input) Rotate the input Vector around an origin.
ScreenFade void ScreenFade(handle player, int red, int green, int blue, int alpha, float fadeTime, float fadeHold, int flags) Start a customisable screenfade.
ScreenShake void ScreenShake(Vector vecCenter, float flAmplitude, float flFrequency, float flDuration, float flRadius, int eCommand, bool bAirShake) Start a customisable screenshake; eCommand( SHAKE_START = 0, SHAKE_STOP = 1 ).
ScriptHooksEnabled bool ScriptHooksEnabled() Returns whether script hooks are currently enabled.
SendGlobalGameEvent bool SendGlobalGameEvent(string, handle) Sends a real game event to everything. Parameters are passed in a squirrel table.
SendToConsole void SendToConsole(string command) Send a string to the console as a command.
Note.pngNote:This obeys the behavior of the sv_allow_point_servercommand convar. By default, this command will do nothing unless the server has this command to set to "always"
SendToServerConsole void SendToServerConsole(string command) Send a string that gets executed on the server as a ServerCommand.
SendToConsoleServer void SendToConsoleServer(string command) Copy of SendToServerConsole with another name for compat.
SetFakeClientConVarValue void SetFakeClientConVarValue(handle bot, string cvar, string value) Sets a USERINFO client ConVar for a fakeclient.
SetGravityMultiplier void SetGravityMultiplier(float multiplier)
SetMannVsMachineAlarmStatus void SetMannVsMachineAlarmStatus(bool status)
SetOvertimeAllowedForCTF void SetOvertimeAllowedForCTF(bool state)
SetPlayersInHell void SetPlayersInHell(bool state)
SetSkyboxTexture void SetSkyboxTexture(string) Sets the current skybox texture
SetUsingSpells void SetUsingSpells(bool state)
SpawnEntityFromTable handle SpawnEntityFromTable(string name, handle keyvalues) Spawn entity from KeyValues in table - 'name' is entity name, rest are KeyValues for spawn.
Note.png Note: Multiple keys of the same name can be specified by appending the key with an incremental #x suffix.

Example:


SpawnEntityFromTable("logic_timer", {
    targetname = "cool"
    RefireTime = 60
    "OnTimer#1": "entity,Trigger,,0,-1"
    "OnTimer#2": "somethingelse,Disable,,0,-1"
})
SpawnEntityGroupFromTable bool SpawnEntityGroupFromTable(handle entityGroup) Hierarchically spawn an entity group from a set of spawn tables. See L4D2_EMS/Appendix:_Spawning.
StringToFile void StringToFile(string file, string string) Stores a string as a file, located in the game's scriptdata folder.
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(table traceTable) Input Table: start, end, mask, ignore
Output Table: pos, fraction, hit, enthit, allsolid, startpos, endpos, startsolid, plane_normal, plane_dist, surface_name, surface_flags, surface_props
Warning.pngWarning:Not all output parameters may exist depending on the inputs and results of the trace. Check if they exist first before using. hit will always be present.
TraceLinePlayersIncluded float TraceLinePlayersIncluded(Vector, Vector, handle) given 2 points & ent to ignore, return fraction along line that hits world, models, players or npcs
TraceHull bool TraceHull(table traceTable) Input Table: start, end, hullmin, hullmax, mask, ignore
Output Table: pos, fraction, hit, enthit, allsolid, startpos, endpos, startsolid, plane_normal, plane_dist, surface_name, surface_flags, surface_props
Warning.pngWarning:Not all output parameters may exist depending on the inputs and results of the trace. Check if they exist first before using. hit will always be present.
UniqueString string UniqueString(string input) 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.
DoUniqueString string DoUniqueString(string input) Unknown; presumably an internal function called by UniqueString, so call that instead.
UsePlayerReadyStatusMode bool UsePlayerReadyStatusMode()
VSquirrel_OnCreateScope table VSquirrel_OnCreateScope(any value, table scope) Creates a new scope with the name of value in the submitted table (includes unique params).
VSquirrel_OnReleaseScope void VSquirrel_OnReleaseScope(table createdScope) Removes a scope created via VSquirrel_OnCreateScope.
__CollectEventCallbacks void __CollectEventCallbacks(scope, prefix, globalTableName, regFunc) Overloaded function. Its only used for this: __CollectEventCallbacks(scope, "OnGameEvent_", "GameEventCallbacks", ::RegisterScriptGameEventListener)
__CollectGameEventCallbacks void __CollectGameEventCallbacks(scope) Wrapper that registers callbacks for both OnGameEvent_x and OnScriptEvent_ functions. Done using the __CollectEventCallbacks function.
__ReplaceClosures void __ReplaceClosures(script, scope)
__RunEventCallbacks void __RunEventCallbacks(event, params, prefix, globalTableName, bWarnIfMissing) Call all functions in the callback array for the given game event
__RunGameEventCallbacks void __RunGameEventCallbacks(event, params) Wrapper for __RunEventCallbacks()
__RunScriptHookCallbacks void __RunScriptHookCallbacks()

Printing and Drawing

Functions for printing out messages or drawing elements in the world, mostly for debugging reasons.

Warning.pngWarning:Any function with the Debug prefix requires the cvar developer be enabled and the game unpaused.
Function Signature Description
ClientPrint void ClientPrint(CBasePlayer player, EHudNotify destination, string message) Print a client message. If you pass null instead of a valid player, the message will be sent to all clients. When printing to chat (HUD_PRINTTALK), the color of the text can be changed by inserting this sequence: \x0007RRGGBB where RR GG BB is the hexadecimal format of the color. Transparency can be specified by a different sequence: \x0008RRGGBBAA, where RR GG BB AA is the hexadecimal format of the color + alpha. All text following this sequence will be colored. Multiple sequences can be used in combination.
Warning.pngWarning:Hammer Will not accept these escape sequences. As a result, you cannot print colored text with a simple RunScriptCode input. To do: soon to be supported in Hammer++, which does accept escape sequences, but currently crashes when attempting to load a .vmf with a colored text sequence.
DebugDrawBox void DebugDrawBox(Vector origin, vector min, vector max, int r, int g, int b, int alpha, float duration) Draw a debug overlay box.
DebugDrawBoxAngles void DebugDrawBoxAngles(Vector origin, Vector min, Vector max, QAngle direction, Vector rgb, int alpha, float duration) Draw a debug oriented box (cent, min, max, angles(p,y,r), vRgb, a, duration).
DebugDrawBoxDirection void DebugDrawBoxDirection(Vector center, Vector min, Vector max, Vector forward, Vector rgb, float alpha, float duration) Draw a debug forward box.
DebugDrawCircle void DebugDrawCircle(Vector center, Vector rgb, float alpha, float radius, bool ztest, float duration) Draw a debug circle.
DebugDrawClear void DebugDrawClear() Try to clear all the debug overlay info.
DebugDrawLine void DebugDrawLine(Vector start, Vector end, int red, int green, int blue', bool zTest, float time) Draw a debug overlay line.
DebugDrawLine_vCol void DebugDrawLine_vCol(Vector start, vector end, vector rgb, bool ztest, float duration) Draw a debug line using color vec.
DebugDrawScreenTextLine void DebugDrawScreenTextLine(float x, float y, int lineOffset, string text, int r, int g, int b, int a, float duration) Draw text with a line offset.
DebugDrawText void DebugDrawText(Vector origin, string text, bool useViewCheck, float duration) Draw text on the screen, starting on the position of origin.
__DumpScope void __DumpScope(int indentation, handle scope) Dumps contents of everything in the scope.
DumpObject void DumpObject(handle object) Dumps information about a class or instance.
Msg void Msg(string message) Prints message to console without any line feed after.
printl void printl(string message) Prints message to console with a line feed after.
realPrint void realPrint(string message) Identical to print. print seems to be a wrapper for this.
Say void Say(CBasePlayer player, string message, bool teamOnly) Calling this will have the specified player send the message to chat, either to teamOnly (true) or to everyone.
ShowMessage void ShowMessage(string message) Print a hud message on all clients
Bug.pngBug:Non-functional.

Squirrel Standard Library

Squirrel Functions of both Squirrel's built-in functions and standard library.

Function Signature Description
array array(int length, any fill = null) Returns a new array of the given length where each element is set to fill (null by default).
assert assert(bool exp) Throws an assertion error if the given expression evaluates to false (i.e. the values 0, 0.0, null and false)
callee function callee() Returns the currently running closure.
castf2i int castf2i(float value) Interprets the float's bytes as if it were a 32-bit integer representation
casti2f float casti2f(int value) Interprets the integer's bytes as if it were a floating-point encoding
collectgarbage int collectgarbage() Runs the garbage collector and returns the number of reference cycles found(and deleted) This function only works on garbage collector builds.
compilestring any compilestring(string string, string buffername = null) Compiles a string containing a squirrel script into a function and returns it.
dummy dummy()
enabledebuginfo void enabledebuginfo(any enable) Enable/disable the debug line information generation at compile time. enable != null enables . enable == null disables.
error void error(string x) Prints x in the standard error output .
getconsttable table getconsttable() Returns the const table of the VM.
getroottable table getroottable() Returns the root table of the VM.
getstackinfos table getstackinfos(int stacklevel) Returns the stack frame informations at the given stack level (0 is the current function 1 is the caller and so on). If the stack level doesn't exist the function returns null.
Example
{
	func = "DoStuff",		// function name
	
	src = "test.nut",		// source file
	
	line = 10,			// line number
	
	locals =			// a table containing the local variables
	{
		a = 10,
		
		testy = "I'm a string"
	}
}
newthread coroutine newthread(function threadfunc) Creates a new cooperative thread object(coroutine) and returns it .
print print(string message) Prints the given parameter but with no newline unlike printl()
resurrectunreachable array resurrectunreachable() Runs the garbage collector and returns an array containing all unreachable object found. If no unreachable object is found, null is returned instead. This function is meant to help debugging reference cycles. This function only works on garbage collector builds.
setconsttable table setconsttable(table consttable) Sets the const table of the VM which also returns the previous const table.
setdebughook void setdebughook(function hook_func) Sets the debug hook.
seterrorhandler void seterrorhandler(function func) Sets the runtime error handler .
setroottable table setroottable(table roottable) Sets the root table of the VM which also returns the previous root table.
suspend void suspend(any ret) Suspends the coroutine that called this function.
swap2 int swap2(int value) Swaps bytes 1 and 2 of the integer
swap4 int swap4(int value) Reverse byte order of the four bytes
swapfloat float swapfloat(float value) Reverse byte order of the four bytes
type type(var) Returns var._typeof(), i.e. the type of the given parameter as a string

Blob

A blob stores a block of binary data. See official documentation for more information.

Note.pngNote:Each blob is restricted to a maximum size of 16 megabytes. Blobs are also limited to 32 megabytes total at any given time.
Function Signature Description
blob blob(int initSize = 0)
eos int eos()
flush flush()
len int len()
readblob blob readblob(int numberOfBytes)
readn any readn(char dataType)
resize void resize(int newSize)
seek int seek(int offset, int offsetBasis)
swap2 void swap2()
swap4 void swap4()
tell int tell()
writeblob void writeblob(blob blob)
writen void writen(num value, char dataType)

Math

Function Signature Description
abs abs(num x) Returns |x| as integer unlike fabs()
acos acos(num x) Returns cos-1(x), -1 ≤ x ≤ 1
asin asin(num x) Returns sin-1(x), -1 ≤ x ≤ 1
atan atan(num x) Returns tan-1(x)
atan2 atan2(num y, num x) (!) Returns the angle between the ray from the point (0, 0) through (x, y) and the positive x-axis, confined to (−PI, PI], see also atan2. Note the order of the parameters x and y!]
ceil ceil(num x) Returns the smallest integer that is ≥ x
cos cos(num x) Returns cos(x)
exp exp(num x) Returns exp(x) = ex
fabs fabs(num x) Returns |x| as float unlike abs()
floor floor(num x) Returns the largest integer that is ≤ x
log log(num x) Returns loge(x) = ln(x)
log10 log10(num x) Returns log10(x)
pow pow(num x, num y) Returns xy
rand rand() Returns a random integer with 0 ≤ rand() ≤ RAND_MAX
sin sin(num x) Returns sin(x)
sqrt sqrt(num x) Returns the square root of x
srand srand(num seed) Sets the starting point for generating a series of pseudorandom integers
tan tan(num x) Returns tan(x)

Strings

The following belong as member methods of the string object, in other words they must be called with the dot operator on a string, e.g. str.slice(0, 5).

Function Signature Description
find int find(string searchString, int startIndex = null) Looks for the sub-string passed as its first parameter, starting at either the beginning of the string or at a specific character index if one is provided as a second parameter. If the sub-string is found, returns the index at which it first occurs, otherwise returns null.
len int len() Returns the length of the string, ie. the number of characters it comprises.
slice string slice(int startIndex, int endIndex = null) Creates a sub-string from a string. Copies characters from startIndex to endIndex. If endIndex is not specified, copies until the last character. If the provided end index is beyond the string, an exception is thrown.
tofloat float tofloat() Returns float value represented by the string. Must only contain numeric characters and/or plus and minus symbols. An exception is thrown otherwise.
tointeger int tointeger() Returns integer value represented by the string. Must only contain numeric characters. An exception is thrown otherwise. Hexadecimal notation is supported (i.e. 0xFF). If a hexadecimal string contains more than 10 characters, including the 0x, returns -1.
tolower string tolower() Returns a new string with all upper-case characters converted to lower-case.
toupper string toupper() Returns a new string with all lower-case characters converted to upper-case.

The following belong as global string functions, e.g. str = format("%d", num).

Function Signature Description
format format(string, args...) Returns a formatted string
lstrip lstrip(string) Removes whitespace at the beginning of the given string
rstrip rstrip(string) Removes whitespace at the end of the given string
split string split(string str, string separator) Returns an array of strings split at each point where a separator character occurs in str. The separator is not returned as part of any array element. the parameter separators is a string that specifies the characters as to be used for the splitting.
strip strip(string) Removes whitespace at the beginning and end of the given string

Script Debug

Functions for interacting with the debugger. Some of them are documented here.

Function Signature Description
BeginScriptDebug void BeginScriptDebug()
EndScriptDebug void EndScriptDebug()
ScriptDebugAddTextFilter void ScriptDebugAddTextFilter()
ScriptDebugAddTrace void ScriptDebugAddTrace()
ScriptDebugAddWatch void ScriptDebugAddWatch()
ScriptDebugAddWatches void ScriptDebugAddWatches()
ScriptDebugAddWatchPattern void ScriptDebugAddWatchPattern()
ScriptDebugClearTraces void ScriptDebugClearTraces()
ScriptDebugClearWatches void ScriptDebugClearWatches()
ScriptDebugDefaultWatchColor void ScriptDebugDefaultWatchColor()
ScriptDebugDraw void ScriptDebugDraw()
ScriptDebugDrawWatches void ScriptDebugDrawWatches()
ScriptDebugDumpKeys void ScriptDebugDumpKeys()
ScriptDebugHook void ScriptDebugHook()
ScriptDebugIterateKeys void ScriptDebugIterateKeys()
ScriptDebugIterateKeysRecursive void ScriptDebugIterateKeysRecursive()
ScriptDebugRemoveTextFilter void ScriptDebugRemoveTextFilter()
ScriptDebugRemoveTrace void ScriptDebugRemoveTrace()
ScriptDebugRemoveWatch void ScriptDebugRemoveWatch()
ScriptDebugRemoveWatches void ScriptDebugRemoveWatches()
ScriptDebugRemoveWatchPattern void ScriptDebugRemoveWatchPattern()
ScriptDebugText void ScriptDebugText()
ScriptDebugTextDraw void ScriptDebugTextDraw()
ScriptDebugTextPrint void ScriptDebugTextPrint()
ScriptDebugTextTrace void ScriptDebugTextTrace()
ScriptDebugTraceAll void ScriptDebugTraceAll()
ScriptDebugWatches void ScriptDebugWatches()
__VScriptServerDebugHook __VScriptServerDebugHook()

See also