All Projects → ModDota → TypeScriptAddonTemplate

ModDota / TypeScriptAddonTemplate

Licence: MIT license
Dota 2 addon template with TypeScript Panorama and VScripts.

Programming Languages

typescript
32286 projects
lua
6591 projects
kvlang
13 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects

ModDota template

A template for Dota 2 Custom Games built with modern technologies.

This tutorial explains how to set up and use the template.

The template includes:

Getting Started

  1. Clone this repository or, if you're planning to have a repository for your custom game on GitHub, create a new repository from this template and clone it instead.
  2. Open the directory of your custom game and change name field in package.json file to the name of your addon name.
  3. Open terminal in that directory and run npm install to install dependencies. You also should run npm update once in a while to get tool updates.

After that you can press Ctrl+Shift+B in VSCode or run npm run dev command in terminal to compile your code and watch for changes.

Contents:

  • [src/common]: TypeScript .d.ts type declaration files with types that can be shared between Panorama and VScripts
  • [src/vscripts]: TypeScript code for Dota addon (Lua) vscripts. Compiles lua to game/scripts/vscripts.
  • [src/panorama]: TypeScript code for panorama UI. Compiles js to content/panorama/scripts/custom_game

--

  • [game/*]: Dota game directory containing files such as npc kv files and compiled lua scripts.
  • [content/*]: Dota content directory containing panorama sources other than scripts (xml, css, compiled js)

--

  • [scripts/*]: Repository installation scripts

Continuous Integration

This template includes a GitHub Actions workflow that builds your custom game on every commit and fails when there are type errors.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].