VScript: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
(Typo)
 
(93 intermediate revisions by 30 users not shown)
Line 1: Line 1:
{{LanguageBar}}
__NOTOC__
'''VScript''', introduced since {{l4d2|4}} and later backported to {{tf2|4}} (and [[TF2 branch|other games on its branch]]), is a virtual machine for scripting that acts as an abstract binding layer between the {{source|4}} and {{source2|4}} engine and external scripts. According to the {{astools|4.1}}, the following scripting languages are supported or could be in the near future:


* [[Squirrel]]
* [[Wikipedia:Lua (programming language)|Lua]]
* [[Wikipedia:GameMonkey Script|Gamemonkey]]
* [[Wikipedia:Python (programming language)|Python]]
== Implementations ==
{|
|- style="vertical-align:top"
| style="padding-right:2em" |
===[[Squirrel]] {{sq}}===
{{srcsdk13mp|4|nt=short|addtext={{nbsp}}(2025)}} ({{tf2}} {{css}} {{dods}} {{hl2dm}} {{hldms}}) / {{tf2branch|3}}
:All of these games runs on same branch as {{tf2}}. Any non-game specific functionality is inherited, but no additional game-specific functionality is added.
:[[Source 2013 MP/Scripting/VScript Examples|Script Examples]]
:[[Source 2013 MP/Scripting/Game Events|Game Events]]
:{{tf2|4}}
::[[Team Fortress 2/Scripting/Script Functions|List of Script Functions]]
::[[Team Fortress 2/Scripting/VScript Examples|Script Examples]]
::[[Team Fortress 2/Scripting/Game Events|Game Events]]


{{otherlang2
:{{css|4}}
|noborder=true
::[[Counter-Strike: Source/Scripting/VScript Examples|Script Examples]]
|zh-cn=VScript:zh-cn
::[[Counter-Strike: Source/Scripting/Game Events|Game Events]]
|ru=VScript:ru
}}
'''VScript''' is a virtual machine for scripting that acts as an abstract binding layer between the Source engine and external scripts. According to the [[Alien Swarm SDK]], the following scripting languages are, or could be supported in the near future:


* [[Squirrel]]
:{{dods|4}}
* [http://en.wikipedia.org/wiki/Lua_%28programming_language%29 Lua]
::[[Day of Defeat: Source/Scripting/Game Events|Game Events]]
* [http://en.wikipedia.org/wiki/GameMonkey_Script Gamemonkey]
* [http://en.wikipedia.org/wiki/Python_%28programming_language%29 Python]


Script files are placed and executed in <code>scripts/vscripts/</code> inside the game folder.
:{{hl2dm|4}}
::[[Half-Life 2: Deathmatch/Scripting/Game Events|Game Events]]


==Implementations==
:{{hldms|4}}
::[[Half-Life Deathmatch: Source/Scripting/Game Events|Game Events]]


===[[Squirrel]]===
{{l4d2|4}}
;{{game link|Left 4 Dead 2}}
:[[L4D2 Vscripts|Scripting]]
:[[L4D2 Vscripts|Scripting]]
:[[L4D2_Director_Scripts|Director Scripts]]
:[[L4D2_Director_Scripts|Director Scripts]]
:[[L4D2 Vscript Examples|Script Examples]]
:[[L4D2 Vscript Examples|Script Examples]]
:[[List of L4D2 Script Functions|List of Script Functions]]
:[[Left 4 Dead 2/Script Functions|List of Script Functions]]


;{{game link|Nuclear Dawn}}
{{as|4}}
:[[List of ND Script Functions|List of Script Functions]]
:[[Alien Swarm/Scripting/Script Functions|List of Script Functions]]
;{{game link|Alien Swarm}}


;{{game link|Portal 2}}
{{portal2|4}}
:[[List of Portal 2 Script Functions|List of Script Functions]]
:[[List of Portal 2 Script Functions|List of Script Functions]]


;{{game link|Counter-Strike: Global Offensive}}
{{Strata|4}}
:[[List_of_Counter-Strike:_Global_Offensive_Script_Functions|List of Script Functions]]
:{{p2ce|4}}
:[[CSGO_Vscript_Examples|Script Examples]]
::VScript documentation is covered on its wiki: [https://wiki.stratasource.org/vscript/reference/Globals VScript API Reference]


;{{game link|Contagion}}
{{sfm|4}}
:{{tf2}} Only exists on the SFM build of TF2. No TF2 or SFM-specific API. Unused.
 
{{csgo|4}}
:[[List of CS:GO Script Functions|List of Script Functions]]
:[[Listening to game events in CS:GO|Listening to game events]]
:[[CS:GO VScript Examples|VScript Examples]]
 
{{con|4}}
:[[List of Contagion Script Functions|List of Script Functions]]
:[[List of Contagion Script Functions|List of Script Functions]]


;{{game link|Alien Swarm: Reactive Drop}}
{{nd|4}}
:[[List of ND Script Functions|List of Script Functions]]
 
{{titanfall|4}}
:[[Titanfall/Scripting/Server Script Functions|List of Server Script Functions]]
:[[Titanfall/Scripting/Client Script Functions|List of Client Script Functions]]
:[[Titanfall/Scripting/UI Script Functions|List of UI Script Functions]]
 
{{Titanfall2|4}}
:[[Titanfall 2/Scripting/Server Script Functions|List of Server Script Functions]]
 
{{apex|4}}
 
{{asrd|4}}
:[[List of Reactive Drop Script Functions|List of Script Functions]]
:[[List of Reactive Drop Script Functions|List of Script Functions]]


;{{game link|Titanfall}}
{{mapbase|4}} (Custom implementation)
:[[Mapbase/Scripting|Scripting]]
:[[Mapbase/Scripting/Script_Functions|Script Functions]]
{{jbep3|4}}
:[[List of Jabroni Brawl: Episode 3 Script Functions|List of Script Functions]]
{{ddd|4}}
:[[Dino D-Day/Scripting/Script Functions|List of Script Functions]]
{{Rl|4}}
:[[Revelations 2012/Scripting/Script Functions|List of Script Functions]]
|style=padding-right:2em|


===Lua===
===Lua {{lua}}===
;{{game link|Portal 2}} (Client/UI only)
<!-- GMOD uses GLua which is not the same as VScript, don't add it here. -->
 
{{dota2|4}}
;{{game link|Dota 2}}
:[[Dota_2_Workshop_Tools/Scripting|Scripting]]
:[[Dota_2_Workshop_Tools/Scripting|Scripting]]
:[[Dota_2_Workshop_Tools/Scripting/API|Scripting API]]
:[[Dota_2_Workshop_Tools/Scripting/API|Scripting API]]


;[[Destinations]]
{{svrh|4}}
:[[Destinations/Scripting|Scripting]]
:[[SteamVR/Environments/Scripting|Scripting]]
:[[Destinations/Scripting/API|Scripting API]]
:[[SteamVR/Environments/Scripting/API|Scripting API]]
:[[SteamVR/Environments/Scripting/Custom Tool Creation|Scripted Tool Creation]]
:[[SteamVR/Environments/Scripting/Flashlight Tool Tutorial|Scripted Flashlight Tool Tutorial]]


;General Source 2
{{hla|4}}
:[[Half-Life:_Alyx_Workshop_Tools/Lua_Scripting|Scripting]]
:[[Half-Life:_Alyx_Workshop_Tools/Scripting_API|Scripting API]]
 
;General {{source2|4}}
:[[Source 2 Animation System VScript API]]
:[[Source 2 Animation System VScript API]]
{{jbep3|4}}
:[[List of Jabroni Brawl: Episode 3 Script Functions|List of Script Functions]]
|
===Python {{python}}===
;{{Tf2|4}}


===Python===
;{{sfm|4}}
;{{game link|Source Filmmaker}}
:[[SFM/Scripting_with_Python|Scripting/Rigging]]
:[[SFM/Scripting_with_Python|Scripting/Rigging]]
 
|}
==Scripting Fundamentals==
''Main article [[Vscript_Fundamentals| Vscript Fundamentals]]''
 


==See also==
==See also==
*[[Entity_Scripts|Entity Scripts]]
* [[VScript Fundamentals]]
*[[Logic_script|logic_script]]
*[[List of Script Libraries]]
*[[Entity Scripts]]
*{{ent|logic_script}} (entity)
*{{ent|script}}, {{ent|script_execute}} (console command)


[[Category:VScript]]
[[Category:Technical]]
[[Category:Technical]]
[[Category:Scripting]]
[[Category:Scripting]]

Latest revision as of 01:35, 8 August 2025

English (en)Español (es)Русский (ru)中文 (zh)Translate (Translate)

VScript, introduced since Left 4 Dead 2 Left 4 Dead 2 and later backported to Team Fortress 2 Team Fortress 2 (and other games on its branch), is a virtual machine for scripting that acts as an abstract binding layer between the Source Source and Source 2 Source 2 engine and external scripts. According to the Alien Swarm - SDK Alien Swarm - SDK, the following scripting languages are supported or could be in the near future:

Implementations

Squirrel Squirrel

Source SDK Base 2013 - Multiplayer SDK Base 2013 - MP (2025) (Team Fortress 2 Counter-Strike: Source Day of Defeat: Source Half-Life 2: Deathmatch Half-Life Deathmatch: Source) / Team Fortress 2 branch

All of these games runs on same branch as Team Fortress 2. Any non-game specific functionality is inherited, but no additional game-specific functionality is added.
Script Examples
Game Events
Team Fortress 2 Team Fortress 2
List of Script Functions
Script Examples
Game Events
Counter-Strike: Source Counter-Strike: Source
Script Examples
Game Events
Day of Defeat: Source Day of Defeat: Source
Game Events
Half-Life 2: Deathmatch Half-Life 2: Deathmatch
Game Events
Half-Life Deathmatch: Source Half-Life Deathmatch: Source
Game Events

Left 4 Dead 2 Left 4 Dead 2

Scripting
Director Scripts
Script Examples
List of Script Functions

Alien Swarm Alien Swarm

List of Script Functions

Portal 2 Portal 2

List of Script Functions

Strata Source Strata Source

Portal 2: Community Edition Portal 2: Community Edition
VScript documentation is covered on its wiki: VScript API Reference

Source Filmmaker Source Filmmaker

Team Fortress 2 Only exists on the SFM build of TF2. No TF2 or SFM-specific API. Unused.

Counter-Strike: Global Offensive Counter-Strike: Global Offensive

List of Script Functions
Listening to game events
VScript Examples

Contagion Contagion

List of Script Functions

Nuclear Dawn Nuclear Dawn

List of Script Functions

Titanfall Titanfall

List of Server Script Functions
List of Client Script Functions
List of UI Script Functions

Titanfall 2 Titanfall 2

List of Server Script Functions

Apex Legends Apex Legends

Alien Swarm: Reactive Drop Alien Swarm: Reactive Drop

List of Script Functions

Mapbase Mapbase (Custom implementation)

Scripting
Script Functions

Jabroni Brawl: Episode 3 Jabroni Brawl: Episode 3

List of Script Functions

Dino D-Day Dino D-Day

List of Script Functions

Revelations 2012 Revelations 2012

List of Script Functions

Lua Lua

Dota 2 Dota 2

Scripting
Scripting API

SteamVR Home SteamVR Home

Scripting
Scripting API
Scripted Tool Creation
Scripted Flashlight Tool Tutorial

Half-Life: Alyx Half-Life: Alyx

Scripting
Scripting API
General Source 2 Source 2
Source 2 Animation System VScript API

Jabroni Brawl: Episode 3 Jabroni Brawl: Episode 3

List of Script Functions

Python Python

Team Fortress 2 Team Fortress 2
Source Filmmaker Source Filmmaker
Scripting/Rigging

See also