Difference between revisions of "Dota 2 Workshop Tools/Scripting"
Deprecated (talk | contribs) (Added top icons) |
|||
(52 intermediate revisions by 26 users not shown) | |||
Line 1: | Line 1: | ||
− | Scripting in | + | {{otherlang2 |
+ | |zh-cn = Dota_2_Workshop_Tools:zh-cn/Scripting:zh-cn | ||
+ | |ru= Dota 2 Workshop Tools:ru/Scripting:ru | ||
+ | }} | ||
+ | {{Dota 2Tools topicons}} | ||
+ | Scripting in Dota 2 is handled by the [[VScript]] virtual machine using the [http://www.lua.org Lua] programming language. Lua will be launched at run time when Dota 2 loads your add-on and can manipulate most facets of the game. Scripts can control the events that happen in game modes, game rules, abilities, hero interactions, neutrals , AI, and many more. | ||
== Getting Started == | == Getting Started == | ||
+ | The documentation presented here assumes basic knowledge of Lua. If you're new to programming and Lua it's worth spending some time at the [http://www.lua.org/ official Lua website] learning some of the basic concepts. Additional resources are available at the bottom of the page for new users. | ||
+ | |||
* [[Dota 2 Workshop Tools/Scripting/Getting Started|Getting Started]] | * [[Dota 2 Workshop Tools/Scripting/Getting Started|Getting Started]] | ||
+ | * [[Dota 2 Workshop Tools/Scripting/Debugging Lua scripts|Debugging Lua scripts]] | ||
== Scripting Abilities == | == Scripting Abilities == | ||
* [[Dota 2 Workshop Tools/Scripting/Abilities Data Driven|Data Driven Abilities]] | * [[Dota 2 Workshop Tools/Scripting/Abilities Data Driven|Data Driven Abilities]] | ||
− | * [[Dota 2 Workshop Tools/Scripting/Abilities | + | * [[Dota 2 Workshop Tools/Scripting/Abilities Data Driven Examples|Data Driven Ability Examples]] |
− | * [[ | + | * [[Dota_2_Workshop_Tools/Lua_Abilities_and_Modifiers|Lua Abilities and Modifiers]] |
== Common Techniques == | == Common Techniques == | ||
− | * [[Dota 2 Workshop Tools/Scripting/ | + | * [[Entity_Scripts|Entity Scripts]] |
+ | * [[Dota 2 Workshop Tools/Scripting/ThinkerFunctions|Thinker Functions]] | ||
* [[Dota 2 Workshop Tools/Scripting/Console Commands|Console Commands]] | * [[Dota 2 Workshop Tools/Scripting/Console Commands|Console Commands]] | ||
* [[Dota 2 Workshop Tools/Scripting/Dedicated VConsole Log Viewer|Dedicated VConsole Log Viewer]] | * [[Dota 2 Workshop Tools/Scripting/Dedicated VConsole Log Viewer|Dedicated VConsole Log Viewer]] | ||
− | * [[ | + | * [[Dota_2_Workshop_Tools/Scripting/Listening_to_game_events|Listening to Game Events]] |
+ | * [[Dota_2_Workshop_Tools/Script_Filters|Script Filters]] | ||
+ | * [[Dota_2_Workshop_Tools/Custom_Game_Events|Custom Game Events]] | ||
+ | * [[Dota_2_Workshop_Tools/Custom_Nettables|Custom Nettables]] | ||
== Reference == | == Reference == | ||
− | * [[Dota 2 Workshop Tools/Scripting/API| | + | * [[Dota 2 Workshop Tools/Scripting/API|Scripting API]] |
− | * [[ | + | * [[Source_2_Animation_System_VScript_API|Animation System API]] |
− | * [[Dota 2 Workshop Tools/Scripting/Built-In Engine Events|Built-In Engine Events]] | + | * [[Dota 2 Workshop Tools/Scripting/Built-In Engine Events|Built-In Engine Events (warning: many broken)]] |
* [[Dota 2 Workshop Tools/Scripting/Built-In Ability Names|Built-In Ability Names]] | * [[Dota 2 Workshop Tools/Scripting/Built-In Ability Names|Built-In Ability Names]] | ||
* [[Dota 2 Workshop Tools/Scripting/Built-In Modifier Names|Built-In Modifier Names]] | * [[Dota 2 Workshop Tools/Scripting/Built-In Modifier Names|Built-In Modifier Names]] | ||
+ | * [[Dota 2 Workshop Tools/Scripting/Built-In Item Names|Built-In Item Names]] | ||
+ | * [[Dota 2 Workshop Tools/Scripting/Heroes_internal_names|Heroes Internal Names]] | ||
+ | * [[Dota 2 Workshop Tools/Scripting/Built-In Unit Names|Built-In Unit Names]] | ||
+ | * [[Dota 2 Workshop Tools/Scripting/BoundsHullName Size Reference|BoundsHullName Size Reference]] | ||
+ | |||
+ | == Examples == | ||
+ | * [[Dota 2 Workshop Tools/Scripting/Simple Trigger that calls Lua| Simple trigger that calls Lua]] | ||
+ | * [[Dota 2 Workshop Tools/Scripting/Abilities Scripted Example| Data driven item that drops upon death]] | ||
+ | * [[Dota 2 Workshop Tools/Scripting/Data Driven Motion Controller Example | Motion Controller Example]] | ||
+ | * [[Dota 2 Workshop Tools/Scripting/Creating a Tower Example | Creating a Tower Example]] | ||
+ | * [[Dota 2 Workshop Tools/Scripting/Detecting If Player Clicked Inside An Area | Detecting If Player Clicked Inside A Given Area When Using Items or Spells]] | ||
+ | * [[Dota 2 Workshop Tools/Scripting/Using Bitfields To Adjust Stat Value Bonuses | Using Bitfields To Adjust Stat Value Bonuses]] | ||
+ | * [[Dota 2 Workshop Tools/Scripting/Using CreateHTTPRequest | Using CreateHTTPRequest]] | ||
== Lua Resources == | == Lua Resources == | ||
* [http://www.lua.org/ Official Lua Website] | * [http://www.lua.org/ Official Lua Website] | ||
+ | * [http://www.lua.org/pil/ Programming in Lua] - Good resource for learning Lua. If you're new to Lua or programming this is a good reference point to start from. | ||
+ | * [http://www.lua.org/pil/contents.html Programming In Lua - Online] - First edition of the above book is available online for free. | ||
+ | * [https://github.com/bhargavrpatel/Dota-2-Sublime-Packages Sublime Text 2/3 Snippets for all functions] | ||
+ | == See Also == | ||
+ | [[VScript]] | ||
{{shortpagetitle}} | {{shortpagetitle}} | ||
[[Category:Dota 2 Workshop Tools]] | [[Category:Dota 2 Workshop Tools]] | ||
+ | [[Category:Scripting]] |
Latest revision as of 16:50, 15 May 2020
Scripting in Dota 2 is handled by the VScript virtual machine using the Lua programming language. Lua will be launched at run time when Dota 2 loads your add-on and can manipulate most facets of the game. Scripts can control the events that happen in game modes, game rules, abilities, hero interactions, neutrals , AI, and many more.
Contents
Getting Started
The documentation presented here assumes basic knowledge of Lua. If you're new to programming and Lua it's worth spending some time at the official Lua website learning some of the basic concepts. Additional resources are available at the bottom of the page for new users.
Scripting Abilities
Common Techniques
- Entity Scripts
- Thinker Functions
- Console Commands
- Dedicated VConsole Log Viewer
- Listening to Game Events
- Script Filters
- Custom Game Events
- Custom Nettables
Reference
- Scripting API
- Animation System API
- Built-In Engine Events (warning: many broken)
- Built-In Ability Names
- Built-In Modifier Names
- Built-In Item Names
- Heroes Internal Names
- Built-In Unit Names
- BoundsHullName Size Reference
Examples
- Simple trigger that calls Lua
- Data driven item that drops upon death
- Motion Controller Example
- Creating a Tower Example
- Detecting If Player Clicked Inside A Given Area When Using Items or Spells
- Using Bitfields To Adjust Stat Value Bonuses
- Using CreateHTTPRequest
Lua Resources
- Official Lua Website
- Programming in Lua - Good resource for learning Lua. If you're new to Lua or programming this is a good reference point to start from.
- Programming In Lua - Online - First edition of the above book is available online for free.
- Sublime Text 2/3 Snippets for all functions