Difference between revisions of "List of Counter-Strike: Global Offensive Script Functions"

From Valve Developer Community
Jump to: navigation, search
(CBaseEntity: Added a few new functions)
(Methods: SpawnEntityAtNamedEntityOrigin only targets one entity.)
 
(42 intermediate revisions by 19 users not shown)
Line 1: Line 1:
 +
{{lang|List of Counter-Strike: Global Offensive Script Functions}}
 +
 
{{toc-right}}
 
{{toc-right}}
  
{{sq}} This list contains the engine-related Squirrel classes, functions and variables available for [[VScript]] in {{game link|Counter-Strike: Global Offensive}}. Some of it can be printed in the console by setting <code>developer</code> to at least 1, loading a map and executing <code>script_help</code>. Note that <code>developer</code> only needs to be non-zero during map-loading, so to dump <code>script_help</code> to a file do something like this:
+
{{sq}} This list contains the engine-related Squirrel classes, functions and variables available for [[VScript]] in {{game link|Counter-Strike: Global Offensive}}. The official documentation can be printed in the console by setting <code>developer</code> to non-zero, loading a map, and executing <code>script_help</code>.
 
 
<code>
 
developer 3
 
map de_nuke
 
developer 0
 
con_logfile dump.txt
 
script_help
 
con_logfile ""
 
</code>
 
 
 
 
 
 
 
 
 
 
 
 
 
  
  
 
== Variables ==
 
== Variables ==
 
+
{| class="standard-table"
{| class="standard-table"  
 
 
!Instance
 
!Instance
 
!Type
 
!Type
Line 28: Line 14:
 
|<code>Entities</code>
 
|<code>Entities</code>
 
|<code>[[#CEntities|CEntities]]</code>
 
|<code>[[#CEntities|CEntities]]</code>
|Provides access to currently spawned entities.
+
|Provides access to spawned entities in the server.
 
|-
 
|-
 
|}
 
|}
 +
  
 
== Constants ==
 
== Constants ==
Line 36: Line 23:
 
!Instance
 
!Instance
 
!Type
 
!Type
!Description
+
!Value
 
|-
 
|-
 
|<code>_charsize_</code>
 
|<code>_charsize_</code>
 
|integer
 
|integer
|  
+
| 1
 
|-
 
|-
 
|<code>_floatsize_</code>
 
|<code>_floatsize_</code>
 
|integer
 
|integer
|  
+
| 4
 
|-
 
|-
 
|<code>_intsize_</code>
 
|<code>_intsize_</code>
 
|integer
 
|integer
|  
+
| 4
 
|-
 
|-
 
|<code>_version_</code>
 
|<code>_version_</code>
 
|string
 
|string
| The version of squirrel.
+
| "Squirrel 2.2.3 stable"
|-
 
|<code>_versionnumber_</code>
 
|integer
 
| The version of squirrel as an integer.
 
 
|-
 
|-
 
|<code>RAND_MAX</code>
 
|<code>RAND_MAX</code>
 
|integer
 
|integer
|  
+
| 32767
 
|-
 
|-
 +
|<code>PI</code>
 +
|float
 +
| 3.14159
 
|}
 
|}
 +
  
 
== Classes ==
 
== Classes ==
Line 70: Line 57:
 
This is a script handle class for entities. All entities spawned have a script handle using this or one of its subclasses.  
 
This is a script handle class for entities. All entities spawned have a script handle using this or one of its subclasses.  
  
All script handles in-game are accessible from [[#CEntities|Entities]]. Entity Scripts can use <code>self</code> to access their own script handle.
+
All script handles in-game are accessible from [[#CEntities|Entities]]. Entity scripts can use <code>self</code> to access their own script handle. <code>activator</code> and <code>caller</code> variables can be accessed on function calls.
 +
 
  
 
==== Methods ====
 
==== Methods ====
{| class="standard-table" style="width: 100%;"
+
{| class="standard-table" style="width: 85%;"
 
! Function
 
! Function
 
! Signature
 
! Signature
Line 79: Line 67:
 
|-
 
|-
 
| <code>__KeyValueFromInt</code>
 
| <code>__KeyValueFromInt</code>
| <code>void __KeyValueFromInt(string ''key'', int ''value'')</code>
+
| <code>bool __KeyValueFromInt(string ''key'', int ''value'')</code>
| Sets an entity [[Keyvalue]] from an integer. This simply changes the value without executing any code that may be needed for the entity to process the KeyValue, so there may be unintended side effects.
+
| Sets entity [[keyvalue]] from an integer.
 
|-
 
|-
 
| <code>__KeyValueFromFloat</code>
 
| <code>__KeyValueFromFloat</code>
| <code>void __KeyValueFromFloat(string ''key'', float ''value'')</code>
+
| <code>bool __KeyValueFromFloat(string ''key'', float ''value'')</code>
| Sets an entity Keyvalue from a float. This simply changes the value without executing any code that may be needed for the entity to process the KeyValue, so there may be unintended side effects.
+
| Sets entity keyvalue from a float.
 
|-
 
|-
 
| <code>__KeyValueFromString</code>
 
| <code>__KeyValueFromString</code>
| <code>void __KeyValueFromString(string ''key'', string ''value'')</code>
+
| <code>bool __KeyValueFromString(string ''key'', string ''value'')</code>
| Sets an entity Keyvalue from a string. This simply changes the value without executing any code that may be needed for the entity to process the KeyValue, so there may be unintended side effects.
+
| Sets entity keyvalue from a string.
 
|-
 
|-
 
| <code>__KeyValueFromVector</code>
 
| <code>__KeyValueFromVector</code>
| <code>void __KeyValueFromVector(string ''key'', Vector ''value'')</code>
+
| <code>bool __KeyValueFromVector(string ''key'', Vector ''value'')</code>
| Sets an entity Keyvalue from a [[#Vector|Vector]]. This simply changes the value without executing any code that may be needed for the entity to process the KeyValue, so there may be unintended side effects.
+
| Sets entity keyvalue from a [[#Vector|Vector]].
 
|-
 
|-
 
| <code>ConnectOutput</code>
 
| <code>ConnectOutput</code>
 
| <code>void ConnectOutput(string ''output'', string ''function'')</code>
 
| <code>void ConnectOutput(string ''output'', string ''function'')</code>
| Adds an I/O connection that will call the named function when the specified output fires.
+
| Adds an [[I/O]] connection that will call the named function when the specified output fires.  
 
|-
 
|-
 
| <code>DisconnectOutput</code>
 
| <code>DisconnectOutput</code>
Line 104: Line 92:
 
| <code>Destroy</code>
 
| <code>Destroy</code>
 
| <code>void Destroy()</code>
 
| <code>void Destroy()</code>
| Deletes the entity.
+
| Kills the entity.
 
|-
 
|-
 
| <code>EmitSound</code>
 
| <code>EmitSound</code>
| <code>void EmitSound(string ''soundScript'')</code>
+
| <code>void EmitSound(string ''soundname'')</code>
 
| Plays a sound from this entity.
 
| Plays a sound from this entity.
 
|-
 
|-
Line 120: Line 108:
 
| <code>FirstMoveChild</code>
 
| <code>FirstMoveChild</code>
 
| <code>handle FirstMoveChild()</code>
 
| <code>handle FirstMoveChild()</code>
| {{todo}}
+
| If in hierarchy, get the first move child.
 
|-
 
|-
 
| <code>GetAngles</code>
 
| <code>GetAngles</code>
 
| <code>Vector GetAngles()</code>
 
| <code>Vector GetAngles()</code>
| Get the entity pitch, yaw, roll as a [[#Vector|Vector]] object.
+
| Get the entity [[angles|pitch, yaw, roll]] as a Vector object.
 
|-
 
|-
 
| <code>GetAngularVelocity</code>
 
| <code>GetAngularVelocity</code>
Line 132: Line 120:
 
| <code>GetBoundingMaxs</code>
 
| <code>GetBoundingMaxs</code>
 
| <code>Vector GetBoundingMaxs()</code>
 
| <code>Vector GetBoundingMaxs()</code>
| Returns the maximum extent of the entity bounding box as a local vector.
+
| Get a vector containing max bounds, centered on object.
 +
|-
 +
| <code>GetBoundingMaxsOriented</code>
 +
| <code>Vector GetBoundingMaxsOriented()</code>
 +
| Get a vector containing max bounds, centered on object, taking the object's orientation into account.
 
|-
 
|-
 
| <code>GetBoundingMins</code>
 
| <code>GetBoundingMins</code>
 
| <code>Vector GetBoundingMins()</code>
 
| <code>Vector GetBoundingMins()</code>
| Returns the maximum extent of the entity bounding box as a local vector.
+
| Get a vector containing min bounds, centered on object.
 +
|-
 +
| <code>GetBoundingMinsOriented</code>
 +
| <code>Vector GetBoundingMinsOriented()</code>
 +
| Get a vector containing min bounds, centered on object, taking the object's orientation into account.
 
|-
 
|-
 
| <code>GetCenter</code>
 
| <code>GetCenter</code>
 
| <code>Vector GetCenter()</code>
 
| <code>Vector GetCenter()</code>
| Returns a local vector of the bounding box center.
+
| Get vector to center of object - local coords.
 
|-
 
|-
 
| <code>GetClassname</code>
 
| <code>GetClassname</code>
 
| <code>string GetClassname()</code>
 
| <code>string GetClassname()</code>
| Returns the entity class. This includes <code>player</code>.
+
| Get entity [[classname]].
 
|-
 
|-
 
| <code>GetForwardVector</code>
 
| <code>GetForwardVector</code>
Line 152: Line 148:
 
| <code>GetHealth</code>
 
| <code>GetHealth</code>
 
| <code>int GetHealth()</code>
 
| <code>int GetHealth()</code>
| Returns the current health.
+
| Returns the current [[health]].
 
|-
 
|-
 
| <code>GetLeftVector</code>
 
| <code>GetLeftVector</code>
 
| <code>Vector GetLeftVector()</code>
 
| <code>Vector GetLeftVector()</code>
| Get the left vector of the entity.
+
| Get the ''right'' vector of the entity.
 
|-
 
|-
 
| <code>GetMaxHealth</code>
 
| <code>GetMaxHealth</code>
 
| <code>int GetMaxHealth()</code>
 
| <code>int GetMaxHealth()</code>
|Returns the maximum health.
+
| Returns the maximum health.
 
|-
 
|-
 
| <code>GetModelKeyValues</code>
 
| <code>GetModelKeyValues</code>
| <code>Keyvalues GetModelKeyValues()</code>
+
| <code>CScriptKeyValues GetModelKeyValues()</code>
| Returns the [$keyvalues] block of the entitys model as a [[#Keyvalues]] object. Note that this is ''not'' the keyvalues of the entity itself.
+
| Returns the [[$keyvalues]] block of the entity's model as a [[#CScriptKeyValues]] object. Note that this is ''not'' the keyvalues of the entity itself.
 
|-
 
|-
 
| <code>GetModelName</code>
 
| <code>GetModelName</code>
 
| <code>string GetModelName()</code>
 
| <code>string GetModelName()</code>
| Returns the file name of the entitys model.
+
| Returns the name of the model.
 
|-
 
|-
 
| <code>GetMoveParent</code>
 
| <code>GetMoveParent</code>
| <code>CBaseEntity GetMoveParent()</code>
+
| <code>handle GetMoveParent()</code>
| If in hierarchy, retrieves the entitys parent.
+
| If in hierarchy, retrieves the entity's parent.
 
|-
 
|-
 
| <code>GetName</code>
 
| <code>GetName</code>
 
| <code>string GetName()</code>
 
| <code>string GetName()</code>
| Returns the targetname of the entity.
+
| Returns the [[targetname]] of the entity.
 
|-
 
|-
 
| <code>GetOrigin</code>
 
| <code>GetOrigin</code>
 
| <code>Vector GetOrigin()</code>
 
| <code>Vector GetOrigin()</code>
| Returns the Entity position in the world.
+
| Returns this entity's local origin.
 
|-
 
|-
 
| <code>GetOwner</code>
 
| <code>GetOwner</code>
Line 188: Line 184:
 
| <code>GetPreTemplateName</code>
 
| <code>GetPreTemplateName</code>
 
| <code>string GetPreTemplateName()</code>
 
| <code>string GetPreTemplateName()</code>
| Get the entity name stripped of template unique decoration.
+
| Get the entity name stripped of template unique decoration. This is the <code>&048</code> suffix added by templates that do not preserve the entity name.
 
|-
 
|-
 
| <code>GetRootMoveParent</code>
 
| <code>GetRootMoveParent</code>
Line 196: Line 192:
 
| <code>GetScriptId</code>
 
| <code>GetScriptId</code>
 
| <code>string GetScriptId()</code>
 
| <code>string GetScriptId()</code>
| Retrieve the unique identifier used to refer to the entity within the scripting system.
+
| Returns the thinkfunction keyvalue of the entity.
 
|-
 
|-
 
| <code>GetScriptScope</code>
 
| <code>GetScriptScope</code>
Line 203: Line 199:
 
|-
 
|-
 
| <code>GetSoundDuration</code>
 
| <code>GetSoundDuration</code>
| <code>float GetSoundDuration(string ''soundName'', string ''actorModelName'' = "")</code>
+
| <code>float GetSoundDuration(string ''soundname'', string ''actormodel'')</code>
| Returns float duration of the sound. Takes soundname and optional actormodelname.
+
| Returns float duration of the sound.
 
|-
 
|-
 
| <code>GetTeam</code>
 
| <code>GetTeam</code>
 
| <code>int GetTeam()</code>
 
| <code>int GetTeam()</code>
| Returns the team number of a player. Terrorists = 2, CTs = 3.
+
| Get the team this entity is on.
 
|-
 
|-
 
| <code>GetUpVector</code>
 
| <code>GetUpVector</code>
Line 216: Line 212:
 
| <code>GetVelocity</code>
 
| <code>GetVelocity</code>
 
| <code>Vector GetVelocity()</code>
 
| <code>Vector GetVelocity()</code>
| Returns a local velocity Vector.
+
| Get the velocity of the entity.
 
|-
 
|-
 
| <code>IsValid</code>
 
| <code>IsValid</code>
Line 224: Line 220:
 
| <code>NextMovePeer</code>
 
| <code>NextMovePeer</code>
 
| <code>handle NextMovePeer()</code>
 
| <code>handle NextMovePeer()</code>
|  
+
| Return the next entity in the same movement hierarchy.
 
|-
 
|-
 
| <code>PrecacheModel</code>
 
| <code>PrecacheModel</code>
| <code>void PrecacheModel(string ''modelPath'')</code>
+
| <code>void PrecacheModel(string ''modelname'')</code>
| Precache a model after the map has loaded.
+
| Precache a model. Expensive.
 
|-
 
|-
 
| <code>PrecacheScriptSound</code>
 
| <code>PrecacheScriptSound</code>
| <code>void PrecacheScriptSound(string ''soundName'')</code>
+
| <code>void PrecacheScriptSound(string ''soundname'')</code>
|  
+
| Precache a sound. Expensive.
 
|-
 
|-
 
| <code>PrecacheSoundScript</code>
 
| <code>PrecacheSoundScript</code>
| <code>void PrecacheSoundScript(string ''soundScript'')</code>
+
| <code>void PrecacheSoundScript(string ''soundscript'')</code>
| Precache a sound for later playing.
+
| Precache a sound for later playing. Expensive.
 
|-
 
|-
 
| <code>SetAbsOrigin</code>
 
| <code>SetAbsOrigin</code>
 
| <code>void SetAbsOrigin(Vector ''position'')</code>
 
| <code>void SetAbsOrigin(Vector ''position'')</code>
| Same as SetOrigin().
+
| Set absolute origin.
 
|-
 
|-
 
| <code>SetAngles</code>
 
| <code>SetAngles</code>
 
| <code>void SetAngles(float ''pitch'', float ''yaw'', float ''roll'')</code>
 
| <code>void SetAngles(float ''pitch'', float ''yaw'', float ''roll'')</code>
| Set entity pitch, yaw, roll. Note that it doesn't take a Vector object.
+
| Set entity [[angles|pitch, yaw, roll]].
 
|-
 
|-
 
| <code>SetAngularVelocity</code>
 
| <code>SetAngularVelocity</code>
Line 251: Line 247:
 
|-
 
|-
 
| <code>SetForwardVector</code>
 
| <code>SetForwardVector</code>
| <code>void SetForwardVector(Vector ''forwardVector'')</code>
+
| <code>void SetForwardVector(Vector ''forwardvec'')</code>
 
| Set the orientation of the entity to have this forward vector.
 
| Set the orientation of the entity to have this forward vector.
 
|-
 
|-
 
| <code>SetHealth</code>
 
| <code>SetHealth</code>
| <code>void SetHealth(int ''newHealth'')</code>
+
| <code>void SetHealth(int ''health'')</code>
| Sets the current health.
+
| Sets the current [[health]].
 
|-
 
|-
 
| <code>SetMaxHealth</code>
 
| <code>SetMaxHealth</code>
| <code>void SetMaxHealth(int ''maxHealth'')</code>
+
| <code>void SetMaxHealth(int ''health'')</code>
| Sets a new maximum health.
+
| Sets the maximum health.
 
|-
 
|-
 
| <code>SetModel</code>
 
| <code>SetModel</code>
| <code>void SetModel(string ''modelName'')</code>
+
| <code>void SetModel(string ''modelname'')</code>
| Changes the model of the entity. Does not Precache the model. {{todo|Check for side effects}}
+
| Changes the model of the entity. Does not precache the model.
 
|-
 
|-
 
| <code>SetOrigin</code>
 
| <code>SetOrigin</code>
 
| <code>void SetOrigin(Vector ''position'')</code>
 
| <code>void SetOrigin(Vector ''position'')</code>
| Moves the entity to this global position vector.
+
| Set local origin. "Teleports" the entity.
 
|-
 
|-
 
| <code>SetOwner</code>
 
| <code>SetOwner</code>
Line 275: Line 271:
 
|-
 
|-
 
| <code>SetSize</code>
 
| <code>SetSize</code>
| <code>void SetSize(Vector, Vector)</code>
+
| <code>void SetSize(Vector ''mins'', Vector ''maxs'')</code>
| {{todo}}
+
| Sets the bounding box size.
 
|-
 
|-
 
| <code>SetTeam</code>
 
| <code>SetTeam</code>
| <code>void SetTeam(int ''teamNumber'')</code>
+
| <code>void SetTeam(int ''team'')</code>
| Instantly switches a players team. Terrorists = 2, CTs = 3.
+
| Set the team this entity is on.
 
|-
 
|-
 
| <code>SetVelocity</code>
 
| <code>SetVelocity</code>
 
| <code>void SetVelocity(Vector ''velocity'')</code>
 
| <code>void SetVelocity(Vector ''velocity'')</code>
| Gives the entity a new local velocity.
+
| Set local velocity.
 +
|-
 +
| <code>StopSound</code>
 +
| <code>void StopSound(string ''soundname'')</code>
 +
| Stops a sound on this entity.
 
|-
 
|-
 
| <code>ValidateScriptScope</code>
 
| <code>ValidateScriptScope</code>
Line 291: Line 291:
 
|-
 
|-
 
|}
 
|}
 +
  
 
==== Hooks ====
 
==== Hooks ====
Line 302: Line 303:
 
| <code>Input''InputName''</code>
 
| <code>Input''InputName''</code>
 
| <code>bool Input''InputName''()</code>
 
| <code>bool Input''InputName''()</code>
| Called when the entity receives an input from the I/O system. The name of the function needs to be <code>Input</code> followed by the name of the input in CamelCase, for example <code>InputFireUser1</code> for the FireUser1 input. When the function is called, the activating and calling entities Script Handles are written to the receiving entitys Script Scope in the <code>activator</code> and <code>caller</code> variables. The function needs to return a boolean value. Setting it to <code>true</code> allows the entity to process the input, while <code>false</code> cancels it.
+
| Called when the entity receives an input from the I/O system. The name of the function needs to be <code>Input</code> followed by the name of the input in CamelCase, for example <code>InputFireUser1</code> for the FireUser1 input. The function needs to return a boolean value. Setting it to <code>true</code> allows the entity to process the input, while <code>false</code> cancels it.
 
|-
 
|-
 
| <code>OnPostSpawn</code>
 
| <code>OnPostSpawn</code>
 
| <code>void OnPostSpawn()</code>
 
| <code>void OnPostSpawn()</code>
| Called immediately after the entity spawns. This could be used to have an entity register itself with a master script, or adjusting the entity parameters in a programmatic way.
+
| This is called after the entity has spawned.
 
|-
 
|-
 
| <code>Precache</code>
 
| <code>Precache</code>
 
| <code>void Precache()</code>
 
| <code>void Precache()</code>
| Called after the script executes. Can be used to call precache functions for models and sounds on map load.
+
| This is called during entity spawning and after restore to allow scripts to precache any resources they need.
 
|}
 
|}
 +
  
 
=== CBaseAnimating ===
 
=== CBaseAnimating ===
Line 317: Line 319:
  
 
Script handle class for animating entities such as props.
 
Script handle class for animating entities such as props.
 +
  
 
==== Methods ====
 
==== Methods ====
Line 329: Line 332:
 
|-
 
|-
 
| <code>GetAttachmentOrigin</code>
 
| <code>GetAttachmentOrigin</code>
| <code>Vector GetAttachmentOrigin(int 'id')</code>
+
| <code>Vector GetAttachmentOrigin(int ''id'')</code>
 
| Get the attachment ID's origin vector.
 
| Get the attachment ID's origin vector.
 
|-
 
|-
Line 342: Line 345:
 
| <code>SetBodygroup</code>
 
| <code>SetBodygroup</code>
 
| <code>void SetBodygroup(int ''groupIndex'', int ''value'')</code>
 
| <code>void SetBodygroup(int ''groupIndex'', int ''value'')</code>
| Sets the models bodygroup value by index. {{todo|How do you find the index?}}
+
| Sets the models bodygroup value by index.
 
|}
 
|}
  
Line 348: Line 351:
 
=== CBaseFlex ===
 
=== CBaseFlex ===
 
Extends [[#CBaseAnimating|CBaseAnimating]]
 
Extends [[#CBaseAnimating|CBaseAnimating]]
 +
  
 
==== Methods ====
 
==== Methods ====
Line 367: Line 371:
 
=== CBasePlayer ===
 
=== CBasePlayer ===
 
Extends [[#CBaseAnimating|CBaseAnimating]]
 
Extends [[#CBaseAnimating|CBaseAnimating]]
 +
  
 
==== Methods ====
 
==== Methods ====
Line 378: Line 383:
 
| Returns true if the player is in noclip mode.
 
| Returns true if the player is in noclip mode.
 
|}
 
|}
 +
  
 
=== CBaseMultiplayerPlayer ===
 
=== CBaseMultiplayerPlayer ===
Line 389: Line 395:
  
 
Script handle class for [[env_entity_maker]].  
 
Script handle class for [[env_entity_maker]].  
 +
  
 
==== Methods ====
 
==== Methods ====
Line 401: Line 408:
 
|-
 
|-
 
| <code>SpawnEntityAtEntityOrigin</code>
 
| <code>SpawnEntityAtEntityOrigin</code>
| <code>void SpawnEntityAtEntityOrigin(CBaseEntity ''entity'')</code>
+
| <code>void SpawnEntityAtEntityOrigin(handle ''entity'')</code>
 
| Create an entity at the location of a specified entity instance.
 
| Create an entity at the location of a specified entity instance.
 
|-
 
|-
Line 409: Line 416:
 
|-
 
|-
 
| <code>SpawnEntityAtNamedEntityOrigin</code>
 
| <code>SpawnEntityAtNamedEntityOrigin</code>
| <code>void SpawnEntityAtNamedEntityOrigin(string ''targetName'')</code>
+
| <code>void SpawnEntityAtNamedEntityOrigin(string ''targetname'')</code>
| Create an entity at the location of a named entity.
+
| 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 ===
 
=== CPointTemplate ===
Line 418: Line 424:
  
 
Script handle class for [[point_template]].
 
Script handle class for [[point_template]].
 +
  
 
==== Hooks ====
 
==== Hooks ====
 
 
;<code>table PreSpawnInstance(string ''entityClass'', string ''entityName'')</code>
 
;<code>table PreSpawnInstance(string ''entityClass'', string ''entityName'')</code>
:If this is defined, it will be called right before the entity is created, and any KeyValues returned will be assigned to the entity.
+
:If this is defined, it will be called right before the entity is created, and any keyvalues returned will be assigned to the entity.
  
 
<source lang="cpp">function PreSpawnInstance( entityClass, entityName )
 
<source lang="cpp">function PreSpawnInstance( entityClass, entityName )
Line 428: Line 434:
 
local keyvalues =
 
local keyvalues =
 
{  
 
{  
   rendercolor = "0 255 0"
+
   rendercolor = "0 255 0",
 
   targetname = "mySpawnedEntity"
 
   targetname = "mySpawnedEntity"
 
}
 
}
 +
 
return keyvalues
 
return keyvalues
 
 
}
 
}
 
</source>
 
</source>
  
 
;<code>void PostSpawn(table ''entities'')</code>
 
;<code>void PostSpawn(table ''entities'')</code>
: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.  
+
: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|PostSpawn() will not be called unless the PreSpawnInstance() function is also defined in the script.}}
  
 
<source lang="cpp">function PostSpawn( entities )
 
<source lang="cpp">function PostSpawn( entities )
 
{
 
{
foreach( name, handle in entities )
+
foreach( targetname, handle in entities )
 
{
 
{
printl( name + ": " + handle )
+
printl( targetname + ": " + handle )
 
}
 
}
 
}
 
}
Line 454: Line 462:
  
 
==== Methods ====
 
==== Methods ====
 
 
{| class="standard-table" style="width: 100%;"
 
{| class="standard-table" style="width: 100%;"
 
! Function
 
! Function
Line 508: Line 515:
 
| Set cameras current FOV in integer degrees and FOV change rate as float.
 
| Set cameras current FOV in integer degrees and FOV change rate as float.
 
|}
 
|}
 +
  
 
==== Hooks ====
 
==== Hooks ====
 +
{| class="standard-table" style="width: 100%;"
 +
! Function
 +
! Signature
 +
! Description
 +
|-
 +
| <code>ScriptStartCameraShot</code>
 +
| <code>void ScriptStartCameraShot(string ''shotType'', handle ''sceneEntity'', handle ''actor1'', handle ''actor2'', float ''duration'')</code>
 +
| ''Called from SceneEntity in response to a CChoreoEvent::CAMERA sent from a VCD.'' {{todo}}
 +
|}
 +
 +
 +
=== CFuncTrackTrain ===
 +
Extends [[#CBaseEntity|CBaseEntity]]
 +
 +
 +
==== Methods ====
 +
{| class="standard-table" style="width: 100%;"
 +
! Function
 +
! Signature
 +
! Description
 +
|-
 +
| <code>GetFuturePosition</code>
 +
| <code>Vector GetFuturePosition(float ''x'', float ''speed'')</code>
 +
| Get a position on the track x seconds in the future.
 +
|}
 +
 +
 +
=== CHostage ===
 +
Extends [[#CBaseEntity|CBaseEntity]]
 +
 +
 +
==== Methods ====
 +
{| class="standard-table" style="width: 100%;"
 +
! Function
 +
! Signature
 +
! Description
 +
|-
 +
| <code>IsBeingCarried</code>
 +
| <code>bool IsBeingCarried()</code>
 +
| Get whether the hostage is currently being carried or not.
 +
|}
  
;<code>void ScriptStartCameraShot(string ''shotType'', handle ''sceneEntity'', handle ''actor1'', handle ''actor2'', float ''duration'')</code>
+
 
: ''Called from SceneEntity in response to a CChoreoEvent::CAMERA sent from a VCD.'' {{todo}}
+
=== CGameCoopMissionManager ===
 +
Extends [[#CBaseEntity|CBaseEntity]]
 +
 
 +
 
 +
==== Methods ====
 +
{| class="standard-table" style="width: 100%;"
 +
! Function
 +
! Signature
 +
! Description
 +
|-
 +
| <code>GetWaveNumber</code>
 +
| <code>int GetWaveNumber()</code>
 +
| Get the number of waves the players have completed.
 +
|}
  
  
 
=== CCallChainer ===
 
=== CCallChainer ===
 
{{todo}}
 
{{todo}}
 +
  
 
==== Methods ====
 
==== Methods ====
Line 525: Line 588:
 
|-
 
|-
 
| <code>constructor</code>
 
| <code>constructor</code>
| <code>{{todo}} constructor()</code>
+
| <code>constructor(prefixString, scopeForThis = null)</code>
 
|  
 
|  
 
|-
 
|-
 
| <code>PostScriptExecute</code>
 
| <code>PostScriptExecute</code>
| <code>{{todo}} PostScriptExecute()</code>
+
| <code>PostScriptExecute()</code>
 
|  
 
|  
 
|-
 
|-
 
| <code>Call</code>
 
| <code>Call</code>
| <code>{{todo}} Call()</code>
+
| <code>Call(event, ...)</code>
 
|  
 
|  
 
|}
 
|}
 +
  
 
==== Members ====
 
==== Members ====
Line 558: Line 622:
  
 
=== CEntities ===
 
=== CEntities ===
Game Instance: <code>Entities</code>
+
Script instance: <code>Entities</code>
  
 
An interface to find and iterate over the script handles for the entities in play.  
 
An interface to find and iterate over the script handles for the entities in play.  
  
 
To iterate over a set of entities, pass <code>null</code> to the ''previous'' argument in the appropriate method to start an iteration, or reference to a previously found entity to continue a search.
 
To iterate over a set of entities, pass <code>null</code> to the ''previous'' argument in the appropriate method to start an iteration, or reference to a previously found entity to continue a search.
 +
 +
The following are two equivalent examples and iterate over all weapons on the map:
 +
 +
{| width=100%
 +
|- style="vertical-align:top;"
 +
|
 +
<source lang=cpp>
 +
local ent = null;
 +
while ( ent = Entities.FindByClassname(ent, "weapon_*") )
 +
{
 +
  // ...
 +
}
 +
</source>
 +
|
 +
<source lang=cpp>
 +
for (local ent; ent = Entities.FindByName(ent, "weapon_*"); )
 +
{
 +
  // ...
 +
}
 +
</source>
 +
|}
 +
 +
{{Note |
 +
* The variable name <code>ent</code> is arbitrary.
 +
* Indeed, we mean "{{=}}" and not "{{=}}{{=}}" in the loop conditions! The loops end if <code>ent</code> becomes <code>null</code>. In the {loop body}, <code>ent</code> is a handle of a weapon in the map and definitely not <code>null</code>.
 +
* Semicolons are optional, except in the header of the <code>for</code> statement.
 +
* The string parameters of the <code>FindBy...</code> functions support the wildcard star <code>*</code>. In the above example, <code>FindByClassname</code> only returns either a handle of an entity whose classname begins with "<code>weapon_</code>" or it returns <code>null</code>.
 +
}}
  
 
==== Methods ====
 
==== Methods ====
Line 571: Line 663:
 
|-
 
|-
 
| <code>CreateByClassname</code>
 
| <code>CreateByClassname</code>
| <code>handle CreateByClassname(string ''class'')</code>
+
| <code>handle CreateByClassname(string ''classname'')</code>
| Creates an entity by class name.
+
| Creates an entity by [[classname]] with the initial origin <code>(0,0,0)</code>.
 
|-
 
|-
 
| <code>FindByClassname</code>
 
| <code>FindByClassname</code>
| <code>handle FindByClassname(handle ''previous'', string ''class'')</code>
+
| <code>handle FindByClassname(handle ''previous'', string ''classname'')</code>
| Find entities by class name.  
+
| Find entities by their [[classname]].
 
|-
 
|-
 
| <code>FindByClassnameNearest</code>
 
| <code>FindByClassnameNearest</code>
 
| <code>handle FindByClassnameNearest(string ''class'', Vector ''origin'', float ''radius'')</code>
 
| <code>handle FindByClassnameNearest(string ''class'', Vector ''origin'', float ''radius'')</code>
| Find the entity with the given class name nearest to the specified point.
+
| Find the entity with the given [[classname]] nearest to the specified <code>origin</code>.
 
|-
 
|-
 
| <code>FindByClassnameWithin</code>
 
| <code>FindByClassnameWithin</code>
| <code>handle FindByClassnameWithin(handle ''previous'', string ''class'', Vector ''origin'', float ''radius'')</code>
+
| <code>handle FindByClassnameWithin(handle ''previous'', string ''classname'', Vector ''origin'', float ''radius'')</code>
| Find entities by class name within a radius.  
+
| Find entities by their [[classname]] within a <code>radius</code> around an <code>origin</code>.
 
|-
 
|-
 
| <code>FindByModel</code>
 
| <code>FindByModel</code>
| <code>handle FindByModel(handle ''previous'', string ''filename'')</code>
+
| <code>handle FindByModel(handle ''previous'', string ''modelname'')</code>
| Find entities by model name.  
+
| Find entities by model name.
 
|-
 
|-
 
| <code>FindByName</code>
 
| <code>FindByName</code>
| <code>handle FindByName(handle ''previous'', string ''name'')</code>
+
| <code>handle FindByName(handle ''previous'', string ''targetname'')</code>
| Find entities by name.  
+
| Find entities by name.
 
|-
 
|-
 
| <code>FindByNameNearest</code>
 
| <code>FindByNameNearest</code>
| <code>handle FindByNameNearest(string ''name'', Vector ''origin'', float ''radius'')</code>
+
| <code>handle FindByNameNearest(string ''targetname'', Vector ''origin'', float ''radius'')</code>
 
| Find entities by name nearest to a point.
 
| Find entities by name nearest to a point.
 
|-
 
|-
 
| <code>FindByNameWithin</code>
 
| <code>FindByNameWithin</code>
| <code>handle FindByNameWithin(handle ''previous'', string ''name'', Vector ''origin'', float ''radius'')</code>
+
| <code>handle FindByNameWithin(handle ''previous'', string ''targetname'', Vector ''origin'', float ''radius'')</code>
 
| Find entities by name within a radius.
 
| Find entities by name within a radius.
 
|-
 
|-
 
| <code>FindByTarget</code>
 
| <code>FindByTarget</code>
| <code>handle FindByTarget(handle ''previous'', string ''targetname'')</code>
+
| <code>handle FindByTarget(handle ''previous'', string ''target'')</code>
| Find entities by its target.
+
| Find entities by target keyvalue.
 
|-
 
|-
 
| <code>FindInSphere</code>
 
| <code>FindInSphere</code>
 
| <code>handle FindInSphere(handle ''previous'', Vector ''origin'', float ''radius'')</code>
 
| <code>handle FindInSphere(handle ''previous'', Vector ''origin'', float ''radius'')</code>
| Find entities within a radius.
+
| Find entities within a <code>radius</code> around an <code>origin</code>.
 
|-
 
|-
 
| <code>First</code>
 
| <code>First</code>
 
| <code>handle First()</code>
 
| <code>handle First()</code>
| Begin an iteration over the list of entities.
+
| Returns the first entity, typically ''[[worldspawn]]''. Equivalent to <code>Entities.Next(null)</code>
 
|-
 
|-
 
| <code>Next</code>
 
| <code>Next</code>
 
| <code>handle Next(handle ''previous'')</code>
 
| <code>handle Next(handle ''previous'')</code>
| Continue an iteration over the list of entities, providing reference to a previously found entity.
+
| Providing reference to a previously found entity, returns the next one in the list.
 
|-
 
|-
 
| <code>IsValid</code>
 
| <code>IsValid</code>
Line 623: Line 715:
 
|}
 
|}
  
 +
=== CPlayerVoiceListener ===
 +
{{warning|Broken! This class is implemented in CS:GO, but the required <code>PlayerVoiceListener</code> instance is not.}}
  
=== CPlayerVoiceListener ===
 
{{todo|What is the int parameter to the methods.}}
 
  
 
==== Methods ====
 
==== Methods ====
Line 634: Line 726:
 
|-
 
|-
 
| <code>GetPlayerSpeechDuration</code>
 
| <code>GetPlayerSpeechDuration</code>
| <code>float GetPlayerSpeechDuration(int)</code>
+
| <code>float GetPlayerSpeechDuration(int ''playerIndex'')</code>
 
| Returns the number of seconds the player has been continuously speaking.
 
| Returns the number of seconds the player has been continuously speaking.
 
|-
 
|-
 
| <code>IsPlayerSpeaking</code>
 
| <code>IsPlayerSpeaking</code>
| <code>bool IsPlayerSpeaking(int)</code>
+
| <code>bool IsPlayerSpeaking(int ''playerIndex'')</code>
 
| Returns whether the player specified is speaking.
 
| Returns whether the player specified is speaking.
 
|-
 
|-
Line 650: Line 742:
 
Script handle representation of a models [[$keyvalues]] block.
 
Script handle representation of a models [[$keyvalues]] block.
 
Sub keys are instances of the same class.
 
Sub keys are instances of the same class.
 +
  
 
==== Methods ====
 
==== Methods ====
Line 660: Line 753:
 
|-
 
|-
 
| <code>FindKey</code>
 
| <code>FindKey</code>
| <code>CScriptKeyValues FindKey(string ''keyName'')</code>
+
| <code>CScriptKeyValues FindKey(string ''key'')</code>
 
| Find a sub key by the key name.
 
| Find a sub key by the key name.
 
|-
 
|-
Line 668: Line 761:
 
|-
 
|-
 
| <code>GetKeyBool</code>
 
| <code>GetKeyBool</code>
| <code>bool GetKeyBool(string ''keyName'')</code>
+
| <code>bool GetKeyBool(string ''key'')</code>
 
| Return the key value as a bool.
 
| Return the key value as a bool.
 
|-
 
|-
 
| <code>GetKeyFloat</code>
 
| <code>GetKeyFloat</code>
| <code>float GetKeyFloat(string ''keyName'')</code>
+
| <code>float GetKeyFloat(string ''key'')</code>
 
| Return the key value as a float.
 
| Return the key value as a float.
 
|-
 
|-
 
| <code>GetKeyInt</code>
 
| <code>GetKeyInt</code>
| <code>int GetKeyInt(string ''keyName'')</code>
+
| <code>int GetKeyInt(string ''key'')</code>
 
| Return the key value as an integer.
 
| Return the key value as an integer.
 
|-
 
|-
 
| <code>GetKeyString</code>
 
| <code>GetKeyString</code>
| <code>string GetKeyString(string ''keyName'')</code>
+
| <code>string GetKeyString(string ''key'')</code>
 
| Return the key value as a string.
 
| Return the key value as a string.
 
|-
 
|-
 
| <code>GetNextKey</code>
 
| <code>GetNextKey</code>
| <code>handle GetNextKey()</code>
+
| <code>CScriptKeyValues GetNextKey()</code>
 
| Return the next neighbor key object to the one the method is called on.
 
| Return the next neighbor key object to the one the method is called on.
 
|-
 
|-
 
| <code>IsKeyEmpty</code>
 
| <code>IsKeyEmpty</code>
| <code>bool IsKeyEmpty(string ''keyName'')</code>
+
| <code>bool IsKeyEmpty(string ''key'')</code>
 
| Returns true if the named key has no value.
 
| Returns true if the named key has no value.
 
|-
 
|-
 
| <code>IsValid</code>
 
| <code>IsValid</code>
 
| <code>bool IsValid()</code>
 
| <code>bool IsValid()</code>
| Whether the handle belongs to a valid entity.
+
| Whether the handle belongs to a valid key.
 
|-
 
|-
 
| <code>ReleaseKeyValues</code>
 
| <code>ReleaseKeyValues</code>
Line 702: Line 795:
  
 
=== CSimpleCallChainer ===
 
=== CSimpleCallChainer ===
Seems to have the same members as [[#CCallChainer|CCallChainer]].
+
Has the same members as [[#CCallChainer|CCallChainer]].
 
{{todo}}
 
{{todo}}
  
  
 
=== LateBinder ===
 
=== LateBinder ===
 +
Late binding: allows a table to refer to parts of itself, it's children, it's owner, and then have the references fixed up after it's fully parsed.
 +
<source lang=cpp>
 +
// Usage:
 +
lateBinder <- LateBinder();
 +
lateBinder.Begin( this );
 +
 +
Test1 <-
 +
 +
  Foo=1
 +
 +
 +
Test2 <-
 +
 +
  FooFoo = "I'm foo foo"
 +
  BarBar="@Test1.Foo"
 +
  SubTable = { boo=[bah, "@Test2.FooFoo", "@Test1.Foo"], booboo2={one=bah, two="@Test2.FooFoo", three="@Test1.Foo"} }
 +
  booboo=[bah, "@Test2.FooFoo", "@Test1.Foo"]
 +
  booboo2={one=bah, two="@Test2.FooFoo", three="@Test1.Foo"}
 +
  bah=wha
 +
 +
 +
lateBinder.End();
 +
delete lateBinder;
 +
</source>
 +
 +
When End() is called, all of the unresolved symbols in the tables and arrays will be resolved, any left unresolved will become a string prepended with '~', which later code can deal with.
 +
  
 
==== Methods ====
 
==== Methods ====
Line 743: Line 863:
  
 
=== regexp ===
 
=== regexp ===
The built-in [http://squirrel-lang.org/doc/sqstdlib3.html#d0e2591 Squirrel class] for regular expressions.
+
The built-in [http://squirrel-lang.org/doc/sqstdlib2.html#d0e2580 Squirrel class] for regular expressions.
 +
 
  
 
==== Methods ====
 
==== Methods ====
Line 760: Line 881:
 
|-
 
|-
 
| <code>match</code>
 
| <code>match</code>
| <code> bool match(''str'')</code>
+
| <code>bool match(''str'')</code>
 
| Returns a true if the regular expression matches the string str, otherwise returns false.  
 
| Returns a true if the regular expression matches the string str, otherwise returns false.  
 
|-
 
|-
Line 778: Line 899:
 
Three-dimensional vector.
 
Three-dimensional vector.
  
Has overloaded arithmetic operations with both Vectors and scalar values.
+
Has overloaded operations for the following:
 +
<code>Vector * number</code>
 +
<code>Vector + Vector</code>
 +
<code>Vector - Vector</code>
  
{{note|[http://www.leeland.net/hochsuch.html Example] declaration and manipulation of Vector}}
 
  
 
==== Methods ====
 
==== Methods ====
Line 789: Line 912:
 
|-
 
|-
 
| <code>constructor</code>
 
| <code>constructor</code>
| <code>Vector(float ''x'', float ''y'', float ''z'')</code>
+
| <code>Vector(float ''x'' = 0, float ''y'' = 0, float ''z'' = 0)</code>
 
| Creates a new vector with the specified Cartesian coordiantes.
 
| Creates a new vector with the specified Cartesian coordiantes.
 
|-
 
|-
 
| <code>Cross</code>
 
| <code>Cross</code>
 
| <code>float Cross(Vector ''factor'')</code>
 
| <code>float Cross(Vector ''factor'')</code>
| The vector product of two vectors. Returns a vector orthogonal to the input vectors.
+
| The [[wiki:Cross product|vector product]] of two vectors. Returns a vector orthogonal to the input vectors.
 
|-
 
|-
 
| <code>Dot</code>
 
| <code>Dot</code>
 
| <code>float Dot(Vector ''factor'')</code>
 
| <code>float Dot(Vector ''factor'')</code>
| The scalar product of two vectors.  
+
| The [[wiki:Dot product|scalar product]] of two vectors.  
 
|-
 
|-
 
| <code>Length</code>
 
| <code>Length</code>
 
| <code>float Length()</code>
 
| <code>float Length()</code>
| Magnitude of the vector.
+
| Length of the vector.
 
|-
 
|-
 
| <code>LengthSqr</code>
 
| <code>LengthSqr</code>
 
| <code>float LengthSqr()</code>
 
| <code>float LengthSqr()</code>
| The magnitude of the vector squared. Faster than the above method.
+
| Length of the vector squared. Cheaper than the above method.
 
|-
 
|-
 
| <code>Length2D</code>
 
| <code>Length2D</code>
 
| <code>float Length2D()</code>
 
| <code>float Length2D()</code>
| Returns the magnitude of the vector on the x-y plane.
+
| Returns the length of the vector on the x-y plane.
 
|-
 
|-
 
| <code>Length2DSqr</code>
 
| <code>Length2DSqr</code>
 
| <code>float Length2DSqr()</code>
 
| <code>float Length2DSqr()</code>
| Returns the square of the magnitude of the vector on the x-y plane. Faster than the above method.
+
| Returns the square of the length of the vector on the x-y plane. Cheaper than the above method.
 
|-
 
|-
 
| <code>Norm</code>
 
| <code>Norm</code>
 
| <code>float Norm()</code>
 
| <code>float Norm()</code>
| Seems to also return the vector length.
+
| Normalises the vector, returns the vector length.
 
|-
 
|-
 
| <code>ToKVString</code>
 
| <code>ToKVString</code>
Line 824: Line 947:
 
| Returns a string without separations commas.
 
| Returns a string without separations commas.
 
|}
 
|}
 +
  
 
==== Members ====
 
==== Members ====
Line 847: Line 971:
 
== Global functions ==
 
== Global functions ==
  
=== Printing and Drawing ===
+
 
 +
=== Printing and drawing ===
  
 
{| class="standard-table" style="width: 100%;"
 
{| class="standard-table" style="width: 100%;"
Line 855: Line 980:
 
|-
 
|-
 
| <code>DebugDrawBox</code>
 
| <code>DebugDrawBox</code>
| <code>void DebugDrawBox(vector ''origin'', vector ''min'', vector ''max'', int ''r'', int ''g'', int ''b'', int ''alpha'', float ''duration'')</code>
+
| <code>void DebugDrawBox(vector ''origin'', vector ''mins'', vector ''maxs'', int ''r'', int ''g'', int ''b'', int ''alpha'', float ''duration'')</code>
| Draw a debug overlay box.
+
| Draw a debug overlay box in the specified color for the specified duration with two corners being <code>origin + mins</code> and <code>origin + maxs</code>. The <code>alpha</code> is the fill rate (0-255). Set ''duration'' to 0 if drawn every tick.
 +
|-
 +
| <code>DebugDrawBoxAngles</code>
 +
| <code>void DebugDrawBoxAngles(Vector ''origin'', Vector ''mins'', Vector ''maxs'', Vector ''angles'', int ''r'', int ''g'', int ''b'', int ''alpha'', float ''duration'')</code>
 +
| Draw a debug overlay box with angles in the specified color for the specified duration with two corners being <code>origin + mins</code> and <code>origin + maxs</code> + <code>angles</code>. The <code>alpha</code> is the fill rate (0-255). Set ''duration'' to 0 if drawn every tick.
 
|-
 
|-
 
| <code>DebugDrawLine</code>
 
| <code>DebugDrawLine</code>
| <code>void DebugDrawLine(Vector ''start'', Vector ''end'', int ''red'', int ''green'', int ''blue', bool ''zTest'', float ''time'')</code>
+
| <code>void DebugDrawLine(Vector ''start'', Vector ''end'', int ''r'', int ''g'', int ''b'', bool ''noDepthTest'', float ''duration'')</code>
| Draw a debug line between two points.
+
| Draw a debug line between the points <code>start</code> and <code>end</code> in the specified color for the specified duration. Set ''duration'' to 0 if drawn every tick.
 
|-
 
|-
 
| <code>Msg</code>
 
| <code>Msg</code>
Line 872: Line 1,001:
 
| <code>printl</code>
 
| <code>printl</code>
 
| <code>void printl(string ''message'')</code>
 
| <code>void printl(string ''message'')</code>
| Prints the given message to the developer console just like print but also appends a newline.
+
| Prints the given message to the developer console with newline. Equivalent to <code>print(message + "\n")</code>
 
|-
 
|-
 
| <code>ScriptPrintMessageCenterAll</code>
 
| <code>ScriptPrintMessageCenterAll</code>
 
| <code>void ScriptPrintMessageCenterAll(string ''message'')</code>
 
| <code>void ScriptPrintMessageCenterAll(string ''message'')</code>
 
| Prints an alert message in the center of the screen to all players.
 
| Prints an alert message in the center of the screen to all players.
 +
|-
 +
| <code>ScriptPrintMessageCenterAllWithParams</code>
 +
| <code>void ScriptPrintMessageCenterAllWithParams(string ''message'', string ''param1'', string ''param2'', string ''param3'')</code>
 +
| Prints an alert message in the center print method to all players. Needs to pass token/message.
 
|-
 
|-
 
| <code>ScriptPrintMessageCenterTeam</code>
 
| <code>ScriptPrintMessageCenterTeam</code>
 
| <code>void ScriptPrintMessageCenterTeam(int, string)</code>
 
| <code>void ScriptPrintMessageCenterTeam(int, string)</code>
 
| Prints an alert message in the center of the screen to the specified team.
 
| Prints an alert message in the center of the screen to the specified team.
 +
* 0 : None
 +
* 1 : Spectators
 +
* 2 : Terrorists
 +
* 3 : Counter-Terrorists
 +
{{Warning|Game crashes for other team numbers!}}
 
|-
 
|-
 
| <code>ScriptPrintMessageChatAll</code>
 
| <code>ScriptPrintMessageChatAll</code>
Line 887: Line 1,025:
 
|-
 
|-
 
| <code>ScriptPrintMessageChatTeam</code>
 
| <code>ScriptPrintMessageChatTeam</code>
| <code>void ScriptPrintMessageChatTeam(int ''teamNumber'', string ''message'')</code>
+
| <code>void ScriptPrintMessageChatTeam(int ''team'', string ''message'')</code>
 
| Prints a message in chat to the specified team.
 
| Prints a message in chat to the specified team.
 +
{{Warning|Game crashes for other team numbers than the above!}}
 
|-
 
|-
 
| <code>ShowMessage</code>
 
| <code>ShowMessage</code>
 
| <code>void ShowMessage(string)</code>
 
| <code>void ShowMessage(string)</code>
| Print a hud message on all clients. {{Bug|Non-functional}}
+
| Print a hud message on all clients. {{Note|Uses localized strings as found in <code>/scripts/titles.txt</code>}}
 
|-
 
|-
 
| <code>__DumpScope</code>
 
| <code>__DumpScope</code>
| <code>void __DumpScope(int ''indentation'', handle ''scope'')</code>
+
| <code>void __DumpScope(int ''indentation'', table ''scope'')</code>
| Dumps contents of everything in the scope.
+
| Dumps the contents of ''scope''.
 
|-
 
|-
 
|}
 
|}
  
  
=== Training Course related ===
+
=== Training Course ===
 +
 
 
{| class="standard-table" style="width: 100%;"
 
{| class="standard-table" style="width: 100%;"
 
! Function
 
! Function
Line 924: Line 1,064:
 
|-
 
|-
 
| <code>ScriptSetBestTrainingCourseTime</code>
 
| <code>ScriptSetBestTrainingCourseTime</code>
| <code>void ScriptSetBestTrainingCourseTime(int ''bestTime'')</code>
+
| <code>void ScriptSetBestTrainingCourseTime(int ''time'')</code>
 
| Sets the player's best time for completing the timed course.
 
| Sets the player's best time for completing the timed course.
 
|-
 
|-
 
| <code>ScriptSetMiniScoreHidden</code>
 
| <code>ScriptSetMiniScoreHidden</code>
| <code>void ScriptSetMiniScoreHidden(bool ''scoreHidden'')</code>
+
| <code>void ScriptSetMiniScoreHidden(bool ''hide'')</code>
 
| Toggles the visibility of the miniscoreboard hud element.
 
| Toggles the visibility of the miniscoreboard hud element.
 
|-
 
|-
 
| <code>ScriptSetPlayerCompletedTraining</code>
 
| <code>ScriptSetPlayerCompletedTraining</code>
| <code>void ScriptSetPlayerCompletedTraining(bool ''trainingCompleted'')</code>
+
| <code>void ScriptSetPlayerCompletedTraining(bool ''completed'')</code>
 
| Sets whether the player has completed the initial portion of the training map.
 
| Sets whether the player has completed the initial portion of the training map.
 +
|-
 +
| <code>ScriptSetRadarHidden</code>
 +
| <code>void ScriptSetRadarHidden(bool ''hide'')</code>
 +
| Toggles the visibility of the radar hud element.
 
|-
 
|-
 
| <code>ScriptShowExitDoorMsg</code>
 
| <code>ScriptShowExitDoorMsg</code>
Line 950: Line 1,094:
  
  
=== Co-op Strike related ===
+
=== [[Creating a Co-op Strike Map|Co-op Strike]] ===
 +
 
 
{| class="standard-table" style="width: 100%;"
 
{| class="standard-table" style="width: 100%;"
 
! Function
 
! Function
Line 958: Line 1,103:
 
| <code>ScriptCoopCollectBonusCoin</code>
 
| <code>ScriptCoopCollectBonusCoin</code>
 
| <code>void ScriptCoopCollectBonusCoin()</code>
 
| <code>void ScriptCoopCollectBonusCoin()</code>
| Marks one of the bonus coins as collected.
+
| Marks one of the [[Item coop coin|bonus coins]] as collected.
 
|-
 
|-
 
| <code>ScriptCoopGiveC4sToCTs</code>
 
| <code>ScriptCoopGiveC4sToCTs</code>
 
| <code>void ScriptCoopGiveC4sToCTs(int)</code>
 
| <code>void ScriptCoopGiveC4sToCTs(int)</code>
| Will give the number of specified C4s to all alive CT players.
+
| Will give the number of specified [[weapon_c4|C4]]s to all alive CT players.
 
|-
 
|-
 
| <code>ScriptCoopMissionGetMissionNumber</code>
 
| <code>ScriptCoopMissionGetMissionNumber</code>
Line 971: Line 1,116:
 
| <code>void ScriptCoopMissionRespawnDeadPlayers()</code>
 
| <code>void ScriptCoopMissionRespawnDeadPlayers()</code>
 
| Respawns players only.
 
| Respawns players only.
 +
|-
 +
| <code>ScriptCoopMissionSetDeadPlayerRespawnEnabled</code>
 +
| <code>void ScriptCoopMissionSetDeadPlayerRespawnEnabled(bool)</code>
 +
| Controls whether player respawns can happen.
 
|-
 
|-
 
| <code>ScriptCoopMissionSetNextRespawnIn</code>
 
| <code>ScriptCoopMissionSetNextRespawnIn</code>
Line 990: Line 1,139:
 
| <code>ScriptCoopSetBotQuotaAndRefreshSpawns</code>
 
| <code>ScriptCoopSetBotQuotaAndRefreshSpawns</code>
 
| <code>void ScriptCoopSetBotQuotaAndRefreshSpawns(int)</code>
 
| <code>void ScriptCoopSetBotQuotaAndRefreshSpawns(int)</code>
| Sets the bot quota considering the # of players connected and refreshes the spawns.
+
| Sets the [[bot quota]] considering the # of players connected and refreshes the spawns.
 +
|-
 +
| <code>ScriptCoopExtendRoundDurationTime</code>
 +
| <code>void ScriptCoopExtendRoundDurationTime(float)</code>
 +
| Extends the round time after checkpoint during the mission.
 +
|-
 +
| <code>ScriptCoopToggleEntityOutlineHighlights</code>
 +
| <code>void ScriptCoopToggleEntityOutlineHighlights(bool)</code>
 +
| Highlights all dropped weapons for players, or removes all highlights.
 +
|-
 +
| <code>ScriptMissionResetDangerZones</code>
 +
| <code>void ScriptMissionResetDangerZones()</code>
 +
| Resets all danger zone entities.
 +
|-
 +
| <code>ScriptMissionCreateAndDetonateDangerZone</code>
 +
| <code>void ScriptMissionCreateAndDetonateDangerZone(Vector, Vector)</code>
 +
| Creates and detonates a danger zone at the given location moving towards target location.
 
|-
 
|-
 +
|}
 +
 +
 +
=== Premier Mode ===
 +
 +
{| class="standard-table" style="width: 100%;"
 +
! Function
 +
! Signature
 +
! Description
 +
|-
 +
| <code>ScriptLobbyMapVetoFinished</code>
 +
| <code>void ScriptLobbyMapVetoFinished(string mapname, bool, bool, string)</code>
 +
| Switch to the selected map after lobby map veto finished.
 +
|-
 +
|}
 +
 +
 +
=== Math ===
 +
 +
The built-in [http://www.squirrel-lang.org/mainsite/doc/sqstdlib2.html#d0e1519 Squirrel math library].
 +
 +
{| class="standard-table" style="width: 100%;"
 +
! Function
 +
! Signature
 +
! Description
 +
|-
 +
| <code>abs</code>
 +
| <code> int abs(float ''x'')</code>
 +
| Returns the absolute value of <code>x</code> as an integer.
 +
|-
 +
| <code>acos</code>
 +
| <code> float acos(float ''x'')</code>
 +
| Returns the arccosine of <code>x</code>.
 +
|-
 +
| <code>asin</code>
 +
| <code> float asin(float ''x'')</code>
 +
| Returns the arcsine of <code>x</code>.
 +
|-
 +
| <code>atan</code>
 +
| <code> float atan(float ''x'')</code>
 +
| Returns the arctangent of <code>x</code>.
 +
|-
 +
| <code>atan2</code>
 +
| <code> float atan2(float ''x'', float ''y'')</code>
 +
| Returns the arctangent of <code>x/y</code>.
 +
|-
 +
| <code>ceil</code>
 +
| <code> float ceil(float ''x'')</code>
 +
| Returns a float value representing the smallest integer that is greater than or equal to <code>x</code>.
 +
|-
 +
| <code>cos</code>
 +
| <code> float cos(float ''x'')</code>
 +
| Returns the cosine of <code>x</code>.
 +
|-
 +
| <code>exp</code>
 +
| <code> float exp(float ''x'')</code>
 +
| Returns the exponential value (<code>e^x</code>) of the float parameter <code>x</code>.
 +
|-
 +
| <code>fabs</code>
 +
| <code> float fabs(float ''x'')</code>
 +
| Returns the absolute value of <code>x</code> as a float.
 +
|-
 +
| <code>floor</code>
 +
| <code> float floor(float ''x'')</code>
 +
| Returns a float value representing the largest integer that is less than or equal to <code>x</code>.
 +
|-
 +
| <code>log</code>
 +
| <code> float log(float ''x'')</code>
 +
| Returns the natural logarithm of <code>x</code>.
 +
|-
 +
| <code>log10</code>
 +
| <code> float log10(float ''x'')</code>
 +
| Returns the logarithm base-10 of <code>x</code>.
 +
|-
 +
| <code>pow</code>
 +
| <code> float pow(float ''x'', float ''y'')</code>
 +
| Returns <code>x</code> raised to the power of <code>y</code>.
 +
|-
 +
| <code>rand</code>
 +
| <code> int rand()</code>
 +
| Returns a pseudorandom integer in the range 0 to <code>RAND_MAX</code>.
 +
|-
 +
| <code>sin</code>
 +
| <code> float sin(float ''x'')</code>
 +
| Returns the sine of <code>x</code>.
 +
|-
 +
| <code>sqrt</code>
 +
| <code> float sqrt(float ''x'')</code>
 +
| Returns the square root of <code>x</code>.
 +
|-
 +
| <code>srand</code>
 +
| <code> void srand(float ''seed'')</code>
 +
| Sets the starting point for generating a series of pseudorandom integers.
 +
|-
 +
| <code>tan</code>
 +
| <code> float tan(float ''x'')</code>
 +
| Returns the tangent of <code>x</code>.
 
|}
 
|}
  
  
 
=== Other ===
 
=== Other ===
 +
 
{| class="standard-table" style="width: 100%;"
 
{| class="standard-table" style="width: 100%;"
 
! Function
 
! Function
Line 1,002: Line 1,265:
 
|-
 
|-
 
| <code>Assert</code>
 
| <code>Assert</code>
| <code>void Assert(bool ''value'', string ''optional message'')</code>
+
| <code>void Assert(''exp'', string ''message'' = null)</code>
| Test value and if not true, throws exception, optionally with message.
+
| Throws an exception if ''exp'' equates to false, optionally with message.
 
|-
 
|-
 
| <code>CreateProp</code>
 
| <code>CreateProp</code>
| <code>handle CreateProp(string ''class'', Vector ''origin'', string ''model'', int ''animation'')</code>
+
| <code>handle CreateProp(string ''classname'', Vector ''origin'', string ''model'', int ''animation'')</code>
| Create a prop with the specified class and model. Both prop_physics, prop_dynamic as well as some other entity classes with models work. Does not precache the model. {{bug|Does not initialize the physics of the prop.}}
+
| Create a prop with the specified class and model. Both [[prop_physics]], [[prop_dynamic]] as well as some other entity classes with models work. Does not precache the model.
 
|-
 
|-
 
| <code>CreateSceneEntity</code>
 
| <code>CreateSceneEntity</code>
 
| <code>CSceneEntity CreateSceneEntity(string ''scene'')</code>
 
| <code>CSceneEntity CreateSceneEntity(string ''scene'')</code>
| Create a scene entity to play the specified scene .vcd file.
+
| Create a scene entity to play the specified scene [[VCD|.vcd file]].
 +
|-
 +
| <code>DispatchParticleEffect</code>
 +
| <code>void DispatchParticleEffect(string ''particle'', Vector ''position'', Vector ''orientation'')</code>
 +
| Dispatches a one-off particle system.
 
|-
 
|-
 
| <code>DoIncludeScript</code>
 
| <code>DoIncludeScript</code>
 
| <code>bool DoIncludeScript(string ''filename'', table ''scope'')</code>
 
| <code>bool DoIncludeScript(string ''filename'', table ''scope'')</code>
| Execute a script with the script scope set to the specified table.
+
| Execute the script file <code>"csgo/scripts/vscripts/" + filename</code> in the scope of <code>scope</code>. The extension <code>.nut</code> can be omitted.
 +
|-
 +
| <code>IncludeScript</code>
 +
| <code>bool IncludeScript(string ''filename'', table ''scope'' = null)</code>
 +
| Execute the script file <code>"csgo/scripts/vscripts/" + filename</code> in the scope of <code>scope</code>, <code>this</code> by default. The extension <code>.nut</code> can be omitted.
 
|-
 
|-
 
| <code>DoEntFire</code>
 
| <code>DoEntFire</code>
 
| <code>void DoEntFire(string ''target'', string ''action'', string ''value'', float ''delay'', handle ''activator'', handle ''caller'')</code>
 
| <code>void DoEntFire(string ''target'', string ''action'', string ''value'', float ''delay'', handle ''activator'', handle ''caller'')</code>
| Generate an entity I/O event. The ''caller'' argument takes a script handle, so it can be used with ''target'' set to ''!self'' to fire inputs to entities without usable targetnames.
+
| Generate an entity [[I/O]] event.
 
|-
 
|-
 
| <code>EntFire</code>
 
| <code>EntFire</code>
| <code>function EntFire(string ''target'', string ''action'', string ''value'', float ''delay'' = 0.0, handle ''activator'' = null)</code>
+
| <code>void EntFire(string ''target'', string ''action'', string ''value'' = "", float ''delay'' = 0.0, handle ''activator'' = null)</code>
 
| Generate an entity I/O event.
 
| Generate an entity I/O event.
 
|-
 
|-
 
| <code>EntFireByHandle</code>
 
| <code>EntFireByHandle</code>
| <code>void EntFireByHandle(handle ''target'', string ''action'', string 'value'', float ''delay'', handle ''activator'', handle ''caller'')</code>
+
| <code>void EntFireByHandle(handle ''target'', string ''action'', string ''value'', float ''delay'', handle ''activator'', handle ''caller'')</code>
| Generate an entity I/O event. The first parameter is an entity instance, so the handles of nameless or script generated entities can be passed easily.
+
| Generate an entity I/O event.
 
|-
 
|-
 
| <code>FrameTime</code>
 
| <code>FrameTime</code>
 
| <code>float FrameTime()</code>
 
| <code>float FrameTime()</code>
| Get the time spent on the server in the last frame
+
| Get the time spent on the server in the last frame.
 
|-
 
|-
 
| <code>GetDeveloperLevel</code>
 
| <code>GetDeveloperLevel</code>
 
| <code>int GetDeveloperLevel()</code>
 
| <code>int GetDeveloperLevel()</code>
| Gets the level of the ''developer'' mode.
+
| Gets the level of the ''developer'' mode. Equivalent to <code>developer()</code>.
 
|-
 
|-
 
| <code>GetMapName</code>
 
| <code>GetMapName</code>
Line 1,046: Line 1,317:
 
|-
 
|-
 
| <code>PrintHelp</code>
 
| <code>PrintHelp</code>
|
+
| <code>void PrintHelp(string ''string'' = "*", bool ''exact'' = false)</code>
| {{todo}}
+
| Output help for script functions, optionally with a search string.
|-
 
| <code>RandomFloat</code>
 
| <code>float RandomFloat()</code>
 
| Generate a random floating point number.
 
 
|-
 
|-
 
| <code>RandomFloat</code>
 
| <code>RandomFloat</code>
 
| <code>float RandomFloat(float ''min'', float ''max'')</code>
 
| <code>float RandomFloat(float ''min'', float ''max'')</code>
| Generate a random floating point number within a range, inclusive
+
| Generate a random floating point number within a range, inclusive.
|-
 
| <code>RandomInt</code>
 
| <code>int RandomInt()</code>
 
| Generate a random integer.
 
 
|-
 
|-
 
| <code>RandomInt</code>
 
| <code>RandomInt</code>
 
| <code>int RandomInt(int ''min'', int ''max'')</code>
 
| <code>int RandomInt(int ''min'', int ''max'')</code>
| Generate a random integer within a range, inclusive
+
| Generate a random integer within a range, inclusive.
 
|-
 
|-
 
| <code>RecordAchievementEvent</code>
 
| <code>RecordAchievementEvent</code>
 
| <code>void RecordAchievementEvent(string, int)</code>
 
| <code>void RecordAchievementEvent(string, int)</code>
| Records achievement event or progress
+
| Records achievement event or progress.
 
|-
 
|-
 
| <code>RetrieveNativeSignature</code>
 
| <code>RetrieveNativeSignature</code>
| <code>void RetrieveNativeSignature(string ''or'' func)</code>
+
| <code>void RetrieveNativeSignature(string ''nativeFunction'')</code>
| Name suggests it would print the calling format for a native function, but I can't get it to output anything other than <code><unnamed></code>
+
| {{todo}}
 
|-
 
|-
 
| <code>ScriptGetGameMode</code>
 
| <code>ScriptGetGameMode</code>
 
| <code>int ScriptGetGameMode()</code>
 
| <code>int ScriptGetGameMode()</code>
| Retrieves the set game_mode. See [[Counter-Strike:_Global_Offensive_Dedicated_Servers#Starting_the_Server|this list]] for a settings vs modes overview.
+
| Gets the current [[game mode]].
 
|-
 
|-
 
| <code>ScriptGetGameType</code>
 
| <code>ScriptGetGameType</code>
 
| <code>int ScriptGetGameType()</code>
 
| <code>int ScriptGetGameType()</code>
| Retrieves the set game_type. See [[Counter-Strike:_Global_Offensive_Dedicated_Servers#Starting_the_Server|this list]] for a settings vs modes overview.
+
| Gets the current [[game type]].
 
|-
 
|-
 
| <code>ScriptGetRoundsPlayed</code>
 
| <code>ScriptGetRoundsPlayed</code>
 
| <code>int ScriptGetRoundsPlayed()</code>
 
| <code>int ScriptGetRoundsPlayed()</code>
| Get the number of rounds played so far.
+
| Get the number of rounds that any team has won so far. {{Warning | Drawn rounds are not counted, except they were ended using a [[game_round_end]] entity.}}
 
|-
 
|-
 
| <code>ScriptIsLocalPlayerUsingController</code>
 
| <code>ScriptIsLocalPlayerUsingController</code>
Line 1,092: Line 1,355:
 
| <code>bool ScriptIsWarmupPeriod()</code>
 
| <code>bool ScriptIsWarmupPeriod()</code>
 
| Is it warmup or not.
 
| Is it warmup or not.
|-
 
| <code>ScriptSetRadarHidden</code>
 
| <code>void ScriptSetRadarHidden(bool ''hideRadar'')</code>
 
| Toggles the visibility of the radar hud element.
 
 
|-
 
|-
 
| <code>SendToConsole</code>
 
| <code>SendToConsole</code>
 
| <code>void SendToConsole(string ''command'')</code>
 
| <code>void SendToConsole(string ''command'')</code>
| Send a string to the console as a command.
+
| Send a string to the console as a command. The command is executed through the local player.
 
|-
 
|-
 
| <code>SendToConsoleServer</code>
 
| <code>SendToConsoleServer</code>
| <code>void SendToConsoleServer(string)</code>
+
| <code>void SendToConsoleServer(string ''command'')</code>
| Send a string that gets executed on the server as a ServerCommand
+
| Send a string that gets executed on the server as a ServerCommand.
 
|-
 
|-
 
| <code>Time</code>
 
| <code>Time</code>
 
| <code>float Time()</code>
 
| <code>float Time()</code>
| Get the current server time
+
| Get the current server time.
 
|-
 
|-
 
| <code>TraceLine</code>
 
| <code>TraceLine</code>
| <code>float TraceLine(Vector, Vector, handle)</code>
+
| <code>float TraceLine(Vector ''start'', Vector ''end'', handle ''ignore'')</code>
| given 2 points & ent to ignore, return fraction along line that hits world or models
+
| Given 2 points and an entity to ignore, returns fraction along line that hits world or models.
 +
|-
 +
| <code>TraceLinePlayersIncluded</code>
 +
| <code>float TraceLinePlayersIncluded(Vector ''start'', Vector ''end'', handle ''ignore'')</code>
 +
| Given 2 points and entity to ignore, returns fraction along line that hits world, models, players and NPCs. {{Note| Blocking entities are not limited to [[player]], almost everything will block it.}}
 
|-
 
|-
 
| <code>UniqueString</code>
 
| <code>UniqueString</code>
| <code>function UniqueString(string)</code>
+
| <code>string UniqueString(string ''suffix'' = "")</code>
 +
| 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. Equivalent to <code>DoUniqueString(suffix)</code>.
 +
|-
 +
| <code>DoUniqueString</code>
 +
| <code>string DoUniqueString(string ''suffix'')</code>
 
| 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.
 
| 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.
 
|-
 
|-
 
| <code>__ReplaceClosures</code>
 
| <code>__ReplaceClosures</code>
 +
| <code>void __ReplaceClosures(function ''script'', table ''scope'')</code>
 +
| Internal function called in <code>script_reload_</code> server commands.
 
|}
 
|}
  
== See Also ==
 
* [http://pastebin.com/7LRsSjEZ Pastebin with script that suggests it is run when Squirrel VM starts]
 
  
* [[List of L4D2 Script Functions]]
+
== See also ==
 +
* [[VScript]]
 +
* [[VScript Fundamentals]]
 +
* {{sq}} [[Squirrel]]
 +
* [[Listening to game events in CS:GO|Listening to game events]]
 +
* {{csgo}} [[CSGO Vscript Examples|VScript Examples]]
 +
* {{l4d2}} [[List of L4D2 Script Functions]]
 
* {{portal2}} [[List of Portal 2 Script Functions]]
 
* {{portal2}} [[List of Portal 2 Script Functions]]
  
 
[[Category:Counter-Strike: Global Offensive]]
 
[[Category:Counter-Strike: Global Offensive]]
 
[[Category:Scripting]]
 
[[Category:Scripting]]

Latest revision as of 18:51, 2 September 2021

English Русский 简体中文 한국어

Squirrel Language This list contains the engine-related Squirrel classes, functions and variables available for VScript in Counter-Strike: Global Offensive Counter-Strike: Global Offensive . The official documentation can be printed in the console by setting developer to non-zero, loading a map, and executing script_help.


Variables

Instance Type Description
Entities CEntities Provides access to spawned entities in the server.


Constants

Instance Type Value
_charsize_ integer 1
_floatsize_ integer 4
_intsize_ integer 4
_version_ string "Squirrel 2.2.3 stable"
RAND_MAX integer 32767
PI float 3.14159


Classes

CBaseEntity

This is a script handle class for entities. All entities spawned have a script handle using this or one of its subclasses.

All script handles in-game are accessible from Entities. Entity scripts can use self to access their own script handle. activator and caller variables can be accessed on function calls.


Methods

Function Signature Description
__KeyValueFromInt bool __KeyValueFromInt(string key, int value) Sets entity keyvalue from an integer.
__KeyValueFromFloat bool __KeyValueFromFloat(string key, float value) Sets entity keyvalue from a float.
__KeyValueFromString bool __KeyValueFromString(string key, string value) Sets entity keyvalue from a string.
__KeyValueFromVector bool __KeyValueFromVector(string key, Vector value) Sets entity keyvalue from a Vector.
ConnectOutput void ConnectOutput(string output, string function) Adds an I/O connection that will call the named function when the specified output fires.
DisconnectOutput void DisconnectOutput(string output, string function) Removes a connected script function from an I/O event.
Destroy void Destroy() Kills the entity.
EmitSound void EmitSound(string soundname) Plays a sound from this entity.
entindex int entindex() Returns the entity index.
EyePosition Vector EyePosition() Get vector to the eye position - absolute coordinates.
FirstMoveChild handle FirstMoveChild() If in hierarchy, get the first move child.
GetAngles Vector GetAngles() Get the entity pitch, yaw, roll as a Vector object.
GetAngularVelocity Vector GetAngularVelocity() Get the local angular velocity - returns a Vector of pitch, yaw, roll.
GetBoundingMaxs Vector GetBoundingMaxs() 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 - local coords.
GetClassname string GetClassname() Get entity classname.
GetForwardVector Vector GetForwardVector() Get the forward vector of the entity.
GetHealth int GetHealth() Returns the current health.
GetLeftVector Vector GetLeftVector() Get the right vector of the entity.
GetMaxHealth int GetMaxHealth() Returns the maximum health.
GetModelKeyValues CScriptKeyValues GetModelKeyValues() Returns the $keyvalues block of the entity's model as a #CScriptKeyValues object. Note that this is not the keyvalues of the entity itself.
GetModelName string GetModelName() Returns the name of the model.
GetMoveParent handle GetMoveParent() If in hierarchy, retrieves the entity's parent.
GetName string GetName() Returns the targetname of the entity.
GetOrigin Vector GetOrigin() Returns this entity's local origin.
GetOwner handle GetOwner() Gets this entity's owner.
GetPreTemplateName string GetPreTemplateName() Get the entity name stripped of template unique decoration. This is the &048 suffix added by templates that do not preserve the entity name.
GetRootMoveParent handle GetRootMoveParent() If in hierarchy, walks up the hierarchy to find the root parent.
GetScriptId string GetScriptId() Returns the thinkfunction keyvalue of the entity.
GetScriptScope handle GetScriptScope() Retrieve the table storing the Entity Script data associated with this entity.
GetSoundDuration float GetSoundDuration(string soundname, string actormodel) Returns float duration of the sound.
GetTeam int GetTeam() Get the team this entity is on.
GetUpVector Vector GetUpVector() Get the up vector of the entity.
GetVelocity Vector GetVelocity() Get the velocity of the entity.
IsValid bool IsValid() Whether the handle belongs to a valid entity.
NextMovePeer handle NextMovePeer() Return the next entity in the same movement hierarchy.
PrecacheModel void PrecacheModel(string modelname) Precache a model. Expensive.
PrecacheScriptSound void PrecacheScriptSound(string soundname) Precache a sound. Expensive.
PrecacheSoundScript void PrecacheSoundScript(string soundscript) Precache a sound for later playing. Expensive.
SetAbsOrigin void SetAbsOrigin(Vector position) Set absolute origin.
SetAngles void SetAngles(float pitch, float yaw, float roll) Set entity pitch, yaw, roll.
SetAngularVelocity void SetAngularVelocity(float pitch, float yaw, float roll) Set the local angular velocity - takes float pitch, yaw, roll velocities.
SetForwardVector void SetForwardVector(Vector forwardvec) Set the orientation of the entity to have this forward vector.
SetHealth void SetHealth(int health) Sets the current health.
SetMaxHealth void SetMaxHealth(int health) Sets the maximum health.
SetModel void SetModel(string modelname) Changes the model of the entity. Does not precache the model.
SetOrigin void SetOrigin(Vector position) Set local origin. "Teleports" the entity.
SetOwner void SetOwner(handle owner) Sets this entity's owner.
SetSize void SetSize(Vector mins, Vector maxs) Sets the bounding box size.
SetTeam void SetTeam(int team) Set the team this entity is on.
SetVelocity void SetVelocity(Vector velocity) Set local velocity.
StopSound void StopSound(string soundname) Stops a sound on this entity.
ValidateScriptScope bool ValidateScriptScope() Ensure that an entity's script scope has been created.


Hooks

If one of these functions are declared in an Entity Script, the entity will run this function automatically in the appropriate situation.

Function Signature Description
InputInputName bool InputInputName() Called when the entity receives an input from the I/O system. The name of the function needs to be Input followed by the name of the input in CamelCase, for example InputFireUser1 for the FireUser1 input. The function needs to return a boolean value. Setting it to true allows the entity to process the input, while false cancels it.
OnPostSpawn void OnPostSpawn() This is called after the entity has spawned.
Precache void Precache() This is called during entity spawning and after restore to allow scripts to precache any resources they need.


CBaseAnimating

Extends CBaseEntity

Script handle class for animating entities such as props.


Methods

Function Signature Description
GetAttachmentAngles Vector GetAttachmentAngles(int id) Get the attachment ID's angles as a pitch, yaw, roll vector.
GetAttachmentOrigin Vector GetAttachmentOrigin(int id) Get the attachment ID's origin vector.
IsSequenceFinished bool IsSequenceFinished() Ask whether the main sequence is done playing.
LookupAttachment int LookupAttachment(string attachmentName) Get the named attachment ID.
SetBodygroup void SetBodygroup(int groupIndex, int value) Sets the models bodygroup value by index.


CBaseFlex

Extends CBaseAnimating


Methods

Function Signature Description
GetCurrentScene handle GetCurrentScene() Returns the instance of the oldest active scene entity (if any).
GetSceneByIndex handle GetSceneByIndex(int index) Returns the instance of the scene entity at the specified index.


CBasePlayer

Extends CBaseAnimating


Methods

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


CBaseMultiplayerPlayer

Extends CBasePlayer

Script handle class for the CS:GO players. No additional methods.


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.png Note: 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 )
	}
}


CSceneEntity

Extends CBaseEntity


Methods

Function Signature Description
AddBroadcastTeamTarget void AddBroadcastTeamTarget(int index) Adds a team (by index) to the broadcast list.
EstimateLength float EstimateLength() Returns length of this scene in seconds.
FindNamedEntity handle FindNamedEntity(string reference) given an entity reference, such as !target, get actual entity from scene object.
IsPaused bool IsPaused() If this scene is currently paused.
IsPlayingBack bool IsPlayingBack() If this scene is currently playing.
LoadSceneFromString bool LoadSceneFromString(string sceneName, string scene) Given a dummy scene name and a vcd string, load the scene.
RemoveBroadcastTeamTarget void RemoveBroadcastTeamTarget(int index) Removes a team (by index) from the broadcast list.


CTriggerCamera

Extends CBaseEntity


Methods

Function Signature Description
GetFov int GetFov() Get cameras current Field Of View setting as integer.
SetFov void SetFov(int fov, float rate) Set cameras current FOV in integer degrees and FOV change rate as float.


Hooks

Function Signature Description
ScriptStartCameraShot void ScriptStartCameraShot(string shotType, handle sceneEntity, handle actor1, handle actor2, float duration) Called from SceneEntity in response to a CChoreoEvent::CAMERA sent from a VCD. To do


CFuncTrackTrain

Extends CBaseEntity


Methods

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


CHostage

Extends CBaseEntity


Methods

Function Signature Description
IsBeingCarried bool IsBeingCarried() Get whether the hostage is currently being carried or not.


CGameCoopMissionManager

Extends CBaseEntity


Methods

Function Signature Description
GetWaveNumber int GetWaveNumber() Get the number of waves the players have completed.


CCallChainer

To do


Methods

Function Signature Description
constructor constructor(prefixString, scopeForThis = null)
PostScriptExecute PostScriptExecute()
Call Call(event, ...)


Members

Instance Type Description
chains null
prefix null
scope null


CEntities

Script instance: Entities

An interface to find and iterate over the script handles for the entities in play.

To iterate over a set of entities, pass null to the previous argument in the appropriate method to start an iteration, or reference to a previously found entity to continue a search.

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

local ent = null;
while ( ent = Entities.FindByClassname(ent, "weapon_*") )
{
  // ...
}
for (local ent; ent = Entities.FindByName(ent, "weapon_*"); )
{
  // ...
}
Note.png Note: 
  • The variable name ent is arbitrary.
  • Indeed, we mean "=" and not "==" in the loop conditions! The loops end if ent becomes null. In the {loop body}, ent is a handle of a weapon in the map and definitely not null.
  • Semicolons are optional, except in the header of the for statement.
  • The string parameters of the FindBy... functions support the wildcard star *. In the above example, FindByClassname only returns either a handle of an entity whose classname begins with "weapon_" or it returns null.

Methods

Function Signature Description
CreateByClassname handle CreateByClassname(string classname) Creates an entity by classname with the initial origin (0,0,0).
FindByClassname handle FindByClassname(handle previous, string classname) Find entities by their classname.
FindByClassnameNearest handle FindByClassnameNearest(string class, Vector origin, float radius) Find the entity with the given classname nearest to the specified origin.
FindByClassnameWithin handle FindByClassnameWithin(handle previous, string classname, Vector origin, float radius) Find entities by their classname within a radius around an origin.
FindByModel handle FindByModel(handle previous, string modelname) Find entities by model name.
FindByName handle FindByName(handle previous, string targetname) Find entities by name.
FindByNameNearest handle FindByNameNearest(string targetname, Vector origin, float radius) Find entities by name nearest to a point.
FindByNameWithin handle FindByNameWithin(handle previous, string targetname, Vector origin, float radius) Find entities by name within a radius.
FindByTarget handle FindByTarget(handle previous, string target) Find entities by target keyvalue.
FindInSphere handle FindInSphere(handle previous, Vector origin, float radius) Find entities within a radius around an origin.
First handle First() Returns the first entity, typically worldspawn. Equivalent to Entities.Next(null)
Next handle Next(handle previous) Providing reference to a previously found entity, returns the next one in the list.
IsValid bool IsValid() Whether the handle belongs to a valid entity.

CPlayerVoiceListener

Warning.png Warning: Broken! This class is implemented in CS:GO, but the required PlayerVoiceListener instance is not.


Methods

Function Signature Description
GetPlayerSpeechDuration float GetPlayerSpeechDuration(int playerIndex) Returns the number of seconds the player has been continuously speaking.
IsPlayerSpeaking bool IsPlayerSpeaking(int playerIndex) Returns whether the player specified is speaking.
IsValid bool IsValid() Whether the handle belongs to a valid entity.


CScriptKeyValues

Script handle representation of a models $keyvalues block. Sub keys are instances of the same class.


Methods

Function Signature Description
constructor
FindKey CScriptKeyValues FindKey(string 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.


CSimpleCallChainer

Has the same members as CCallChainer. To do


LateBinder

Late binding: allows a table to refer to parts of itself, it's children, it's owner, and then have the references fixed up after it's fully parsed.

// Usage:
lateBinder <- LateBinder();
lateBinder.Begin( this );

Test1 <-
{   
   Foo=1
}   

Test2 <-
{   
   FooFoo = "I'm foo foo"
   BarBar="@Test1.Foo"
   SubTable = { boo=[bah, "@Test2.FooFoo", "@Test1.Foo"], booboo2={one=bah, two="@Test2.FooFoo", three="@Test1.Foo"} }
   booboo=[bah, "@Test2.FooFoo", "@Test1.Foo"]
   booboo2={one=bah, two="@Test2.FooFoo", three="@Test1.Foo"}
   bah=wha
}   

lateBinder.End();
delete lateBinder;

When End() is called, all of the unresolved symbols in the tables and arrays will be resolved, any left unresolved will become a string prepended with '~', which later code can deal with.


Methods

Function Signature Description
Begin
End
EstablishDelegation
HookRootMetamethod
Log
m_bindNamesStack
m_fixupSet
m_log
m_logIndent
m_targetTable
RemoveDelegation
Resolve
UnhookRootMetamethod


regexp

The built-in Squirrel class for regular expressions.


Methods

Function Signature Description
constructor regexp()
capture [table] capture(str, [start]) Returns an array of tables containing two indexes("begin" and "end")of the first match of the regular expression in the string str. An array entry is created for each captured sub expressions. If no match occurs returns null. The search starts from the index start of the string, if start is omitted the search starts from the beginning of the string.
match bool match(str) Returns a true if the regular expression matches the string str, otherwise returns false.
search table search(str, [start]) Returns a table containing two indexes("begin" and "end") of the first match of the regular expression in the string str, otherwise if no match occurs returns null. The search starts from the index start of the string, if start is omitted the search starts from the beginning of the string.
subexpcount


Vector

Squirrel equivalent of the C++ Vector class.

Three-dimensional vector.

Has overloaded operations for the following: Vector * number Vector + Vector Vector - Vector


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 float Cross(Vector factor) The vector product of two vectors. Returns a vector orthogonal to the input vectors.
Dot float Dot(Vector factor) The scalar product of two vectors.
Length float Length() Length of the vector.
LengthSqr float LengthSqr() Length of the vector squared. Cheaper than the above method.
Length2D float Length2D() Returns the length of the vector on the x-y plane.
Length2DSqr float Length2DSqr() Returns the square of the length of the vector on the x-y plane. Cheaper than the above method.
Norm float Norm() Normalises the vector, returns the vector length.
ToKVString string ToKVString() Returns a string without separations commas.


Members

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


Global functions

Printing and drawing

Function Signature Description
DebugDrawBox void DebugDrawBox(vector origin, vector mins, vector maxs, int r, int g, int b, int alpha, float duration) Draw a debug overlay box in the specified color for the specified duration with two corners being origin + mins and origin + maxs. The alpha is the fill rate (0-255). Set duration to 0 if drawn every tick.
DebugDrawBoxAngles void DebugDrawBoxAngles(Vector origin, Vector mins, Vector maxs, Vector angles, int r, int g, int b, int alpha, float duration) Draw a debug overlay box with angles in the specified color for the specified duration with two corners being origin + mins and origin + maxs + angles. The alpha is the fill rate (0-255). Set duration to 0 if drawn every tick.
DebugDrawLine void DebugDrawLine(Vector start, Vector end, int r, int g, int b, bool noDepthTest, float duration) Draw a debug line between the points start and end in the specified color for the specified duration. Set duration to 0 if drawn every tick.
Msg void Msg(string message) Equivalent to print
print void print(string message) Prints the given message to the developer console.
printl void printl(string message) Prints the given message to the developer console with newline. Equivalent to print(message + "\n")
ScriptPrintMessageCenterAll void ScriptPrintMessageCenterAll(string message) Prints an alert message in the center of the screen to all players.
ScriptPrintMessageCenterAllWithParams void ScriptPrintMessageCenterAllWithParams(string message, string param1, string param2, string param3) Prints an alert message in the center print method to all players. Needs to pass token/message.
ScriptPrintMessageCenterTeam void ScriptPrintMessageCenterTeam(int, string) Prints an alert message in the center of the screen to the specified team.
  • 0 : None
  • 1 : Spectators
  • 2 : Terrorists
  • 3 : Counter-Terrorists
Warning.png Warning: Game crashes for other team numbers!
ScriptPrintMessageChatAll void ScriptPrintMessageChatAll(string message) Prints a message in chat to all players.
ScriptPrintMessageChatTeam void ScriptPrintMessageChatTeam(int team, string message) Prints a message in chat to the specified team.
Warning.png Warning: Game crashes for other team numbers than the above!
ShowMessage void ShowMessage(string) Print a hud message on all clients.
Note.png Note: Uses localized strings as found in /scripts/titles.txt
__DumpScope void __DumpScope(int indentation, table scope) Dumps the contents of scope.


Training Course

Function Signature Description
ScriptGetBestTrainingCourseTime int ScriptGetBestTrainingCourseTime() Gets the player's best time for completing the timed course.
ScriptGetPlayerCompletedTraining bool ScriptGetPlayerCompletedTraining() Returns true if the player has completed the initial portion of the training map.
ScriptGetValveTrainingCourseTime int ScriptGetValveTrainingCourseTime() Gets Valve's best time for completing the timed course.
ScriptHighlightAmmoCounter void ScriptHighlightAmmoCounter() Sends an event that is just used by the instructor system to show a hint highlighting the ammo counter.
ScriptSetBestTrainingCourseTime void ScriptSetBestTrainingCourseTime(int time) Sets the player's best time for completing the timed course.
ScriptSetMiniScoreHidden void ScriptSetMiniScoreHidden(bool hide) Toggles the visibility of the miniscoreboard hud element.
ScriptSetPlayerCompletedTraining void ScriptSetPlayerCompletedTraining(bool completed) Sets whether the player has completed the initial portion of the training map.
ScriptSetRadarHidden void ScriptSetRadarHidden(bool hide) Toggles the visibility of the radar hud element.
ScriptShowExitDoorMsg void ScriptShowExitDoorMsg() Shows a message box in trainign when the player exits through the exit door
ScriptShowFinishMsgBox void ScriptShowFinishMsgBox() Shows a message box to let players know what to do next after finishing the training course.
ScriptTrainingGivePlayerAmmo void ScriptTrainingGivePlayerAmmo() Refills ammo to max for all weapons the player has (only works in training).


Co-op Strike

Function Signature Description
ScriptCoopCollectBonusCoin void ScriptCoopCollectBonusCoin() Marks one of the bonus coins as collected.
ScriptCoopGiveC4sToCTs void ScriptCoopGiveC4sToCTs(int) Will give the number of specified C4s to all alive CT players.
ScriptCoopMissionGetMissionNumber int ScriptCoopMissionGetMissionNumber() Gets the mission number for the current map - maps can have multiple missions on them.
ScriptCoopMissionRespawnDeadPlayers void ScriptCoopMissionRespawnDeadPlayers() Respawns players only.
ScriptCoopMissionSetDeadPlayerRespawnEnabled void ScriptCoopMissionSetDeadPlayerRespawnEnabled(bool) Controls whether player respawns can happen.
ScriptCoopMissionSetNextRespawnIn void ScriptCoopMissionSetNextRespawnIn(float, bool) Set the next respawn wave to happen in this many seconds.
ScriptCoopMissionSpawnFirstEnemies void ScriptCoopMissionSpawnFirstEnemies(int) Spawns the first wave of enemies in coop.
ScriptCoopMissionSpawnNextWave void ScriptCoopMissionSpawnNextWave(int) Tells the next wave of enemies to spawn in coop. Also respawns player.
ScriptCoopResetRoundStartTime void ScriptCoopResetRoundStartTime() Resets the round time and starts the mission.
ScriptCoopSetBotQuotaAndRefreshSpawns void ScriptCoopSetBotQuotaAndRefreshSpawns(int) Sets the bot quota considering the # of players connected and refreshes the spawns.
ScriptCoopExtendRoundDurationTime void ScriptCoopExtendRoundDurationTime(float) Extends the round time after checkpoint during the mission.
ScriptCoopToggleEntityOutlineHighlights void ScriptCoopToggleEntityOutlineHighlights(bool) Highlights all dropped weapons for players, or removes all highlights.
ScriptMissionResetDangerZones void ScriptMissionResetDangerZones() Resets all danger zone entities.
ScriptMissionCreateAndDetonateDangerZone void ScriptMissionCreateAndDetonateDangerZone(Vector, Vector) Creates and detonates a danger zone at the given location moving towards target location.


Premier Mode

Function Signature Description
ScriptLobbyMapVetoFinished void ScriptLobbyMapVetoFinished(string mapname, bool, bool, string) Switch to the selected map after lobby map veto finished.


Math

The built-in Squirrel math library.

Function Signature Description
abs int abs(float x) Returns the absolute value of x as an integer.
acos float acos(float x) Returns the arccosine of x.
asin float asin(float x) Returns the arcsine of x.
atan float atan(float x) Returns the arctangent of x.
atan2 float atan2(float x, float y) Returns the arctangent of x/y.
ceil float ceil(float x) Returns a float value representing the smallest integer that is greater than or equal to x.
cos float cos(float x) Returns the cosine of x.
exp float exp(float x) Returns the exponential value (e^x) of the float parameter x.
fabs float fabs(float x) Returns the absolute value of x as a float.
floor float floor(float x) Returns a float value representing the largest integer that is less than or equal to x.
log float log(float x) Returns the natural logarithm of x.
log10 float log10(float x) Returns the logarithm base-10 of x.
pow float pow(float x, float y) Returns x raised to the power of y.
rand int rand() Returns a pseudorandom integer in the range 0 to RAND_MAX.
sin float sin(float x) Returns the sine of x.
sqrt float sqrt(float x) Returns the square root of x.
srand void srand(float seed) Sets the starting point for generating a series of pseudorandom integers.
tan float tan(float x) Returns the tangent of x.


Other

Function Signature Description
Assert void Assert(exp, string message = null) Throws an exception if exp equates to false, optionally with message.
CreateProp handle CreateProp(string classname, Vector origin, string model, int animation) Create a prop with the specified class and model. Both prop_physics, prop_dynamic as well as some other entity classes with models work. Does not precache the model.
CreateSceneEntity CSceneEntity CreateSceneEntity(string scene) Create a scene entity to play the specified scene .vcd file.
DispatchParticleEffect void DispatchParticleEffect(string particle, Vector position, Vector orientation) Dispatches a one-off particle system.
DoIncludeScript bool DoIncludeScript(string filename, table scope) Execute the script file "csgo/scripts/vscripts/" + filename in the scope of scope. The extension .nut can be omitted.
IncludeScript bool IncludeScript(string filename, table scope = null) Execute the script file "csgo/scripts/vscripts/" + filename in the scope of scope, this by default. The extension .nut can be omitted.
DoEntFire void DoEntFire(string target, string action, string value, float delay, handle activator, handle caller) Generate an entity I/O event.
EntFire void EntFire(string target, string action, string value = "", float delay = 0.0, handle activator = null) Generate an entity I/O event.
EntFireByHandle void EntFireByHandle(handle target, string action, string value, float delay, handle activator, handle caller) Generate an entity I/O event.
FrameTime float FrameTime() Get the time spent on the server in the last frame.
GetDeveloperLevel int GetDeveloperLevel() Gets the level of the developer mode. Equivalent to developer().
GetMapName string GetMapName() Get the name of the map.
LoopSinglePlayerMaps bool LoopSinglePlayerMaps() Run the single player maps in a continuous loop.
PrintHelp void PrintHelp(string string = "*", bool exact = false) Output help for script functions, optionally with a search string.
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.
RecordAchievementEvent void RecordAchievementEvent(string, int) Records achievement event or progress.
RetrieveNativeSignature void RetrieveNativeSignature(string nativeFunction) To do
ScriptGetGameMode int ScriptGetGameMode() Gets the current game mode.
ScriptGetGameType int ScriptGetGameType() Gets the current game type.
ScriptGetRoundsPlayed int ScriptGetRoundsPlayed() Get the number of rounds that any team has won so far.
Warning.png Warning:  Drawn rounds are not counted, except they were ended using a game_round_end entity.
ScriptIsLocalPlayerUsingController bool ScriptIsLocalPlayerUsingController() Returns whether the player is playing with a controller or not.
ScriptIsWarmupPeriod bool ScriptIsWarmupPeriod() Is it warmup or not.
SendToConsole void SendToConsole(string command) Send a string to the console as a command. The command is executed through the local player.
SendToConsoleServer void SendToConsoleServer(string command) Send a string that gets executed on the server as a ServerCommand.
Time float Time() Get the current server time.
TraceLine float TraceLine(Vector start, Vector end, handle ignore) Given 2 points and an entity to ignore, returns fraction along line that hits world or models.
TraceLinePlayersIncluded float TraceLinePlayersIncluded(Vector start, Vector end, handle ignore) Given 2 points and entity to ignore, returns fraction along line that hits world, models, players and NPCs.
Note.png Note:  Blocking entities are not limited to player, almost everything will block it.
UniqueString string UniqueString(string suffix = "") 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. Equivalent to DoUniqueString(suffix).
DoUniqueString string DoUniqueString(string suffix) Generate a string guaranteed to be unique across the life of the script VM, with an optional root string. Useful for adding data to tables when not sure what keys are already in use in that table.
__ReplaceClosures void __ReplaceClosures(function script, table scope) Internal function called in script_reload_ server commands.


See also