openOMSI README

The project's README from github.com/openOMSI-org/openOMSI. As one markdown file: README.md.

openOMSI

Version Playing now Build Docs Discord Buy me a coffee Ko-fi License

[!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.

Download

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 → General → Updates switches the check off or installs without asking.

Installation

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.

  1. 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.
  2. 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 run xattr -dr com.apple.quarantine /path/to/openOMSI.app once.
    • Linux: ./openomsi (run chmod +x openomsi if 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.
  3. 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, maps and Vehicles in it (the folder, or Omsi.exe itself) - and press Save. The Steam version is under …\Steam\steamapps\common\OMSI 2.
  4. 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.

When something goes wrong

Goals

  1. 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.
  2. No original code or assets. Nothing from the original is copied; the formats are described in docs/FORMATS.md.
  3. 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.

Documentation

The full documentation is on the website: https://openomsi-project.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
Virtual reality OpenXR setup, VR settings and controls on Windows
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

Building from source

git clone https://github.com/openOMSI-Project/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/server

Needs the latest Rust stable and the platform's C toolchain; details in docs/BUILDING.md.

Repository layout

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

Contributing

Issues and pull requests are welcome - see CONTRIBUTING.md.

Support

openOMSI is made in free time. If you enjoy it and want to help it along, you can buy me a coffee or support it on Ko-fi - thank you!

Buy me a coffee Support me on Ko-fi

License

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.

openOMSI (openOMSI-org/openOMSI)

Searching Database…

What is this?openOMSI is a from-scratch recreation of the bus simulator OMSI 2, written in Rust with a modern wgpu renderer (Metal/Vulkan/DirectX 12). It loads and plays the original OMSI 2's maps, buses and mods, but contains no game content of its own.
Is this a full game or a launcher plus engine?It's a complete replacement game engine plus a launcher: the launcher finds or sets your OMSI 2 folder, manages mods and updates, and then runs the actual driving simulation itself, reading the original's maps and vehicle files.
How do I get it running?Download the build for your platform from the Releases page, unpack it into a writable folder (not Program Files), start the executable, and let the launcher auto-detect your OMSI 2 installation (or point it at the folder manually in Setup). Then pick a map, bus and duty, and drive.
Do I need to own the original OMSI 2 to use this?Yes, it is mandatory. openOMSI needs an installed copy of OMSI 2 (Steam or retail) with its stock maps and buses - it will not start without one, and the original installation folder is never modified.
Is this ready to use right now, or still early?It's an early release: expect bugs, and things may be missing, broken, or change between versions. The project tracks problems on GitHub Issues and Discord.
Which platforms does it run on?Windows (x64/ARM64), macOS (Apple Silicon or Intel), Linux (x64/ARM64), and Android 8.0+ (arm64), plus a separate dedicated server build for Linux and Windows.
What data does the diagnostics export actually send?The exported diagnostics package includes the program, system, graphics card/driver/settings, controller info and the last game's map and bus, but explicitly excludes folder paths, names, chat, LAN codes or addresses - and nothing is sent automatically, you attach it yourself.
Why rewrite OMSI 2 instead of just using the original?The goals are a modern 64-bit, multithreaded engine with streaming/texture loading on worker threads (no 2GB limit, no single-thread stalls), plus LAN multiplayer and a dedicated server - while behaving exactly like the original for existing content.
Can I play multiplayer with existing mod maps?Yes, but both players need the host's map: a map placed directly in the OMSI 2 folder isn't shared, while one installed through the Mods page is passed to joining players automatically.
Is VR supported?Yes, there's an OpenXR-based virtual reality mode with its own settings and controls, documented separately for Windows.
What if my graphics card doesn't support Vulkan?openOMSI automatically falls back from Vulkan to DirectX 12 and then OpenGL; you can also manually pick the graphics API in Settings → Graphics.
Size
28.1 MB
Stars
627
Age
19d
Commits · 90 Days