WIP Work in Progress!!!! Para mais detalhes acompanhe os commmits na branch dev ou PRs ativos!!
Overlay para Dota 2 desenvolvido com Tauri (Rust + WebView2) que exibe dados em tempo real via GSI e APIs públicas.
- Dados em tempo real (GSI): HP, Mana, Level, Gold, KDA, Habilidades, Itens
- Timer de Roshan/Rune: Contagem regressiva para respawn
- Dados de heróis: Winrate, builds populares via OpenDota
- Toggle via atalho: Insert para mostrar/esconder overlay (configurável)
-
Rust - Baixe e instale em https://rustup.rs/
-
Execute
rustup-init.exee siga as instruções -
Reinicie o terminal após a instalação
-
Instale o Tauri CLI:
cargo install tauri-cli --version "^2"
-
-
Node.js - Baixe a versão LTS em https://nodejs.org/
- Versão 18 ou superior
-
WebView2 - Geralmente já vem instalado no Windows 10/11
- Se não tiver, baixe em https://developer.microsoft.com/en-us/microsoft-edge/webview2/
# Clonar o repositório
git clone <url-do-repositorio>
cd dota-overlay
# Instalar dependências do Node.js
npm install-
Criar arquivo de configuração GSI
Copie o arquivo
gamestate_integration_overlay.cfg(na raiz do projeto) para:C:\Program Files (x86)\Steam\steamapps\common\dota 2 beta\dota\cfg\Nota: O caminho pode variar dependendo de onde o Steam está instalado.
-
Adicionar opção de inicialização
-
Abra o Steam
-
Clique com botão direito em Dota 2
-
Vá em Propriedades
-
Em Geral, em Opções de Inicialização, adicione:
-gamestateintegration
-
# No terminal, na pasta do projeto:
npm run devO overlay será iniciado e ficará invisível até você entrar numa partida.
- Inicie o Dota 2
- Entre numa partida (ranked, normal ou turbo)
- O overlay aparecerá automaticamente no canto superior esquerdo
- Pressione Insert para mostrar/esconder o overlay
- Para mudar o atalho: clique no ícone ⚙ no overlay
Para gerar o executável:
npm run buildO executável será gerado em:
src-tauri\target\release\dota-overlay.exe
| Comando | Descrição |
|---|---|
npm install |
Instalar dependências |
npm run dev |
Iniciar em modo desenvolvimento (Vite + Tauri) |
npm run dev:vite |
Iniciar apenas o dev server Vite |
npm run build |
Gerar executável para produção |
npm run build:vite |
Build apenas do frontend com Vite |
npm run lint |
Verificar erros de código |
npm run lint:fix |
Corrigir erros automaticamente |
npm test |
Rodar todos os testes JS (vitest) |
cargo test |
Rodar todos os testes Rust |
Regra: Toda nova funcionalidade ou correção de bug deve incluir testes que cubram a alteração. Execute
npm testenpm run lintantes de commitar. Consultedoc/05-testes.mdpara mais detalhes.
dota-overlay/
├── src-tauri/ # Backend Rust
│ ├── src/
│ │ ├── main.rs # Entry point
│ │ ├── lib.rs # Tipos compartilhados
│ │ ├── state.rs # Estado da aplicação
│ │ ├── gsi/ # Servidor GSI
│ │ ├── api/ # OpenDota + STRATZ
│ │ └── timers/ # Roshan + Runes
│ ├── Cargo.toml
│ └── tauri.conf.json
├── src/ # Frontend (HTML/CSS/JS)
│ ├── index.html
│ ├── main.js
│ └── styles/overlay.css
├── vite.config.js # Configuração do Vite (dev server)
├── doc/ # Documentação
├── gamestate_integration_overlay.cfg # Config para Dota 2
├── .eslintrc.json # Configuração ESLint
├── package.json
└── README.md
O PowerShell bloqueia scripts por padrão. Execute um dos comandos abaixo:
Opção 1 (recomendado) - Liberar para o usuário atual:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSignedOpção 2 - Usar .cmd ao invés de .ps1:
npm.cmd install
npm.cmd run dev- Verifique se o arquivo
gamestate_integration_overlay.cfgestá na pasta correta - Verifique se
-gamestateintegrationestá nas opções de inicialização - Reinicie o Dota 2 após alterar as configurações
O Tauri CLI não está instalado. Execute:
cargo install tauri-cli --version "^2"Se você está rodando o projeto a partir do WSL (Windows Subsystem for Linux):
-
Abra o PowerShell do Windows (não o terminal WSL)
-
Navegue até a pasta do projeto no sistema de arquivos do Windows:
cd C:\Users\SeuUsuario\dota-overlay -
Instale o Tauri CLI (se ainda não instalou):
cargo install tauri-cli --version "^2"
-
Execute:
npm run dev
O Tauri precisa de um arquivo .ico para gerar o executável Windows. Gere a partir do icon.png:
# Com ImageMagick instalado:
convert src-tauri/icons/icon.png -define icon:auto-resize=256,128,96,64,48,32,16 src-tauri/icons/icon.icoA configuração do plugin global-shortcut no tauri.conf.json mudou no Tauri v2. O atalho é registrado programaticamente no código Rust, não no JSON. Se você adicionou configuração de plugins no JSON, remova-a.
- Execute
rustup updatepara atualizar o Rust - Verifique se as dependências do sistema estão instaladas
- Execute o terminal como administrador
Consulte a pasta doc/ para detalhes sobre:
- Protocolo GSI
- APIs públicas (OpenDota, STRATZ)
- Stack tecnológica
- Arquitetura do sistema
MIT