In-game HUD for OMSI 2: a live map and a new pause menu, running as an OmsiLaunch runtime module.
openHUD is built and tested offline: the module runs against a fake of the OmsiLaunch bridge (catalog, content, input and the native draw layer) and the draw layer against a software and a Direct3D 9 backend. It has not been run in OMSI yet. Nothing that depends on the real game (the radar over a live map, the pause menu take-over, the input capture, the Direct3D hooks) is proven; those wait for their runtime rounds, which are run separately and only by the owner.
What the module needs from OmsiLaunch (bridge protocol 3): the catalog operations it lists in module.template.json, bridge.input, bridge.tick and bridge.hooks.d3d9. Replacing the pause menu also needs the optional capability ui.pause-menu.replace; without it OMSI's own menu stays and the radar still works.
See docs/architecture.md for how the parts fit together and docs/scene-protocol.md for the contract between the managed and the native side.
Needs the .NET SDK, Visual Studio with the C++ build tools (toolset v145, x86) and a checkout of OmsiLaunch.
powershell -NoProfile -ExecutionPolicy Bypass -File tools/Build-Module.ps1 -OmsiLaunchRoot <path to OmsiLaunch>
builds the draw layer (x86), its native tests, the managed module and the test gates, and assembles the module in artifacts\modules\openhud with every component pinned by its SHA-256. Nothing is copied into an OMSI installation.
Copyright © 2026 LMonteiro - github.com/lmonteirotech and OmsiModsBR Team - github.com/OmsiModsBR
openHUD is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License, version 3, as published by the Free Software Foundation. See LICENSE.
Complete documentation, with examples, in English and Brazilian Portuguese: English index · Índice em português.
- Getting started: Overview · Installation · First session
- Concepts: The three parts and why · The scene protocol in plain words · The radar · The pause menu · Per-map packages · Fonts, symbols and licensing · Internationalization · Performance and the tick/draw split · Safety
- Guides: Enabling the module · Radar and interface settings · Using it with session profiles · Making a pause-menu package · Using a realmap package · Troubleshooting · Coexisting with other modules and plugins · Uninstalling
- Reference: Settings · Operations and events · Pause-menu package format · Realmap package · UI language keys · Controls · Compatibility and capabilities · Errors and degradation · Known limitations · FAQ · Scene protocol · Architecture
- Status: Test coverage · Validation status · Changelog
- Primeiros passos: Visão geral · Instalação · Primeira sessão
- Conceitos: As três partes e por quê · O protocolo de cena em palavras simples · O radar · O menu de pausa · Pacotes por mapa · Fontes, símbolos e licenciamento · Internacionalização · Desempenho e a divisão tick/desenho · Segurança
- Guias: Ativando o módulo · Configurações do radar e da interface · Usando com perfis de sessão · Criando um pacote de menu de pausa · Usando um pacote realmap · Solução de problemas · Convivendo com outros módulos e plugins · Desinstalação
- Referência: Configurações · Operações e eventos · Formato do pacote de menu de pausa · Pacote realmap · Chaves de idioma da interface · Controles · Compatibilidade e capacidades · Erros e degradação · Limitações conhecidas · FAQ · Protocolo de cena (em inglês) · Arquitetura
- Status: Cobertura de testes · Status de validação · Changelog
See CONTRIBUTING.md for building, testing, the documentation rules and the commit policy, and SECURITY.md to report a vulnerability.