Skip to content

Repository files navigation

Dota 2 Overlay

> [!WARNING]

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.

Funcionalidades

  • 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)

Como Rodar no Windows

Passo 1: Instalar Pré-requisitos

  1. Rust - Baixe e instale em https://rustup.rs/

    • Execute rustup-init.exe e siga as instruções

    • Reinicie o terminal após a instalação

    • Instale o Tauri CLI:

      cargo install tauri-cli --version "^2"
  2. Node.js - Baixe a versão LTS em https://nodejs.org/

    • Versão 18 ou superior
  3. WebView2 - Geralmente já vem instalado no Windows 10/11

Passo 2: Clonar e Instalar o Projeto

# Clonar o repositório
git clone <url-do-repositorio>
cd dota-overlay

# Instalar dependências do Node.js
npm install

Passo 3: Configurar o Dota 2

  1. 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.

  2. 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
      

Passo 4: Executar o Overlay

# No terminal, na pasta do projeto:
npm run dev

O overlay será iniciado e ficará invisível até você entrar numa partida.

Passo 5: Usar o Overlay

  1. Inicie o Dota 2
  2. Entre numa partida (ranked, normal ou turbo)
  3. O overlay aparecerá automaticamente no canto superior esquerdo
  4. Pressione Insert para mostrar/esconder o overlay
  5. Para mudar o atalho: clique no ícone ⚙ no overlay

Build para Produção

Para gerar o executável:

npm run build

O executável será gerado em:

src-tauri\target\release\dota-overlay.exe

Comandos Disponíveis

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 test e npm run lint antes de commitar. Consulte doc/05-testes.md para mais detalhes.


Estrutura do Projeto

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

Solução de Problemas

Erro "running scripts is disabled" no PowerShell

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 RemoteSigned

Opção 2 - Usar .cmd ao invés de .ps1:

npm.cmd install
npm.cmd run dev

O overlay não aparece

  • Verifique se o arquivo gamestate_integration_overlay.cfg está na pasta correta
  • Verifique se -gamestateintegration está nas opções de inicialização
  • Reinicie o Dota 2 após alterar as configurações

Erro "no such command: tauri"

O Tauri CLI não está instalado. Execute:

cargo install tauri-cli --version "^2"

Erro "no such command: tauri" no WSL

Se você está rodando o projeto a partir do WSL (Windows Subsystem for Linux):

  1. Abra o PowerShell do Windows (não o terminal WSL)

  2. Navegue até a pasta do projeto no sistema de arquivos do Windows:

    cd C:\Users\SeuUsuario\dota-overlay
  3. Instale o Tauri CLI (se ainda não instalou):

    cargo install tauri-cli --version "^2"
  4. Execute:

    npm run dev

Erro "icons/icon.ico not found"

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.ico

Erro "PluginInitialization" ou "invalid type: map, expected unit"

A 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.

Erro ao compilar (Rust)

  • Execute rustup update para atualizar o Rust
  • Verifique se as dependências do sistema estão instaladas

Erro de permissão

  • Execute o terminal como administrador

Documentação

Consulte a pasta doc/ para detalhes sobre:

  • Protocolo GSI
  • APIs públicas (OpenDota, STRATZ)
  • Stack tecnológica
  • Arquitetura do sistema

Licença

MIT

About

Dota Overlay Free

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages