Warning
Early release. Expect bugs. openOMSI is in an early stage of development: things may be missing, broken or change between versions. Please report problems in Issues or on our Discord server.
openOMSI is a from-scratch recreation of the bus simulator OMSI 2, written in Rust: 64-bit, multithreaded, with a modern renderer (Metal / Vulkan / DirectX 12 through wgpu), and fully compatible with the existing maps, buses, scenery and mods.
Important
openOMSI needs an original copy of OMSI 2. It contains no game content of its own: it plays on the maps, vehicles and other files of an installed OMSI 2 and will not start without one.
Every commit to main is built by GitHub Actions and published on the
Releases page:
| Platform | File |
|---|---|
| Windows x64 / ARM64 | openOMSI-<version>-windows-x64.zip / -windows-arm64.zip - run openomsi.exe |
| macOS (Apple silicon / Intel) | openOMSI-<version>-macos-arm64.zip / -macos-x64.zip - open openOMSI.app |
| Linux x64 / ARM64 | openOMSI-<version>-linux-x64.zip / -linux-arm64.zip - run openomsi |
| Android (arm64, 8.0+) | openOMSI-<version>-android-arm64.apk - see docs/ANDROID.md |
| Dedicated server | openOMSI-<version>-server-linux-x64.zip (also -linux-arm64, -windows-x64, -windows-arm64) - see docs/SERVER.md |
Start the game, point the launcher to your OMSI 2 folder once, pick a map, a bus and a duty, and drive. Mods go into the folder next to the game (or through the launcher's Mods page); the original installation is never written to.
From 0.1.7 on the launcher updates itself: when a newer release is out it asks at the start and, with your yes, downloads it, replaces the program and starts again (on Android through the system's installer). Settings → Updates switches the check off or installs without asking.
You need an installed OMSI 2 (Steam or retail, any version) with its stock content - the maps Grundorf and Berlin-Spandau and the stock buses (MAN SD200/SD202, NL). openOMSI brings no game content of its own; it plays the original's maps, buses and mods.
- Download the file for your system from
Releases (table above) and unpack it
into a folder of its own that you can write to - your Documents, a games folder, or the
OMSI 2 folder itself. Not
Program Files: the launcher could not update itself there. - Start it.
- Windows:
openomsi.exe. Windows SmartScreen may warn about an unknown app: More info → Run anyway. - macOS: open
openOMSI.app. The first time, macOS may refuse an app from the internet: right-click → Open → Open, or runxattr -dr com.apple.quarantine /path/to/openOMSI.apponce. - Linux:
./openomsi(runchmod +x openomsiif it does not start). It needs a Vulkan or OpenGL driver (Mesa:mesa-vulkan-drivers, or your GPU vendor's driver). - Android: see docs/ANDROID.md - the OMSI 2 folder is copied onto the phone first.
- Windows:
- Point it at OMSI 2. The launcher usually finds the installation by itself (Steam
libraries, the usual folders). If not, open Setup and choose the OMSI 2 folder - the
one with
Omsi.exe,mapsandVehiclesin it (the folder, orOmsi.exeitself) - and press Save. The Steam version is under…\Steam\steamapps\common\OMSI 2. - Drive: pick a bus, a map and a duty on the Drive page and press Start the duty.
Mods are installed on the Mods page (a folder or a .zip, or dropped on the window) or
by putting them into the Mods folder next to the game; the OMSI 2 folder is never written
to.
- "The original OMSI 2 was not found" - choose the folder under Setup (step 3); the message says what the chosen folder lacks.
- The game closes after a few seconds, or "the graphics device was lost" - update the graphics driver (NVIDIA, AMD or Intel's own, not the one Windows installs). On Windows you can also switch to DirectX 12: Settings → Graphics API (the launcher offers it after such a crash).
- An older graphics card (no Vulkan): openOMSI falls back to DirectX 12 and then OpenGL by itself; Settings → Graphics API chooses one.
- Stuck at a bridge or an invisible wall on a mod map: Esc → Options → Collisions with objects switches collisions with the map's objects off (Settings has it too).
- Multiplayer: you do not meet the others - both players need the host's map (a map in the OMSI 2 folder is not passed on; one from the Mods page is). The joining game switches to the host's map by itself and says in the HUD when it is not installed.
- Keys do not do what you set: Controls - the page shows which driving keys are in use; a key you change there takes effect at once.
- Anything else: when the game ends on an error, the launcher shows it with Copy report
and Report on GitHub. The logs are in
~/.openomsi(Windows:C:\Users\<you>\.openomsi),game.logfor the last game.
- 1:1 behaviour. Every content format of the original - maps, splines, scenery objects, vehicles, scripts, timetables, HOF files, fonts, weather, tickets, situations, plugins - loads and behaves exactly as in OMSI 2.2.032. Existing maps and mods work unchanged.
- No original code or assets. Nothing from the original is copied; the formats are described in docs/FORMATS.md.
- A better engine. 64-bit address space, streaming and texture loading on worker threads, no 2 GB limit, no single-thread stalls, LAN multiplayer and a dedicated server.
The full documentation is on the website: https://turbo-devv.github.io/openOMSI/. The same
pages live in docs/:
| Document | What is in it |
|---|---|
| User guide | running, controls, launcher, settings, mods, LAN play, debug switches |
| Android | the mobile version: install, touch controls, building the APK |
| Modding | limits lifted for modders: more interior lights, larger textures, additions OMSI 2 ignores |
| PBR materials | normal, roughness, metalness and occlusion maps for mods |
| Building | building from source on macOS, Windows, Linux and Android |
| Content formats | every OMSI 2 file format |
| Architecture | crates, threading, renderer, roadmap |
| Routes | how the original runs timetables, chrono, HOF, IBIS |
| Plugins | Lua plugins (API and examples), OMSI plugin DLLs and the 32-bit plugin host |
| Dedicated server | hosting a session without a window |
| Versioning & releases | the MAJOR.MINOR.COMMIT scheme and the CI |
| Changelog | what changed in each version |
git clone https://github.com/turbo-devv/openOMSI.git && cd openOMSI
scripts/build-macos.sh # macOS → dist/macos/openOMSI.app
scripts\build-windows.cmd # Windows → dist\windows\openomsi.exe
scripts/build-linux.sh # Linux → dist/linux/openomsi
scripts/build-android.sh # Android → dist/android/openOMSI-<version>.apk
scripts/build-server.sh # server → dist/serverNeeds Rust stable (1.85+) and the platform's C toolchain; details in docs/BUILDING.md.
openOMSI/
├── VERSION MAJOR.MINOR of the next release (edited by hand)
├── crates/ the engine, one crate per subsystem of the original
│ ├── omsi-app/ the game binary `openomsi` (window, launcher, HUD, server mode)
│ ├── omsi-launcher-core/ launcher data side + `openomsi-launcher` terminal tool
│ ├── omsi-cfg/ text files, code pages, virtual file system, content roots
│ ├── omsi-script/ the OMSI script language (compiler + VM)
│ ├── omsi-o3d/ omsi-model/ omsi-texture/ omsi-geometry/ meshes, models, textures, splines
│ ├── omsi-map/ omsi-scenery/ omsi-timetable/ omsi-vehicle/ omsi-content/ content formats
│ ├── omsi-sim/ vehicles, AI traffic, people, physics
│ ├── omsi-render/ the wgpu renderer
│ ├── omsi-audio/ omsi-net/ omsi-plugin/ omsi-ui/ sound, multiplayer, plugins, UI toolkit
├── tools/ developer tools: omsi-check (format coverage)
├── scripts/ build scripts for every platform, version.sh, packaging files
├── assets/ fonts, Material icons, app icons (assets/icons/app), logos (assets/logos)
├── docs/ documentation (also published as the website)
├── site/ the GitHub Pages website
└── .github/workflows/ CI: release builds for every commit, the website
Issues and pull requests are welcome - see CONTRIBUTING.md.
openOMSI is made in free time. If you enjoy it and want to help it along, you can buy me a coffee - thank you!
openOMSI is released under the MIT License. OMSI and OMSI 2 are trademarks of their respective owners. openOMSI is an independent project and is not affiliated with them.