Skip to content

Frequently Asked Questions / Help Centre

Answers to the most common questions about openOMSI. For map, bus and mod compatibility, also check the community database openOMSI Compatibility.

A community initiative by Portal OmsiModsBR, not officially affiliated with the project. The official documentation is at github.com/openOMSI-org/openOMSI.

168 questions in 14 categories

Before you start

What openOMSI is, what it is not, and what to expect from an early-stage project.

What is openOMSI?

openOMSI is an independent project that recreates the OMSI 2 bus simulator from scratch. It is written in the Rust language, is 64-bit, uses several processor cores and draws the image with modern graphics APIs (Metal, Vulkan or DirectX 12). The project's stated goal is to work with the maps, buses, sceneries and mods that already exist for OMSI 2. According to the current README, there are versions for Windows, macOS, Linux and Android. For iPhone and iPad, openOMSI is available for testing (Beta) through Apple's official TestFlight, on iOS or iPadOS 18.0 or newer; it is not a final App Store release (iPhone and iPad support entered the code in version 0.2.36, and building with Xcode, for iPhone, iPad and Mac, is still possible). Since version 0.3.0 the project separates Stable versions (the default) and Beta versions (for those who want to test). According to the 0.3.37 notes, the downloads now include, next to the .zip files, a Windows installer (per user, no administrator rights needed) and a disk image (.dmg) for macOS; and, according to the 0.3.40 notes, the launcher on iPhone, iPad and Mac gained the settings and pages that only the desktop launcher had.

This Help Centre is a community initiative (Portal OmsiModsBR). It is not the project's official documentation. For the official source, see the GitHub repository (the project was renamed from openOMSI-Project to openOMSI-org; old links usually redirect) and the documentation at openomsi.org.

Learn more

Does openOMSI replace OMSI 2?

No. openOMSI does not contain the game: it needs an original OMSI 2 installation on your computer (or phone) to read maps, buses and other files. Without OMSI 2, openOMSI does not start.

Think of it as another “engine” that reads the OMSI 2 files. You still need the original OMSI 2, and it keeps working normally, the way it always has. openOMSI does not write to the original installation: the mods you install (through the launcher's Mods page or in the Mods folder next to the program) go into a folder of openOMSI's own, which is checked before the original one.

Learn more

Do I need to own OMSI 2?

Yes. The project states that an original copy of OMSI 2 is required (Steam or retail version, any version), with the default content, such as the Grundorf and Berlin-Spandau maps and the buses that come with the game. openOMSI does not distribute any OMSI 2 content.

The launcher usually finds the installation by itself (Steam libraries and the usual folders). If openOMSI says it could not find OMSI 2, open the launcher's Setup page, choose the folder where Omsi.exe is located (or Omsi.exe itself) and save; the error message usually says what is missing from the folder you chose. On Steam, the folder is at ...\Steam\steamapps\common\OMSI 2. On Android, the whole OMSI 2 folder has to be copied to the phone first. On iPhone and iPad (Beta through TestFlight) the same applies: copy the files of your original OMSI 2 to the device (through the Files app or Finder, into the openOMSI/OMSI 2 folder) and, in openOMSI, open Mais > Setup and choose the OMSI 2 folder; since 0.3.0 the first launch shows how to copy OMSI 2 and looks for the copy by itself. The launcher was rebuilt in version 0.2.36, so the look and the button names may differ in older or newer builds, but the Setup page is still where you point to the folder. According to the 0.2.39 changelog, the desktop launcher became the only one (the game's own launcher window was removed; if WebView2 is missing on Windows or WebKitGTK on Linux, the game says what is missing instead of opening another launcher) and Setup no longer saves an incomplete OMSI 2 folder over the one that worked. Since 0.3.34 the launcher's left-hand menu is split into groups (in the notes, in English: Play, Content, Options and Help), with Setup under Options; the names in your language may vary. In 0.3.42 Setup also gained the choice of the .openomsi folder (settings, profiles, logs and caches), which can sit on another drive; the default is still ~/.openomsi.

What to check

  • OMSI 2 is installed and already opens normally (on the PC).
  • The folder chosen in Setup has Omsi.exe, maps and Vehicles.
  • OMSI 2's default maps and buses are present.
  • openOMSI is in a folder you can write to (Documents, a games folder or OMSI 2's own folder), not in Program Files: the launcher cannot update itself there. Since 0.3.37 Windows also has a per-user installer, which does not ask for administrator rights.

Learn more

Is openOMSI stable yet?

Depends on the version

Not yet. The project itself warns, on GitHub, that it is an early release (“Early release. Expect bugs.”) and that features may be missing, fail or change between versions.

That does not mean it doesn't work. It means you may run into problems, and an update may improve or worsen something. Version 0.3.0 (Stable) is a stabilisation release: it fixed slowdowns and breakages that came with earlier updates (for example, large maps with a lot of AI traffic run more smoothly again, and the game opens again on older processors without POPCNT), but the early-release warning is still in the README. The most recent Stable (on 26/10/2026) is 0.3.42, from 25/10, preceded by 0.3.37, from 18/10; together they gather what came in Betas 0.3.34 to 0.3.41, with big changes (for example, the graphics modes and quality presets were reorganised, and online play gained a new protocol in 0.3.40, which means updating the game on both sides). Before them, the Stable was 0.3.33, which gathered what came in Betas 0.3.30 to 0.3.32 (rain and video memory performance, lights, OMSI 1 editor maps, safer online play and many smaller fixes) and which carried, in its notes, the same warning (“Early release, expect bugs”); the notes for 0.3.37 and 0.3.42 repeat that warning. If something fails, don't assume it is your fault or your hardware's. Since version 0.2.32 (the changelog describes the feature under 0.2.31, which was never published), the project describes a start-up safeguard: if a version crashes or never gets as far as opening the launcher, openOMSI tries to install a newer version, go back to the previous one or open in safe mode, telling you through message boxes (this does not cover crashes in the middle of a session, and older builds do not have this protection).

Learn more

Why can updates change the behaviour?

Depends on the version

Because the project publishes new versions often, and there are behaviour changes between them. The version number has the format MAIOR.MENOR.NÚMERO, for example 0.2.38: the last number goes up with each change (some numbers are never published, such as 0.2.31 and 0.2.35). Up to 0.2.60, every change sent to the main branch (main) produced a version, often several on the same day. Since 0.3.0 (2026-10-14) this has changed: the maintainers start releases by hand, and there are two tracks, Beta (for testers) and Stable (a Beta that has been tested and promoted). In Settings > General > Updates there is an update channel: Stable is the default and Beta is for those who want to test. Beta version numbers (and those of TestFlight builds on iPhone and iPad, which have their own update cycle) may not match those of the Stable version.

So something that didn't work may start working, and a tweak may affect something else. That is why answers about features, performance and compatibility can change from one version to another. When an answer in this Help Centre depends on the version, it carries the corresponding tag. If something changed after you updated, check the changelog. The launcher updates itself (it asks at start-up, unless you turned on installing without asking) and, in recent versions, it can download a new version in the background during a session and install it only afterwards. According to the 0.2.39 changelog, the desktop launcher went back to looking for, offering and installing updates, and in the Updates area of the settings (Settings > General > Updates, according to the guide) the Choose a version option lists the published versions and installs the chosen one (an older version stays until you choose the latest again); since 0.2.60/0.3.0 this selector marks Beta versions. When in doubt, prefer the Stable version. On 26/10/2026 the Stable is 0.3.42 (from 25/10), preceded by 0.3.37 (from 18/10), and no Beta is ahead of it; what shows up first in the Beta usually reaches the Stable in a later version (the city-map route launcher, for example, debuted in Beta 0.3.31 and has been in the Stable since 0.3.33; what came in Betas 0.3.34 to 0.3.36 reached the Stable in 0.3.37, and what came in Betas 0.3.38 to 0.3.41 in 0.3.42), and what exists only in a Beta is covered in the Beta FAQ. One example of a change that calls for attention: online play moved to a new protocol in 0.3.40 (LAN 15), and a version with it cannot join a session of an older version, or the other way round; people playing together need to update on both sides. There have been versions with start-up problems, such as 0.2.28 on Windows, fixed in 0.2.29; in that case the broken launcher cannot update itself and you have to download the new version manually.

Learn more

Where can I see the changelog?

Depends on the version

The changelog (the list of what changed in each version) is in the repository's CHANGELOG.md file (sections run from newest to oldest) and also in the notes of each version on the Releases page, generated from the commits. The texts are in English. The CHANGELOG has an Unreleased section at the top, with fixes not yet published in a Stable version (they may already be in a Beta). Up to 0.2.60 the third number of the version went up with every commit to main, so there could be releases newer than the last section of the CHANGELOG; since 0.3.0 versions are started by hand, and releases marked as pre-releases (*Pre-release*) are Betas. Some numbers are never published at all (0.2.31 and 0.2.35 never came out; what they would have brought arrived with 0.2.32 and 0.2.36); in that case, the release notes and the commit history show the rest. The general documentation (user guide, Android, server, VR) is at openomsi.org.

Note: CHANGELOG.md shows the state of the main branch, which may be a few changes ahead of the version you installed. Compare it with your version number.

Learn more

How do I find out which openOMSI version I have?

Depends on the version

According to the project documentation, the version appears in the launcher sidebar, on the first line of the log file (game.log, in the .openomsi folder of your user profile; the launcher.log next to it also starts with the version) and when you run openomsi --version on the command line. The name of the downloaded file also includes the version, for example openOMSI-0.3.42-windows-x64.zip (or openOMSI-0.3.42-windows-x64-setup.exe, the Windows installer, which has existed since 0.3.37). Test builds of pull requests have a suffix, such as 0.1.1313-pr1192. Beta and Stable versions use the same number format, and TestFlight builds (iPhone and iPad) have their own numbering and update cycle, which may not match those of the Stable version for Windows, Linux, macOS and Android.

When asking for help or reporting a problem, always give the full version number. Note: the new launcher (from 0.2.36) at one point showed the wrong version, 0.1.0; according to the changelog, this was fixed in 0.2.37 and, for macOS and Linux (About window, multiplayer sessions, plugins), in 0.2.38. If the launcher shows 0.1.0, check the name of the downloaded file, game.log or openomsi --version instead.

What to check

  • Look at the launcher sidebar (according to the project documentation; the exact position may have changed in the new launcher).
  • Or open game.log (on Windows: C:\Users\SEU_USUARIO\.openomsi; on macOS and Linux: ~/.openomsi) and read the first line. Since 0.3.42 the .openomsi folder may have been moved elsewhere on the Setup page; if you cannot find game.log there, check which folder is chosen in Setup.
  • In Settings > General > Updates you can check whether a newer version is available (Check now option; since 0.2.39 there is also Choose a version, which lists the versions and installs the one you pick). If the screens are named differently in your launcher, look for Updates in Settings. Since 0.2.60/0.3.0 this area also has the update channel (Stable, the default, or Beta).

Learn more

Will my OMSI 2 mods work in openOMSI?

Depends on the version

The project's goal is to be compatible with existing maps, buses, sceneries and mods, but that is a goal, not a guarantee: the project is still early and each mod can behave differently. Some work well, others have visual or functional problems. Mods with OMSI plugins (.opl + DLL) are loaded by a 32-bit helper program (on macOS and Linux, through Wine), according to the plugin documentation; a plugin that reads the memory of Omsi.exe does not work. The launcher's Mods page installs a folder, .zip, .7z or .rar; since 0.2.22 it has had a list of installed mods, with the option to switch each one off and delete it (I have not confirmed whether the new launcher keeps the list and the options to switch off and delete; the 0.2.39 changelog says the Mods page got back cancelling an installation, the file size check, filters, the content folder and dropping a mod anywhere in the window). Since 0.3.0, on phones the Mods page has its own storage browser, for installing a folder or a .zip, .7z or .rar file (before that, “Add folder” and ZIP did nothing). Since 0.3.32 (Beta; in the Stable since 0.3.33), plugins can see and choose the ticket each passenger buys (reduced fares, passes); without a plugin nothing changes. Maps made with the OMSI 1 editor, such as Great Grundorf 2, have had the whole street network and the starting points since 0.3.31 (Beta; Stable since 0.3.33). Since 0.3.39 (Beta; Stable since 0.3.42), each mod on the Mods page shows which game folders it put files in and how many (for example “Vehicles 1, Fonts 2”); since 0.3.40, the page asks before sharing a map's depot (HOF) files with all buses. In 0.3.42, the Troubleshooting page (in the launcher's Help group) lists problems with the installed content, such as packages waiting for the bus, buses with parts from packages that are not installed, a map HOF that could not be added and installations that failed. According to the 0.3.40 and 0.3.42 notes, existing OMSI 2 trolleybus maps and add-ons run as they are, with openOMSI's own overhead wire for maps that include it; the rule that this depends on each mod still applies.

To find out whether a specific map, bus or mod has already been tested, use the Portal OmsiModsBR community compatibility database. It is independent, unofficial and complementary to the project.

Learn more

What is this site? Is it from the openOMSI developer?

No. This site is the community compatibility database, maintained by Portal OmsiModsBR. It is independent, unofficial and complementary to the project. It is meant for looking up and recording whether a given map, bus or mod works in openOMSI.

Problems with openOMSI itself (program errors) should be reported on the project's GitHub Issues (or on the Discord server given in the README). When the game ends with an error, the launcher shows the error with options to copy the report and to report it on GitHub (according to the 0.2.39 changelog, the launcher went back to warning when a game ends with an error or is sent away by the server). On Android, since 0.3.39 (Beta; Stable since 0.3.42), after a crash the next start of the app opens the dialogue with the report and the GitHub buttons. In 0.3.42 the launcher also has the Troubleshooting page (Help group), which helps you find problems in the installed content. This site and the Help Centre do not replace the official documentation.

Learn more

Is openOMSI free and open source?

openOMSI's code is published on GitHub under the GNU AGPL v3 licence (version 3 only; the historical MIT licence notice is kept, and old versions published under the MIT keep their own terms), and the downloadable versions are on the Releases page. The project describes itself as independent, with no ties to the rights holders of OMSI 2. The current README also has links for anyone who wants to support the author with voluntary donations (Buy Me a Coffee and Ko-fi); that is not a charge for the program.

Remember that the original OMSI 2, which you need in order to use openOMSI, remains a separate product.

Learn more

Installation and platforms

How to install openOMSI, which systems it exists on, and what to do when it won't open.

Which systems are supported?

Depends on the version

According to the README, the published versions are for Windows (x64 and ARM64), macOS (Apple silicon and Intel), Linux (x64 and ARM64) and Android (arm64, Android 8.0 or newer). There is also a dedicated server for Linux and Windows (x64 and ARM64). In every case you need the original OMSI 2 installed: openOMSI brings no content of its own and does not open without it. Since 0.3.0 there are Stable versions (tested, the default option) and Beta versions (for testers, marked as pre-releases on the Releases page); the numbering of the two may differ. According to the 0.3.37 notes, the releases also include, next to the zips, a Windows installer (-setup.exe, per user, no administrator needed) and a disk image (.dmg) for macOS; on Linux and Android the zip and the APK remain.

In the sources consulted, the project does not publish a list of minimum Windows, macOS or Linux versions. iPhone and iPad (iOS/iPadOS 18.0 or newer) have a Beta version for testing through Apple's official TestFlight, which is not listed in the downloads table and is not yet available on the App Store; the implementation entered the source code in 0.2.36, and the TestFlight versions have their own cycle and numbering. See the question about installing on iOS. Building the code with Xcode (docs/APPLE.md) is still possible.

Learn more

How do I install it on Windows?

Depends on the version

1) Install the original OMSI 2 (Steam or retail version) if you do not have it yet, with the factory content (according to the README, the Grundorf and Berlin-Spandau maps and the standard buses). 2) On the Releases page, download the file openOMSI-<versão>-windows-x64.zip (or openOMSI-<versão>-windows-arm64.zip, if your PC is ARM); the version marked Latest is the Stable one, and those marked as pre-releases (Pre-release) are Betas for testers (since 0.3.0). 3) Extract it into a folder for it alone, where you have write permission, such as Documents, a games folder or OMSI 2's own folder (in that case, according to the user guide, openOMSI keeps its content in an openOMSI folder inside it and never writes to the game's original folder). Do not use Program Files, because automatic updating cannot work there. 4) Open openomsi.exe. Since 0.3.37 the Releases page also offers an installer (openOMSI-<versão>-windows-x64-setup.exe, per user and without needing an administrator) as an alternative to the zip; the notes do not describe its steps, so if you prefer the zip, follow the steps above.

The first time, Windows SmartScreen may show a warning. According to the README, click More info and then Run anyway. The launcher usually finds OMSI 2 by itself (Steam libraries and the usual folders); if it does not, open Setup, choose the folder that contains Omsi.exe, maps and Vehicles (the folder or Omsi.exe itself will do) and click Save. Then, on the Drive page, choose a bus, a map and a duty and click Start the duty. Since 0.3.37 the Drive page brings everything together on one screen (map, line and tour, route notebook, bus and start button), and the left-hand menu is split into Play, Content, Options and Help; so the design and position of the buttons may differ from those in older tutorials.

The launcher has been rebuilt more than once (the 0.2.22 one was withdrawn in 0.2.23, and the 0.2.36 one is the current one) and stays in English unless another language is chosen; so the names and positions of buttons may vary between versions. According to the CHANGELOG, since 0.2.39 the desktop launcher is the only one (the game's own launcher window was removed). If it does not open (or, on a version up to 0.2.38, a different screen appears), see the question about the new launcher. According to the CHANGELOG, 0.2.4x brought the Launcher size setting and Launcher layout: Classic (the step-by-step Drive page), and 0.3.0 made that classic page show the bus's chosen livery again too. According to the 0.3.33 notes (Beta since 0.3.32, Stable since 0.3.33), the launcher gained two smaller sizes, Very small and Smallest, and the desktop launcher now has French. According to the 0.3.37 notes, the layout of the Drive page is chosen in Settings > Launcher layout: Big Map (the default), Control Room, Classic+ and Classic; so the description of Classic as “Drive in steps” applies to the Classic layout, not to the default. According to the 0.3.41 and 0.3.42 notes, Help has a Troubleshooting page (problems with the installed content, with “Scan again”), and 0.3.42 allowed choosing another location for the data folder in Setup (.openomsi folder field).

What to check

  • The downloaded file is from the project's official Releases page.
  • Everything was extracted (do not open it from inside the zip).
  • The folder is not in Program Files.
  • The original OMSI 2 is installed and was found in Setup (the message “The original OMSI 2 was not found” says what is missing from the chosen folder).

Learn more

How do I install it on Android?

Depends on the version

According to the official documentation: 1) download android-arm64.apk from the Releases page and install it (Android asks you to allow installing from this source). 2) Open the app and grant the access to all files permission, which is needed to read OMSI 2's thousands of files. 3) Copy the whole OMSI 2 folder from a PC to the phone, for example to openOMSI/OMSI 2 in internal storage. 4) The app looks for the folder by itself in openOMSI/, in Download/ and at the root of the storage; if it is somewhere else, use Setup > Browse > Use this folder > Save to choose it (the folder browser has found the SD card since 0.2.21).

The device must be arm64 with Android 8.0 or newer. See also the question about phone compatibility. On first start, according to ANDROID.md, the app uses lighter graphics defaults (MSAA 2x, no ambient occlusion, a 1024 shadow map, 60 fps and objects up to 900 m), which can be changed on the launcher's Settings page.

Current versions (from 0.1.523) create .nomedia files automatically in the content folders and in the OMSI 2 installation, so that the gallery does not list the textures as photos; screenshots go to openOMSI/Screenshots and remain visible. Do not delete those images: they are part of the game. See the question about the gallery.

Since 0.2.36, the app has its own launcher for phones (an icon bar, the duty as a list whose rows open full-screen pickers) and the game's internal launcher is no longer created underneath it, which, according to the CHANGELOG, makes the app start faster (0.2.28 had already sped up opening on Android). Button names and positions may change between versions. According to the notes, 0.3.39 began showing the window of the last unexpected close at the next start of the app (with the report and the GitHub buttons), 0.3.40 made the Support package in the settings work on Android (the ZIP goes into the openOMSI storage folder; before, it gave an error) and 0.3.40 and 0.3.42 adjusted the game menu for the phone held upright; all of this is in Stable 0.3.42.

What to check

  • The phone is arm64 and has Android 8.0 or later.
  • The “Manage all files” permission was granted to the app.
  • The copied folder contains Omsi.exe, maps and Vehicles (a complete copy from the PC).
  • There is enough free space for the OMSI 2 folder.
  • If the app did not find the folder, it was chosen in Setup > Browse > Use this folder and saved with Save.

Learn more

Does it work on any phone?

Depends on the version

There is no way to guarantee that. The official documentation asks for an arm64 device with Android 8.0 or newer and a GPU with Vulkan 1.1 (if there is none, the app tries OpenGL ES 3). In the public sources consulted there is still no list of compatible devices, and no memory or processor requirements.

The project's history contains specific fixes for Mali and Adreno drivers and for the OpenGL ES fallback. For example, the fs_blur shader error on OpenGL devices was fixed starting with 0.1.479: the ambient occlusion pipelines, which OpenGL ES cannot compile, are no longer created on that backend (ambient occlusion remains available on Vulkan). In 0.1.759 the scene shader compiled again on OpenGL and GLES, which fixed black screens and crashes on some Android and Linux devices (that does not mean every OpenGL problem is gone). In 0.1.1098, a crash on a phone long after the shaders had been compiled stopped being automatically blamed on Vulkan, and waiting for the GPU on OpenGL stopped holding the context for seconds (a crash); keep reporting version, GPU, driver, backend and log, because this does not guarantee that every crash has been resolved. In 0.1.1234, OpenGL chips without storage buffers in the vertex shader (some Mali on GLES and the Intel HD 2500, for example) started drawing the scene from textures instead of failing to start; this widens what can open, but it does not promise performance or that every device will work. This shows that the result can vary with GPU, driver and version; so use a current build before concluding that the device is incompatible. 0.2.0 brought new shaders (snow, lamps in fog and street-lamp shadows) that some phone drivers cannot compile, and on those devices the game opened to a black screen; 0.2.1 detects this at startup, opens the GPU again without those three features and draws as before (the snow falls without flakes). If you are on 0.2.0 and see a black screen, update.

Other fixes recorded in the CHANGELOG: in 0.1.1502, the black screen on Adreno 6xx, 7xx and 8xx chips is avoided by rebuilding the shader cache; in 0.2.21, devices that cannot read 4-byte storage arrays started reading them from textures, and the shadow pipeline worked again on Xclipse/ANGLE. These are fixes for specific cases, not a guarantee that your device will open it or run it well. Since 0.3.0, when the graphics driver resets the GPU and the game restarts with lower graphics, the game tells you instead of silently getting worse; the launcher also records in the log where it crashed, which helps with reports.

The current Android version is ARM64, and the README's downloads table lists only android-arm64.apk: there is no 32-bit build listed. “32-bit” would not be a lightweight version either: the processor architecture does not work as a graphics quality level. Meeting the technical requirements does not guarantee good performance. According to the notes for 0.3.30 to 0.3.33 (Betas, Stable since 0.3.33), there are gains that may help borderline devices: about a fifth less texture memory for the same image, phones keeping their own graphics defaults and a card that runs out of memory no longer losing the whole image; this is not a promise that your device will run it well. According to the 0.3.37 to 0.3.42 notes (Stable), the game gained the Optimise for my PC button (it measures for about a minute during a session and keeps only the lightest options that really bring frames; “Restore my previous settings” goes back), the Low to Ultra quality presets (Low uses the Vanilla mode), lower memory use (0.3.40), rain and snow falling again on OpenGL and ANGLE (0.3.41), and the city map being capped more carefully so as not to exhaust weaker cards (0.3.41). None of this guarantees that your device will run well.

Learn more

How do I install mods on Android?

Depends on the version

According to the official documentation, there are two ways: copy mod folders or .zip, .7z or .rar files to openOMSI/Mods in the phone's storage (they are installed when the launcher opens), or use the launcher's Mods page (Choose a folder for a mod folder, Choose an archive for a compressed file). Only .zip files can also be placed in openOMSI/Archives, where they are used where they sit (in place); .7z and .rar files are always unpacked during installation.

On phones, according to the 0.3.0 CHANGELOG, the Mods page got its own storage browser for installing a folder or a .zip, .7z or .rar file; before that, “Add folder” and ZIP did nothing. If those options do not respond in your version, update or copy to openOMSI/Mods. Each mod may work differently in openOMSI. To find out whether one has already been tested, check the community compatibility database.

In current versions (from 0.1.523), the content folders and the OMSI 2 installation are automatically protected from gallery indexing (openOMSI creates .nomedia files): you do not need to create anything manually. If textures still show up in the gallery, do not delete them: see the question about the gallery.

According to the CHANGELOG, the Mods page began to list each installed mod, with its type, size and date, and to let you switch a mod off, on or delete it after a confirmation (0.2.22 and 0.2.23); in 0.2.27 it began to show the contents of each mod, folder by folder, and what a mod puts in shared folders, such as fonts and textures, began to be recorded as belonging to it. The launcher was rebuilt again in 0.2.36, so check in your version what the page offers. According to the CHANGELOG, 0.2.39 gave the Mods page back cancelling an installation, the file size check, filters, the content folder and the ability to drop a mod anywhere in the window; the CHANGELOG does not say which of these appear in the phone launcher (dropping files, for example, is a computer gesture).

Learn more

OMSI textures are showing up in the Android gallery. Can I delete them?

Depends on the version
DO NOT DELETE THE TEXTURES.The images shown by the gallery may be real files used by OMSI. Deleting them can break maps, buses, objects and repaints.

No. Those images are part of OMSI 2, of the maps, buses, objects, repaints and other mods. The gallery is normally showing the very files the game uses, not extra copies. If those images are deleted through the gallery, files that the content needs may be removed, which can leave you with white buses, missing textures and broken maps.

From openOMSI 0.1.523, the app itself creates .nomedia files on Android, in the openOMSI content folders and also in the OMSI 2 installation, wherever it is, so the gallery does not list the thousands of textures as photos (that kept phones busy with media scanning). openOMSI does not move, rename or delete content, and it leaves the openOMSI/Screenshots folder out, so the screenshots you take keep showing up in the gallery. Since 0.2.26, according to the CHANGELOG, a photo taken in photo mode goes straight to the gallery on Android: those photos are yours, not game textures. According to the 0.3.34 notes (Beta, Stable since 0.3.37), screenshots on Android also show up in the gallery right away, and the pause menu has the Screenshot row again.

If you use an older version, update openOMSI first. If the gallery had already indexed the images, it may take some time, or you may need to restart the device, for it to forget them. Do not delete the images, do not clean out the OMSI folder, do not rename textures and do not reinstall everything as a first step.

Older versions / manual workaround. If for some reason you cannot update a build older than 0.1.523, creating an empty file named .nomedia in the OMSI content folders (such as Vehicles, maps, Sceneryobjects, Splines and Texture) prevents indexing: Android ignores the images in the folder where the file sits and in all of its subfolders. Do not put the .nomedia in a folder above openOMSI/Screenshots if you want your screenshots to keep showing up. In current builds you don't need to maintain this manually.

What to check

  • Check your openOMSI version: from 0.1.523 the .nomedia files are created automatically.
  • Only for old builds: the manual file is named exactly .nomedia (a dot at the start, no extension) and can be empty; one per content folder (for example in Vehicles) already covers everything below it.
  • You do not need to edit, move, rename or delete any texture.
  • If the file manager won't let you create a name starting with a dot, create the file on a computer and copy it to the folder.
  • Images that were already indexed may stay in the gallery for a while: close and reopen the gallery, wait for a new scan or restart the device (it varies by Android version, manufacturer and gallery app).
  • “Hide album” may hide the images only in the app's screen, without stopping the indexing: it is not a substitute for .nomedia.

Learn more

My PC won't open openOMSI. What should I check?

Depends on the version

Start with the basics and work your way up. Don't assume the problem is your equipment: it could be the folder, OMSI 2 not being found, the graphics driver or even a bug in openOMSI itself. Also confirm that you are on a current version: many problems have already been fixed by the project.

The official README recommends: if the game closes after a few seconds or “graphics device was lost” appears, update the graphics driver by downloading it straight from the NVIDIA, AMD or Intel website and, on Windows, switch to DirectX 12 in Settings > Graphics > Graphics API (the launcher offers this after a crash like that). On older cards without Vulkan, the README says openOMSI falls back by itself to DirectX 12 and then to OpenGL. According to the 0.1.1234 CHANGELOG, on Windows DirectX 12 is tried first and the Vulkan and OpenGL interfaces only start when it cannot draw, which keeps their loader from breaking startup on notebooks with two GPUs; a card without a DirectX 12 driver draws on its own Vulkan or OpenGL, not on Microsoft's software renderer. Since 0.2.17, Windows also has the ANGLE (DirectX 11) option, for chips whose DirectX 12, Vulkan and OpenGL drivers do not run the game (the user guide mentions Intel HD Graphics 2000 to 4000 and Radeon HD 5000/6000): it is tried last and only if the ANGLE DLLs are next to openomsi.exe; the guide says the Windows package should include them, and that has not been checked in every version. It is neither a requirement nor a promise that those chips will work. Since 0.3.0, openOMSI starts again on older processors without the POPCNT instruction (before, Windows could say “this app can’t run on your PC”, code 0xC000001D); if that appears, update. When the game ends with an error, the launcher shows Copy report and Report on GitHub (0.2.39 gave the desktop launcher back the notice of a game that ends with an error or is sent away by the server). Since 0.2.18, Setup > Export diagnostics (in the 0.3.40 notes the equivalent feature appears as Support package, in Settings; if you cannot find the old name, look for this one) produces a support ZIP (versions, graphics card and driver, graphics settings, controls and the last map and bus, with no folders, names, chat, LAN codes or addresses); nothing is sent, and the folder opens so you can look at the contents before attaching it to a report.

Messages from old builds. The error “The code execution cannot proceed because VCRUNTIME140_1.dll was not found” could appear in old versions, on PCs without the Visual C++ Redistributable; since 0.1.476 the required runtime DLLs ship with openomsi.exe (game and dedicated server). If you see that message, update openOMSI before installing anything; if it persists in a current build, treat it as abnormal and collect the report. Likewise, 2 GB cards could lose the graphics device from lack of memory in the first frames: since 0.1.455, cards of up to 4 GB use smaller memory blocks and the texture budget is reduced to what the card can hold. This is not a minimum requirement and does not guarantee performance. According to the 0.3.33 notes, the Video memory setting now limits everything the game keeps on the card (before, it could use gigabytes beyond the set value, and 8 GB cards spilled over into system memory) and a card that runs out of memory no longer loses the whole image; if the game closed or lost the picture from lack of video memory, update. According to the 0.3.41 and 0.3.42 notes, on DirectX 12 and Vulkan the Video memory limit now also counts the empty space the driver is still holding (before, the frame rate could collapse after about half an hour, with the card paging); if that happened to you, update. The Optimise for my PC button (0.3.37) and the quality presets, from Low (Vanilla) to Ultra, help you find lighter options. On Android and Linux with OpenGL or GLES, builds before 0.1.759 could show a black screen or close on some devices: update first (this does not mean every OpenGL problem is gone). The new launcher (0.2.36) needs WebView2 on Windows and WebKitGTK on Linux. Up to 0.2.38, where it could not open, the game's own launcher opened instead; since 0.2.39 that old launcher no longer exists, and the game says why the launcher did not open and where it should be: see the question about the new launcher. Since 0.2.31, a windowless watchdog tries to repair by itself a version that hangs or closes before the launcher (it installs a newer one, goes back to the previous one or opens in safe mode): see the question about the start-up watchdog. Anyone who installed 0.2.28 on Windows needs to download 0.2.29 by hand, because that version's launcher does not open and so cannot update itself.

If it still won't open, you can submit an equipment test: Submit my test, choosing that openOMSI could not start. Hardware, version and, if you like, the log help the community understand on which equipment openOMSI opens.

What to check

  • openOMSI is up to date (an already-fixed bug is resolved by updating; see the CHANGELOG).
  • The original OMSI 2 is installed and was found (Setup page; the message “The original OMSI 2 was not found” says what is missing from the chosen folder).
  • openOMSI is in a folder with write permission, outside Program Files.
  • The graphics card driver was updated from the manufacturer's website.
  • You tried another graphics API in Settings > Graphics > Graphics API (for example DirectX 12).
  • Does the new launcher open? On Windows it needs WebView2 and on Linux WebKitGTK (see the question about the new launcher).
  • The launcher's error report, the game.log (in the user's .openomsi folder; since 0.3.42 it may be somewhere else, if someone changed it in Setup > .openomsi folder) or the ZIP from Setup > Export diagnostics can help whoever answers.

Learn more

The new launcher won't open, or a different launcher appears. What should I check?

Depends on the version

Since 0.2.36 (CHANGELOG), on Windows, macOS and Linux, a normal start of openOMSI opens a new launcher: the duty on a single page, with the bus rotating in a preview drawn by the game itself, plus Multiplayer, Profile, Mods, Settings, Controls, running games and Setup. Since 0.3.37 the Drive page fits on a single screen, with the Big Map (default), Control Room, Classic+ and Classic layouts in Settings > Launcher layout, and the menu is split into Play, Content, Options and Help (0.3.41 put the Troubleshooting page in Help and the Add-ons list in Content); so what you see may differ from the description above. It needs WebView2 on Windows (part of Windows 10 and 11) and WebKitGTK 4.1 on Linux (the libwebkit2gtk-4.1-0 package). From 0.2.36 to 0.2.38, where it could not open, the game's own launcher (the previous one) opened instead, which is why you could see a different screen from the one described in tutorials. Since 0.2.39 (CHANGELOG), that old launcher was removed: the desktop launcher is the only one, and where it is missing or cannot open its window (without WebView2 on Windows, which is offered for installation, or without WebKitGTK on Linux) the game says why and where it should be, instead of opening another launcher.

Since 0.2.37, on a Windows without WebView2, the game offers to install it with Microsoft's installer and opens the new launcher once it is installed; in 0.2.36 this did not exist (up to 0.2.38 the offer came from the game's own launcher). The launcher README we consulted still mentions openomsi --launcher and the OMSI_CLASSIC_LAUNCHER=1 variable as a way of opening the game's own launcher on purpose but, as the 0.2.39 CHANGELOG says that window was removed, do not count on it in new versions (we have not confirmed what those commands do now). The project says it uses its own build of Tauri that avoids WebKitGTK's blank window on NVIDIA cards on Linux. Since 0.2.42, the WebView2 installer is offered only when the runtime is really missing (before, any launcher failure in the first two seconds was taken as its absence, and the offer appeared at every start); with the runtime installed, the launcher is tried again with a fresh profile and shows its own error.

If the launcher opens but the game does not, see the question about the PC that won't open openOMSI. If a new version broke the whole start-up, see the question about the start-up watchdog. On phones the launcher is a different one, made for Android (and for iPhone and iPad, as in the TestFlight Beta; since 0.2.39 the “Cross-Platform Launcher” option no longer exists on iPhone and iPad, and 0.3.0 brought a first launch that welcomes you and helps find the OMSI 2 copy; according to the 0.3.40 notes, the launcher on iPhone, iPad and Mac gained what it lacked compared with the desktop, such as Depot, Timetable and the key editor).

What to check

  • Windows: is WebView2 installed? It is part of Windows 10 and 11; on a Windows without it, 0.2.37 or newer offers to install it.
  • Linux: is the libwebkit2gtk-4.1-0 package installed?
  • Are you on 0.2.38 or earlier and a screen different from the tutorials appeared? It may be the game's own launcher, which also let you choose the duty and start the game; since 0.2.39 this no longer happens (a message appears saying what is missing). The button names may differ from those in tutorials.
  • The new launcher in 0.2.36 and 0.2.37 could show the wrong version (0.1.0); this was fixed in 0.2.37 and, on macOS and Linux, in 0.2.38. Check the version from the name of the downloaded file when making a report.

Learn more

I updated openOMSI and now it won't open. What are the start-up watchdog and safe mode?

Depends on the version

Since 0.2.31, the program's first act is to start a small, windowless watchdog. If the launcher fails, ends with an error or does not draw its first frames within two minutes (it is then closed), the watchdog steps in when that version has never opened on that computer or has failed twice in a row. According to the CHANGELOG and the user guide, it tries, in this order: 1) installing a newer version, if there is one (its program has to open before anything is replaced); 2) going back to the version before the last update, which is kept until the new one has opened successfully once; 3) opening one more time in safe mode (basic graphics, no plugins); 4) showing a message saying what to do. Each step appears in a message box, in the game's language.

A version that failed is not installed again on that computer, only a newer one. The project can also list a published version as broken, and it is replaced at the next start even if it opens. A crash in the middle of a session does not count as a broken start and changes nothing. The watchdog keeps its record in ~/.openomsi/guard/ (guard.log, starts.json, bad-versions), and OMSI_NO_GUARD=1 turns it off. On Android, after a start that did not reach the launcher, the app looks for an update at the very next start (the system installer asks you); going back to the previous version is left to the system.

Versions before 0.2.31 do not have the watchdog: anyone who installed 0.2.28 on Windows needs to download 0.2.29 by hand, because 0.2.28's launcher does not open and so cannot update itself. This does not guarantee that every broken start will be repaired: if the final message appears, download the latest version from the Releases page and keep the game.log or the ZIP from Setup > Export diagnostics for a report.

What to check

  • Wait for the watchdog's message boxes: it can take a few minutes (up to two minutes of waiting before it acts).
  • Look at the record in ~/.openomsi/guard/guard.log (on Windows, C:\Users\<você>\.openomsi\guard).
  • If you are on 0.2.28 on Windows, download 0.2.29 or newer by hand.
  • When reporting, give the version and attach the game.log or the ZIP from Setup > Export diagnostics (check the contents first).

Learn more

How do I install on macOS and Linux?

Depends on the version

macOS: download openOMSI-<versão>-macos-arm64.zip (Apple silicon) or openOMSI-<versão>-macos-x64.zip (Intel), extract it and open openOMSI.app. The first time, macOS may refuse an app downloaded from the internet: right-click the app and choose Open (and Open again) or, according to the README, run xattr -dr com.apple.quarantine /caminho/openOMSI.app once. Since 0.3.37 there is also a .dmg disk image, for dragging the app to Applications, next to the zip (the notes do not say whether the first opening still asks for the step above). An app opened straight from the Downloads folder cannot update itself: openOMSI warns you and says what to do. A new openOMSI.app in Applications keeps its content in ~/.openomsi/content, instead of creating the OMSI folders among the applications; content already installed there stays in use (0.1.1223). On the Apple M4, there were Metal shader fixes in 0.2.21 and 0.2.22 (4x MSAA, snow, lamps in fog and street-lamp shadows compile again); if you are on an older version, update.

Linux: download openOMSI-<versão>-linux-x64.zip or openOMSI-<versão>-linux-arm64.zip, extract it and run ./openomsi (use chmod +x openomsi if it does not start). A Vulkan or OpenGL driver is required (Mesa, for example the mesa-vulkan-drivers package, or the GPU manufacturer's driver) and, for the new launcher (0.2.36), libwebkit2gtk-4.1-0; without it, up to 0.2.38 the game's own launcher opened and, since 0.2.39, the game says what is missing and where it should be (the old launcher was removed). On Linux with OpenGL, builds before 0.1.759 could show a black screen or close on some devices; update. The window size can be chosen in Settings > Graphics > Window size, steering-wheel hats are read (0.1.927) and, under gamescope, the game opens in full screen (0.1.1120); an update on Linux could open the old launcher instead of the current one, which was fixed in 0.1.1028. According to the 0.3.42 notes, the data folder can be changed in Setup > .openomsi folder; on macOS the file that stores that choice sits next to the .app, so that an app update keeps it. For Linux the notes list only the zip (no installer). This is not an announcement of official support for any specific device.

In both cases the original OMSI 2 is also required, and the folder must allow writing.

Learn more

How do I update openOMSI?

Depends on the version

According to the README, since 0.1.7 the launcher updates itself: when it opens, it looks for the latest version and, if there is one, asks whether you want to download it (Update now); if you accept, the download is checked against the SHA-256 that GitHub lists, the program is replaced and openOMSI restarts. On Android, the update goes through the system installer: the first time, Android asks you to allow openOMSI to install apps and then asks “Do you want to update this app?” (Update replaces it and opens again; Cancel returns to the launcher as “not updated”); the APK has to be signed with the same key as the installed app, which is the case for the releases. Your mods, content and settings are kept. According to the CHANGELOG, 0.2.39 made the desktop launcher check for, offer and install updates again (fixes issue #2309); we cannot say from the sources in which earlier versions this failed, so check whether the notice appears in yours.

Since 0.3.0 there are two version channels, chosen in Settings > General > Updates: Stable (the tested ones, the default) and Beta (each new version before it is tested, for testers); the version selector marks the Betas. Releases are now started by hand by the maintainers (a push to main no longer publishes by itself), and a tested Beta can be promoted to Stable; that is why a Beta's numbering may differ. 0.3.33 was published as a normal release (Stable), but its notes say “Early release, expect bugs”; it includes what came in Betas 0.3.30 to 0.3.32. When a Beta is ahead of the Stable, it brings new features that do not yet apply to the Stable: see the Beta FAQ. On the date of this review (26/10/2026), the Stable 0.3.42 (from 25/10) already includes what came in Betas 0.3.34 to 0.3.41, and the notes for 0.3.37 and 0.3.42 carry the same warning “Early release, expect bugs”. In the same area you can turn off the check on opening, install without being asked or check right away (Check now). Since 0.2.39, the Choose a version option, in the Updates area of the settings, lists the published versions and installs the one you choose; an older version stays installed until you choose the latest again (according to the CHANGELOG; the user guide may not describe this yet). Note a change in the online protocol (LAN 15, since 0.3.40): to play in a session or on a server, players and server must be on 0.3.40 or newer, because old and new versions cannot join each other's session; update both sides. If you installed in Program Files (or, on macOS, opened the app straight from the Downloads folder), automatic updating doesn't work: openOMSI tells you what to do; move it to a folder with write permission.

The launcher checks for an update again every 30 minutes while it is open and after a game started by it ends. During a session, the game looks for a new version, downloads it in the background and tells you with a card over the browser; it is only installed when the session ends, never during the session. The card can be turned off in “Tell me about a new version during a session”. Since 0.1.1515, updates that failed with “Timeout” on slow or unstable connections are retried, an interrupted download resumes where it stopped and, if the GitHub API does not respond, the version is requested from github.com.

If a new version does not open, since 0.2.31 there is the start-up watchdog, which tries to install a newer one or go back to the previous one (see the question about the watchdog). Because the project receives fixes very frequently, problems described in this FAQ may already be solved in a later build: check your version and update before trying other solutions.

Learn more

Will openOMSI come to iOS?

Depends on the version

It is already out, in testing: openOMSI is available as a Beta for iPhone and iPad through TestFlight, Apple's official testing programme, with the official invitation. It asks for iOS 18.0 or iPadOS 18.0 (or newer) on a compatible device. The implementation entered the source code in 0.2.36 (CHANGELOG), and the repository has docs/APPLE.md, which describes the game on iOS with touch controls and a launcher of its own. According to the 0.3.40 notes, the launcher on iPhone, iPad and Mac gained what it lacked compared with the desktop (the Depot and Timetable pages, the key editor, guided multiplayer invitation and joining, among others).

It is still a Beta and not a final App Store release. TestFlight versions have their own update cycle: do not assume the numbering is the same as the Stable version for Windows, Linux, macOS and Android. Performance, content compatibility and stability may vary with the device and the Beta version, and none of this is a guarantee. Building from source with Xcode (docs/APPLE.md) is still possible. For the steps, see the question about how to install on iOS.

Learn more

How do I install it on iOS?

Depends on the version

openOMSI is available for testing on iPhone and iPad as a Beta, through Apple's official TestFlight (iOS 18.0 or iPadOS 18.0, or newer, on a compatible device). It is not a final App Store release. Step by step: 1) install the free TestFlight app from the App Store. 2) Open the official invitation. 3) Accept the invitation and install the openOMSI Beta. 4) Transfer the files of the original OMSI 2 to the device. 5) Open openOMSI, go to More > Setup and select the OMSI 2 folder.

openOMSI does not include the OMSI 2 files: you need an original copy of the simulator. The files can be transferred through the Files app or Finder, arranged in the openOMSI/OMSI 2 folder; according to docs/APPLE.md, you can also choose a copy on iCloud Drive or on compatible external storage in Setup. Since 0.3.0, a first launch welcomes you, shows how to copy OMSI 2 and finds the copy by itself.

TestFlight versions have their own update cycle, and the numbering may not be that of the Stable version on the other platforms. Performance, content compatibility and stability may vary with the device and the Beta version. Those who know how to compile can also use Xcode 26, Rust and XcodeGen on a Mac (docs/APPLE.md, script scripts/build-apple.sh); that is a path for developers, with no guarantee. Be wary of third-party files or instructions that promise “openOMSI for iOS”: use only the official invitation above or the official Releases page.

Learn more

Performance and requirements

FPS, whether your hardware is compatible, loading time, and what is not an official requirement.

Are there official minimum requirements?

Depends on the version

In the public sources consulted (README and documentation), no minimum or recommended hardware requirements have been published (processor, memory, graphics card or disk). What is documented is: having an original OMSI 2 installed; on Android, an arm64 device with Android 8.0+ and a GPU with Vulkan 1.1 (or OpenGL ES 3); on Linux, a Vulkan or OpenGL driver. The desktop launcher (new since 0.2.36) uses WebView2 on Windows (part of Windows 10 and 11) and WebKitGTK 4.1 on Linux; since 0.2.39 it is the only launcher (the game's own launcher window was removed): where it is missing or cannot open its window, the game says why and where it should be, instead of opening an old launcher; and since 0.2.37 the game offers to install WebView2 when it is missing (on Windows). For very old graphics cards, since 0.2.17 there has been a DirectX 11 (ANGLE) option on Windows (details here). For VR, the documentation mentions an active OpenXR runtime and a card with DirectX 12 support (Windows). On iPhone and iPad, openOMSI can be tested as a Beta through Apple's official TestFlight (it requires iOS 18.0 or iPadOS 18.0, on a compatible device; it is not a final App Store release, and the numbering of TestFlight builds has its own cycle and may not match that of the Windows, Linux, macOS and Android versions); the implementation entered the code in 0.2.36, and building with Xcode (docs/APPLE.md) is still possible. Since 0.2.60 / 0.3.0 there are the Stable (the default) and Beta (for testers) channels in Settings > General > Updates; 0.3.0 also started opening again on older processors without the POPCNT feature. Since 0.3.37 there is also an installer for Windows (per user, no administrator rights needed) and a disk image (.dmg) for dragging the app on macOS, next to the zip files.

Practical guidance from Portal OmsiModsBR (not an official requirement): computers with less than 8 GB of RAM are treated by the community as extremely not recommended for openOMSI. This figure is not required by the project: it is this portal's practical recommendation, the same one used by the equipment check (hwcheck).

That is why any “minimum PC” number you see out there is not official. For your case, the most reliable path is to test it and check other people's reports.

On this site, three kinds of information are treated separately: official (confirmed by the openOMSI project), practical guidance from Portal OmsiModsBR (community interpretation and recommendation, never presented as an official requirement) and community data (results of the tests submitted to Compatibility).

Learn more

What kind of computer or phone is most suitable for openOMSI?

Depends on the version

Practical guidance from Portal OmsiModsBR. These are not official openOMSI requirements. “Running” and “running well” are different things: a device may open openOMSI and still have inadequate performance.

Computer. Very old hardware, especially graphics cards from the generation when DirectX 9 or 10 was the standard, and legacy drivers, may manage to start openOMSI but with inadequate performance. On those computers, the original OMSI 2 may offer a better experience. CPUs and GPUs from that era, especially when they rely on integrated graphics and old drivers, may be well below the practical profile of the modern renderer. In recent versions, old chips that failed to start because of missing OpenGL features (such as the Intel HD 2500) started to open (0.1.1234), which does not mean adequate performance. For chips whose DirectX 12, Vulkan and OpenGL drivers do not run the game (the documentation mentions Intel HD Graphics 2000 to 4000 and Radeon HD 5000/6000), Windows has had a DirectX 11 (ANGLE) option since 0.2.17: it is tried last, after the others, and only works if the ANGLE DLLs (libEGL.dll and libGLESv2.dll) are next to openomsi.exe; without them it is ignored and the log says so. We could not confirm whether every package already includes those DLLs, and running does not mean running well (fixes for this option came out in 0.2.26 and 0.2.28). As a generational reference (not a requirement), cards from the DirectX 11 generation or later tend to be a more suitable starting point, initially with lighter settings. Modern cards with well-supported Vulkan or DirectX 12 and a current driver are the most suitable profile for openOMSI. The processor generation alone does not decide: the graphics card, the driver, graphics support and the observed results all matter. Memory (RAM). According to the practical guidance from Portal OmsiModsBR, less than 8 GB of RAM is considered extremely not recommended; with 8 GB, use calls for caution (large maps and other open programs can exhaust the memory) and 16 GB gives comfortable headroom. This is not an official openOMSI requirement. On computers with integrated graphics, video memory comes out of the system's own RAM, and memory in two modules (dual channel) usually helps. Since 0.3.37, the Optimise for my PC button (Settings > Graphics in the launcher and Options > Graphics in the game) measures your computer for about a minute during a session and tries lighter settings one by one, keeping only those that really bring frames; your settings are saved first and Restore my previous settings brings them back. It is a help, not a guarantee of FPS. According to the 0.3.42 notes, the quality presets run from Low to Ultra and Medium (Vanilla+) is the one the game uses when it starts; weaker equipment can start from Low or Medium.

Phone. The current Android version of openOMSI is ARM64, and the public releases consulted have no 32-bit Android build. “32-bit” also does not mean “lightweight version for a weak phone”: the processor architecture does not work as a graphics quality level. Meeting the documented technical requirements (Android 8.0 or newer and Vulkan 1.1, with fallback to OpenGL ES 3) does not guarantee good performance: it is one thing for the app to start and another for the experience to be playable.

openOMSI does not necessarily require a top-end phone, but it is software built on modern technologies, and relatively recent devices tend to be more suitable. A very old or very basic device may have inadequate support or little capacity, and a new entry-level phone can also have limitations: the device's year alone does not define performance. On the first start on a phone, the app uses lighter graphics defaults (for example 2x MSAA, no ambient occlusion and 60 FPS), which can be changed in Settings. On iPhone and iPad there is a Beta version through the official TestFlight (iOS or iPadOS 18.0 or newer, on a compatible device): performance, content compatibility and stability may vary with the device and the Beta version.

If an old computer runs the original OMSI 2 well, there is no obligation to move to openOMSI: the original remains a valid option. The equipment tests that the community sends to Compatibility will be used to refine this guidance; the project does not publish an official table of graphics card, processor or memory. The equipment check (hwcheck) applies the practical guidance from Portal OmsiModsBR, which is not official.

Learn more

Why does my PC run OMSI 2 well but not necessarily openOMSI?

Depends on the version

The original OMSI 2 and openOMSI draw the image in different ways. OMSI 2 is a 32-bit program from the DirectX 9 era (general knowledge). openOMSI is 64-bit and uses modern graphics APIs, through the wgpu library: Vulkan, DirectX 12 or Metal (per the README). They are different “toolsets”, and each graphics card and each driver behaves differently with each of them.

That is why 60 FPS in OMSI 2 does not mean similar performance in openOMSI. Older equipment, integrated graphics or outdated drivers may do fine with the old toolset and struggle more with the modern one (general knowledge). This does not mean openOMSI is worse, or that your equipment is bad: they are different situations, and the project is still at an early stage.

If an older computer runs the original OMSI 2 well, there is no obligation to move to openOMSI: the original OMSI 2 remains a valid option. There are also community initiatives aimed at improving the experience and performance of the original OMSI 2.

What to check

  • Update the graphics card driver from the manufacturer's website (NVIDIA, AMD or Intel).
  • Try another graphics API in Settings > Graphics > Graphics API (Vulkan, DirectX 12 or OpenGL; on Windows, on very old chips, also DirectX 11 (ANGLE), since 0.2.17). The user guide also mentions this option under the name Display, depending on the launcher version.
  • Try the Vanilla graphics mode (or the Low preset, which uses Vanilla, since 0.3.42) instead of Enhanced.
  • Compare with a light map before testing a large map.

Learn more

Is openOMSI lighter than OMSI 2?

Depends on the version

We cannot say that, nor the opposite: the two simulators have very different graphics and processing architectures, so openOMSI may run better on one computer and worse on another. The project aims to use several processor cores, 64 bits (without the original programme's 2 GB memory limit) and a modern design, but that is a project goal: we found no FPS comparison between openOMSI and OMSI 2 in public sources. The user guide has measurements, but they compare openOMSI with itself across versions, on a Mac with an M4 chip (for example, Berlin-Spandau with traffic, passengers and a storm: from 14 to 69 FPS; and a large map that went from about 8.75 GB to 1.93 GB of memory), and not with OMSI 2.

In practice, the result depends on your hardware, the map, the mods and the version. In some cases it may be better, in others worse. So avoid treating it as a rule.

Learn more

Does openOMSI run better than OMSI 2?

Depends on the version

It depends, and there is no universal answer. openOMSI may run better than OMSI 2 on some computers and in some scenarios, because it has a modern architecture that uses several cores and features the original does not, and the project has published several optimisations (idle passengers, indexing of large installations, video memory use, AI hitches and, more recently, reworked AI traffic that ran in fixed 20 ms steps (0.2.28; the AI vehicles' scripts went back to running once per frame in 0.3.0), steadier frames with less work per frame (0.2.36) and a roundabout search 2 to 5 times faster when loading the map (0.2.38)). 0.2.39 moved the whole simulation to a fixed 120 steps per second and reorganised the core to read the map data without locks; as that weighed on frames below 120 FPS, 0.2.44 reduced it to 60 steps per second (at most four per frame) and 0.3.0, a stabilisation release, gave smoothness back to large maps with a lot of traffic (AI scripts, passengers, pedestrians, timetables and weather once per frame). The project cites gains with the simulation on its own thread (OMSI_SIM_THREAD=1, which was an experimental mode, off by default; according to the 0.3.37 notes, it now runs on its own thread by default), but that is not a comparison with OMSI 2. On other hardware, especially old GPUs and legacy drivers, OMSI 2 may perform far better. Versions 0.3.30 to 0.3.33 (Stable) brought further improvements: lighter rain on windows, less processor use with the FPS limiter, less video memory, the end of a small hitch every few seconds with timetable traffic and the Video memory setting. After them, the notes for Stable 0.3.37 cite less CPU and GPU time per frame (a shorter ambient occlusion pre-pass, lighter culling, Enhanced's sky cheaper above 60 FPS and the city at night cheaper); 0.3.40 (Stable in 0.3.42) reduced the game's memory again (by the measure of whoever wrote the note, on a Radeon 680M on Linux, from 1058 to 824 MB on the Grand Paris-Moulon map); and 0.3.41 (likewise) reduced the video card's work in Enhanced by day (27.4 to 13.0 ms per frame on an Apple M4 in clear daylight: it is the measurement of that scene, not a gain to expect on every PC). Performance changes from version to version, and there are open reports of FPS drops in some versions and on some devices.

If you want to know about your own case, the best approach is to test on your hardware, on the map you plan to use, and compare with what other people report.

Learn more

How do I know if my PC is compatible?

Depends on the version

Since there is no official requirements list, what you can check is: whether you have the original OMSI 2, whether the system is Windows, macOS or Linux (x64 or ARM64), and whether the graphics card supports Vulkan or DirectX 12 (if it doesn't, openOMSI tries another API on its own: according to the user guide, in automatic mode it tries, on Windows, DirectX 12, then Vulkan, OpenGL and, last of all, DirectX 11 (ANGLE, since 0.2.17); on other systems, Vulkan and then OpenGL; since 0.1.1234, a card without a DirectX 12 driver draws on its own Vulkan or OpenGL instead of using Microsoft's software renderer).

The safest way is to try it: download the version (Stable is the default and the recommended one for most people; Beta is for testers and may have different version numbers), open it on a light map and see. If it errors, the launcher offers Copy report and Report on GitHub, useful for asking for help; in Setup, Export diagnostics (since 0.2.18) produces a support ZIP with versions, graphics card, driver and graphics settings, with no folders, names, chat or addresses, and nothing is sent: open it and check it before attaching it. Since 0.2.31, if a version hangs or closes before the launcher appears, a windowless watchdog tries to repair the start-up by itself (installing a newer version, going back to the previous one or opening in safe mode), with a message at each step. Recent versions improved behaviour on cards with little VRAM, including 2 GB cards that could previously lose the graphics device from lack of memory in the first frames (0.1.455). This does not establish a minimum requirement and does not guarantee performance. In 0.1.1120, large textures waiting for compression started to upload at half resolution in the meantime, which kept a large articulated bus from exhausting the memory of a 3 GB card during loading: it is a memory-peak optimisation, not a requirement (what fits depends on GPU, driver, backend, map, bus, resolution and settings). Since 0.3.0, openOMSI also starts again on older processors without the POPCNT feature (before, “this app can't run on your PC” appeared). Since 0.3.31 (Beta; in the Stable since 0.3.33), on OpenGL and DirectX 11 a dedicated graphics card keeps the chosen MSAA, shadows and texture memory (before, it could be taken over by a small shared chip), and in 0.3.32 (Stable in 0.3.33) VR headsets that stayed black (PICO Neo3 Link with SteamVR) started to show the game. On iPhone and iPad, the TestFlight Beta requires iOS or iPadOS 18.0 or newer. If the equipment is weak, since 0.3.37 there is the Optimise for my PC button (see the question about the most suitable equipment). To tell a content problem from an equipment problem, the Content test (0.3.37) and, in 0.3.42, the Troubleshooting page (in Help) show what is wrong with the installed content (missing bus parts, packages waiting for the bus, failed installations). According to the 0.3.40 notes, the support package also appears as Settings > Support package and works on Android.

Equipment reports help improve the community's guidance: Submit my test, including if openOMSI never got to open. For an automatic check, use the equipment check (hwcheck): it applies the practical guidance from Portal OmsiModsBR, including the 8 GB RAM cut-off, which is not an official requirement.

What to check

  • The original OMSI 2 is installed.
  • The graphics card driver is up to date (manufacturer's website).
  • Your system is one of the published platforms (Windows, macOS, Linux).
  • On Windows, WebView2 is installed (the desktop launcher needs it; Windows 10 and 11 already include it, and since 0.2.37 the game offers to install it). On Linux, libwebkit2gtk-4.1-0. Without that, since 0.2.39, the game says why and where the launcher should be (it no longer opens a launcher of its own in its place).
  • You tested first with a standard map, such as Grundorf.

Learn more

openOMSI opens on my PC. Does that mean it is compatible?

Not necessarily. These are different things: technical compatibility (the system and the graphics card are supported), being able to start, having a playable experience and performance on specific content (a map and a bus). Opening the launcher does not prove that a large map loads, that the FPS is good or that a specific bus works.

On old hardware, opening may be only the beginning: recent versions can start on chips that used to fail (for example, with the DirectX 11 (ANGLE) option on Windows, since 0.2.17), and that does not prove the game becomes playable. Test from simple to complex: a light map, then the map and the bus you want. If something fails, record the equipment, version and backend (Vulkan, DirectX 12 or OpenGL); this helps the community. There is no official requirements table, and the original OMSI 2 remains a valid option if it runs well for you.

What to check

  • Did the launcher open? Did a session open? Did you actually drive?
  • Is the FPS on your map and your bus acceptable?
  • Are the graphics card driver and openOMSI up to date?

Learn more

How do I know if my phone is compatible?

Depends on the version

According to the official documentation, the phone must be arm64, have Android 8.0 or newer and a GPU with Vulkan 1.1 (if there is none, the app tries OpenGL ES 3). In the public sources consulted there is no device list and no memory or processor requirements. For iPhone and iPad, openOMSI is in Beta through Apple's official TestFlight (it requires iOS or iPadOS 18.0 or newer, on a compatible device; it is not a final App Store release, and performance, content compatibility and stability may vary by device and Beta version).

Because the variety of devices is huge, the safe way is to test. If the app closes, the launcher shows, the next time it opens, a report of what happened, with the Copy report option.

Equipment reports help improve the community's guidance: Submit my test, including if openOMSI never opened. Recent builds fixed specific OpenGL ES failures and the gallery problem of indexing textures (0.1.523), but that does not create a requirement or a performance guarantee. If the phone became slow right after copying OMSI, also see the question about textures in the gallery. A black screen or a crash on launch on some devices with OpenGL or GLES was addressed in 0.1.759: update before concluding that the device is not suitable. There was also a black screen in place of the game on phones whose graphics driver cannot compile some of the new 0.2 shaders (fixed in 0.2.1, with the game reopening the device without those effects; the snow falls without flakes in that case) and on Adreno 6xx, 7xx and 8xx chips (addressed in 0.1.1502, by rebuilding the shader cache). On the first start on a phone, the app uses lighter graphics defaults (2x MSAA, no ambient occlusion, a 1024 shadow map, 60 FPS and an object distance of 900 m), and below 45 FPS the 3D image is drawn smaller, down to 0.6 of the screen; all of it can be changed in Settings (since 0.3.30, according to the notes, these phone defaults are kept). Since 0.2.36 there is a launcher of its own for phones (an icon bar, full-screen pickers), and the app has opened faster since 0.2.28. In 0.3.0 the phone launcher got its own storage browser on the Mods page (folder, .zip, .7z and .rar). Since 0.3.39 (Stable in 0.3.42), after a crash, the next opening of the app shows the dialogue of the last unexpected close, with the report and the GitHub buttons, which before was lost along with the launcher. According to the 0.3.40 notes, the support package (Settings > Support package) began to work on Android, saved in the openOMSI storage folder, and the launcher on iPhone, iPad and Mac gained the settings and pages it lacked compared with the desktop one (including Optimise for my PC).

What to check

  • An arm64 device with Android 8.0 or higher.
  • Permission to access all files granted.
  • The OMSI 2 folder copied in full to the phone.
  • Enough free space and memory (there is no official number).

Learn more

Why does openOMSI take so long to open or load?

Depends on the version

Several things happen while loading: reading the map and its files, preparing textures and the scene drawing. The bigger the map and the more content it has (more files and textures), the longer it takes, which is expected on large maps. Heavy mods also increase the time (general knowledge).

The public sources consulted do not precisely explain the cause of a specific delay. If it hangs while loading a very large map, look for the case in the GitHub Issues and report your version and the content you used.

On large OMSI installations, the launcher used to show an empty list for minutes. Since 0.1.850 maps appear immediately and buses appear as the folders are read, with the progress shown in the status line; older builds may look frozen at that moment. On NVIDIA cards without Resizable BAR on Vulkan, loading could take minutes and the game ran at a few FPS; this was fixed in 0.1.1422 (0.1.1423 only changed where the fix lives in the code).

Recent versions have also sped up parts of the start: the graphics driver keeps the compiled pipelines between launches on Vulkan and OpenGL, so from the second launch the game usually starts faster (0.2.21); the game window shows the loading screen at once and keeps responding while the shaders are built, and the launcher draws the page from the first frame and loads the 3D preview afterwards (0.2.28); the roundabout search when loading a map became 2 to 5 times faster (0.2.38). If the launcher hangs, closes with an error or does not draw its first frames within two minutes, the 0.2.31 watchdog tries to repair the start-up by itself (newer version, previous version or safe mode) and tells you by message. This is not a guarantee of loading time: it depends on the map, the mods and the equipment. Since 0.3.0, launcher.log also says where the launcher hung, which is useful when reporting the case. According to the notes, 0.3.30 started keeping compressed textures in ~/.openomsi/cache/textures, so that maps and buses load faster from the second opening, and 0.3.31 compiles the shaders on several cores on Vulkan (in a Windows test, the map was ready in 12.9 s instead of 22.4 s on the first opening after an update); both are in the Stable since 0.3.33. According to the 0.3.37 notes, the launcher's route map opens quickly on large maps (the Berlin-Spandau preview in about a second instead of 88 s, by the measure of whoever wrote the note); 0.3.38 (Stable in 0.3.42) went back to decoding the painted ground textures of new areas in the background, with fewer hitches when driving into new regions; and, in 0.3.42, a timetable bus that appeared before it was on the video card (for example, with the clock set far ahead) no longer freezes the frame for 120 to 300 ms. If loading fails because of missing content, the Troubleshooting page (Help, 0.3.42) and the Content test (0.3.37) help you see what is missing.

What to check

  • Wait a little longer the first time you open a large map.
  • Try a default map to compare.
  • Check whether the computer has free memory.
  • If it hangs for good, keep the game.log (in the .openomsi folder of the user profile; the launcher.log is next to it) and, in Setup, use Export diagnostics to produce a support package (0.2.18) that you can check before attaching it.
  • With ambient sound on (Settings > Sound > Ambience, 0.2.27 onwards), the game downloads about 300 MB of recordings once to .openomsi/ambience on first launch (not on Android, according to the 0.2.27 notes); we have not confirmed that this slows loading, but it is worth knowing if your connection or disk is slow.
  • On Android, if the problem started right after copying many files or installing mods, the gallery or the media scanner may be indexing thousands of textures (it is not always the cause). Since 0.1.523 openOMSI creates .nomedia automatically to reduce this; on old versions, update before any other step. Do not delete the images.

Learn more

Why do I have high FPS but some feature doesn't work?

Depends on the version

FPS measures the speed at which the image is drawn, not whether everything in the mod or bus is working. A feature may fail for another reason: openOMSI doesn't support some detail of that mod yet, the mod's script depends on something different, or there is a bug in the program itself. This doesn't mean your hardware is the problem.

Check whether the feature has already been reported for that mod or version and, if nobody has reported it, consider reporting it. openOMSI problems go to GitHub Issues (or to the project's Discord, according to the README); the compatibility of a specific mod can be looked up in the community database. When reporting, it helps to give the openOMSI version, the map, the bus, the game.log and, since 0.2.18, the package from Setup > Export diagnostics. People who work with mods can also use the game's development tools (Ctrl+Shift+D, 0.2.28), which show the vehicle's script variables. Since 0.3.37, the Content test (in the 0.3.41 and 0.3.42 notes the same test appears as the Model test tab inside Troubleshooting, in Help) loads any bus, map, mod, file or folder the way the game loads it and lists all the warnings; on the command line, openomsi --check <arquivo ou pasta> [--deep]. The exact names of the screens may vary with the version.

What to check

  • Does the feature work in the original OMSI 2 with the same mod?
  • Does it work on another bus or a default map in openOMSI?
  • Is there a newer version of openOMSI?
  • Has someone already reported the same case in the Issues?

Learn more

Do CPU, GPU and RAM affect performance?

Depends on the version

Yes, all three. The project's documentation says openOMSI uses several processor cores (for example, to decide what to draw and for traffic AI; since 0.2.39 the scripts of map objects run only near the bus and in parallel; according to the 0.3.37 notes, the simulation runs on its own thread by default), so the CPU matters on maps with a lot going on. The GPU and the driver determine drawing quality and speed. RAM (and video card memory) matters on large maps: there are reports of running out of memory in those cases. According to the practical guidance from Portal OmsiModsBR (unofficial), less than 8 GB of RAM is considered extremely not recommended.

In general, which one is the limit depends on the map and the settings. Simpler hardware (such as integrated graphics, a phone or a card with little memory) gets a lighter image by default, according to the changelog. Recent versions improved behaviour on cards with little VRAM, including 2 GB cards that could previously lose the graphics device from lack of memory in the first frames (0.1.455). That does not establish a minimum requirement or guarantee performance. In 0.1.1120, large textures waiting for compression began to upload at half resolution in the meantime, which kept a large articulated bus from exhausting the memory of a 3 GB card during loading: this is a peak-memory optimisation, not a requirement (what fits depends on GPU, driver, backend, map, bus, resolution and settings).

On texture memory: since 0.3.33 (Stable; before that, only in the Betas) the setting is called Video memory (video_memory, in MB) and covers everything the game keeps on the graphics card (textures, meshes, render targets, shadows and the driver's own memory, as the driver counts it on DirectX 12, Vulkan and Metal), with “Automatic” at nine tenths of the card's memory and options of 8 and 12 GB (and 16 GB for cards of 20 to 24 GB); according to the notes, before that the game could use gigabytes beyond the set value and 8 GB cards started using system memory; the old texture_memory setting is not loaded. Also in 0.3.33, a card that runs out of memory no longer loses the whole image (meshes go to smaller buffers, or only the ones that do not fit are left out), and render targets unused for 5 s are freed. In 0.3.30, the game started using about a fifth less texture memory for the same image (for 2 to 8 GB cards on large maps) and stopped becoming blurry and slow when the card refuses a texture; in 0.3.32, high-quality passengers started to take up a third of the video memory (6 to 8 GB cards ran out within a few minutes). Before 0.3.33 (up to the 0.3.0 Stable), the guide said the limit (texture_memory, in MB) was one eighth of the computer's memory when not defined, that loose textures are compressed on loading and that DXT/BC textures stay compressed on the GPU; turning that last option off (for drivers that draw compressed textures wrongly) makes textures take up about four to eight times more memory. The 2 GB texture ceiling was lowered in 0.1.1502, cards with more than 6 GB get more automatic memory (0.1.1541) and integrated GPUs began to receive the memory the driver reports (0.2.28). If the card loses the graphics device (“graphics device was lost”), the game saves the situation and restarts by itself with lighter graphics, at most twice (0.1.237), and the README suggests updating the driver or switching the API in Settings > Graphics > Graphics API. In 0.2.44, a frame drop after about half an hour of driving on 8 GB cards (from 140 to 25 FPS) was fixed. Since 0.2.38 the performance panel (Settings > Interface) helps you see what limits the FPS in your case. Since 0.3.0, when the driver resets the card and the game comes back with lighter graphics, it tells you so. According to the 0.3.37 notes, textures can now take up to half of the video memory on a card with its own memory (about 3.7 GB on an 8 GB card on Automatic, instead of 2 GB), so that they stay sharp. In 0.3.40, the game went back to using much less memory (the browser map stopped keeping the ground twice: from 1058 to 824 MB on Grand Paris-Moulon, on a Radeon 680M on Linux, by the measure of the note). 0.3.41, Stable in 0.3.42, deals with an FPS drop after about half an hour on DirectX 12 and Vulkan: the free space that the allocator keeps in large blocks was outside the Video memory limit and the card ended up paging (on a 12 GB card set to 6 GB, the driver held as much as 11.5 GB after 18 minutes, at 10 FPS); now that space counts against the limit. The 0.3.41 notes caution that the setting is not a hard ceiling when the textures are already at the smallest size and that long tests were still needed, so we do not treat this as a guarantee.

Learn more

Do mods affect performance?

Depends on the version

Yes, they can. Large maps with many objects, heavy textures or lots of curves and detail tend to demand more from the processor, the graphics card and memory. This also applies to the original OMSI 2 (general knowledge). The project's documentation shows that very busy maps have already required optimisation work. According to the 0.3.42 notes, AI cars and buses are now drawn with the model's own lower levels of detail ([LOD]), which can ease maps with a lot of traffic; models with interior lamps, screens or animated parts keep their full meshes.

There is no official table of which mods are heavier. For a specific mod, check the community reports.

Learn more

How do I improve FPS?

Depends on the version

The launcher's Settings page groups the options into tabs: since 0.1.486 there are six (Graphics, Driving, Camera, Sound, Gameplay and General, on the phone too), and the user guide still describes them that way; the new launcher in 0.2.36 was rebuilt and the 0.2.38 notes also mention a place called Interface, so the exact names may vary with the version (0.3.42 mentions, for example, a new tab called AI Lists). The options that most affect performance are in Graphics: graphics mode (Vanilla is the classic look; Enhanced is the heavier renderer. Since 0.3.42, Enhanced+ is no longer a mode: it is Enhanced with Real-Time Ray Tracing turned on (ray_tracing=1; a file with graphics=enhanced_plus is read that way), which since 0.1.1551 is heavier still: it uses hardware ray tracing on RTX, RDNA 2 and Apple M3/M4 cards or newer and, on any other card, draws like Enhanced; if the driver refuses ray tracing, it falls back to Enhanced instead of crashing), MSAA, shadows, SSAO/ambient occlusion, render scale, view distance, mirrors, rain quality (Rain quality: High, Medium or Low, since 0.2.24; rain is expensive to draw, and Low uses OMSI 2's own texture-based rain on the glass, without splashes), cloud quality (Cloud quality: Low uses fewer steps in Enhanced's clouds, since 0.2.18) and graphics API. Lowering these options usually eases FPS. Since 0.3.42 Enhanced has options of its own that cost performance and can be turned off one by one: Light has shadows (Off, Street lamps and vehicles or Every light), Cloud shadows and light shafts, Glow of lights, Real-Time Reflections (puddles, wet roads and water) and Reflective objects reflect, as well as Street light (Auto, On or Off; off by default, according to the notes) and, since 0.3.41, the optional AMD FSR 1 (experimental) upscaler in Settings > Graphics > Upscaling, whose FPS gain depends on the card and the scene and is not a promise. According to the 0.3.41 notes, Enhanced at night may cost more with the new lamp shadows (79.8 to 71.6 FPS on a Radeon 680M, in Spandau at 22:00).

In current versions (from 0.1.523), mirrors can also be turned off in Settings > Graphics > Mirrors: Off, which may help on slower machines; no specific gain is promised. Updating the graphics card driver and openOMSI itself may also help, since performance changes between versions. Effects vary by equipment and map, so try one change at a time.

Recent improvements that help on tight hardware: the launcher frees the graphics card while the game runs (0.1.721; “The launcher rests while a game runs” is an option, 0.1.1098), parked cars can be left out (Parked cars: None, 0.1.1098), there is less stutter when AI vehicles appear (0.1.759) and the big FPS drop at busy stops caused by people was fixed (0.1.774; in 0.1.850, people standing still stopped being recalculated every frame). Passengers and traffic still cost performance, so lowering the density in Settings > Gameplay may help (the People at once option, from 50 to 1000, since 0.2.46, limits the number of people). None of this guarantees a specific FPS. Since then: vehicle scripts about a quarter faster and less CPU spent finding the ground under the wheels (0.1.1541), meshes that share buffer pages, with about a third less drawing work on the CPU (0.1.1707), and larger automatic texture memory on cards with more than 6 GB (0.1.1541) and without the 2 GB cap (0.1.1502). There are also quality presets (0.2.18; since 0.3.42 they are Low, Medium, High, Extra, Max and Ultra, and each also picks the mode: Low is Vanilla, Medium is Vanilla+, which is what the game uses when it starts, High to Max are Enhanced with more options switched on at each step and Ultra is Enhanced with ray tracing and everything on), the Optimise for my PC button (0.3.37: you choose an FPS target, the game measures for about a minute during the next session, tries lighter settings one by one and keeps only those that really bring frames; your settings are saved first and Restore my previous settings brings them back; the launcher also warns in the settings when a choice may cost a lot of frames) and, since 0.2.38, a live performance panel (Settings > Interface) that shows where the time of each frame goes and what limits FPS. Also in 0.2.26 the launcher stopped redrawing a still image and the browser began to be drawn every other frame where FPS is low; 0.2.28 brought per-frame work savings (scripts, lights, Enhanced+ ray tracing) and the texture memory of integrated GPUs began to follow what the driver reports; 0.2.36 brought steadier frames (scenery scripts, traffic and people run on the frame thread with workers helping, without waiting) and an FPS limiter with no extra pause on top of V-sync. In 0.2.39 the simulation began to run at a fixed 120 steps per second (the bus and the camera are drawn between two steps, so the steering is the same at 30 or at 144 frames; this is not, by itself, an FPS gain; as it weighed on frames below 120 FPS, 0.2.44 reduced it to 60 steps per second, at most four per frame, and 0.3.0, a stabilisation release, gave smoothness back to large maps with a lot of traffic, running the AI scripts, passengers, pedestrians, timetables and weather once per frame), the scripts of map objects began to run only near the bus and in parallel, and there was an experimental mode, OMSI_SIM_THREAD=1, that puts traffic, passengers and map scripts on a thread of their own (optional in 0.3.34; according to the 0.3.37 notes, the simulation runs on its own thread by default); the changelog cites 0.5 to 1 ms less on the main thread per frame and 6 to 10 % more frames on a busy processor, with no guarantee on your equipment. Three screens (triple screen) and VR cost more: the render scale and, in VR, the per-eye resolution help. The Mirror panels every frame option (Settings > Graphics, off by default, 0.2.31) draws the cab's mirror panels every frame and costs one mirror image per frame, so leave it off if FPS is the problem. Since 0.3.30, rain on the windows is painted on two threads of its own; in 0.3.31 the windows take turns repainting the drops (fewer hitches of about 20 ms on weak PCs) and, in 0.3.33 (Stable), only the rows that changed go to the card (on a Radeon 680M, in a storm, the windows went from 10-12 ms to 2-3 ms per frame, according to the notes). Also since 0.3.33, Enhanced with ray tracing (formerly called Enhanced+) draws MSAA 8x as 4x (the OMSI_FULL_GPU=1 variable keeps 8x). Other performance improvements that reached the Stable in 0.3.33: an FPS limiter (or V-sync off) that uses less processor (0.3.30), compressed textures kept in ~/.openomsi/cache/textures to load faster from the second opening (0.3.30), the end of the small hitch every few seconds with timetable traffic (0.3.31), shaders compiled on several cores on Vulkan (0.3.31) and the new Video memory setting (see the question about CPU, GPU and RAM). In the Stable since 0.3.37 the rain was reworked (about a quarter of a million drops calculated on the video card, and rain and snow stop under roofs, bridges and shelters); the notes do not give the cost of this on your equipment, so test Rain quality if FPS drops in the rain. Other options for saving frames: Vehicle smoke (smoke from all vehicles, only your bus or none, 0.3.39), Mirror panels on the screen (0.3.39, cheaper to draw) and, since 0.3.42, mirror_shadows and mirror_particles (shadows and smoke in the mirrors, both off by default). 0.3.41 also reduced CPU work for traffic out of sight. On a phone, when FPS drops below 45 the 3D image is drawn smaller, down to 0.6 of the screen, as on the computer (ANDROID.md).

What to check

  • Try Vanilla mode.
  • Lower MSAA, shadows and SSAO (ambient occlusion, where applicable).
  • Lower the view distance.
  • Lower the render scale.
  • Turn mirrors off in Settings > Graphics > Mirrors: Off (0.1.523 or newer).
  • With rain or snow, lower Settings > Graphics > Rain quality (0.2.24 or newer); with Enhanced, try Cloud quality: Low (0.2.18 or newer).
  • Try a lighter quality preset (0.2.18 or newer; before 0.3.42 it did not change the mode, and from then on Low is Vanilla, Medium is Vanilla+, High to Max are Enhanced and Ultra is Enhanced with ray tracing).
  • In Graphics, try the Optimise for my PC button (0.3.37 or newer); Restore my previous settings brings back the earlier settings.
  • Try another graphics API in Settings > Graphics > Graphics API (Vulkan, DirectX 12, OpenGL; on Windows, DirectX 11 (ANGLE) for very old chips). The user guide also mentions this option under Settings > Display, depending on the launcher.
  • Update the driver and openOMSI.
  • On Android, if the problem started right after copying many files or installing mods, the gallery or the media scanner may be indexing thousands of textures: since 0.1.523 openOMSI creates .nomedia automatically to reduce this (on old versions, update first). Do not delete the images.

Learn more

My graphics card is very old (Intel HD 2000 to 4000, Radeon HD 5000/6000) and openOMSI won't open. Is there a DirectX 11 (ANGLE) option?

Depends on the version

According to the changelog and the user guide, since 0.2.17 there has been an ANGLE (DirectX 11) graphics API on Windows, designed for chips whose DirectX 12, Vulkan and OpenGL drivers do not run the game; the examples given are Intel HD Graphics 2000 to 4000 and AMD Radeon HD 5000/6000. In automatic mode it is tried last, after the others, and it can also be chosen in Settings > Graphics > Graphics API (the user guide mentions it under Settings > Display, depending on the launcher version).

It only works if libEGL.dll and libGLESv2.dll (Google's ANGLE) are next to openomsi.exe; without them the option is skipped and the game.log says so. We could not confirm from the sources consulted which packages already include those DLLs. The option had fixes in 0.2.26 and 0.2.28 (the launcher and the game started drawing again), so on older builds it may fail. Running does not mean running well: chips from that generation usually fall far below what the modern renderer asks for, and the original OMSI 2 may give a better experience on those computers. This is neither a requirement nor a guarantee. According to the 0.3.41 notes (Stable in 0.3.42), rain and snow fall again on OpenGL and ANGLE.

What to check

  • Are you on Windows and on a recent version (0.2.28 or newer)?
  • Are the libEGL.dll and libGLESv2.dll DLLs in the same folder as openomsi.exe?
  • Does the game.log (.openomsi folder) list the adapter? With ANGLE active it appears as ANGLE (...Direct3D11...).
  • Is the card's driver up to date from the manufacturer (Intel, AMD)?

Learn more

How do I find out what is limiting my FPS with the performance panel?

Depends on the version

Since 0.2.38, openOMSI has a live performance panel, compact or detailed (in the notes, under Settings, Interface). According to the changelog, it shows where the time of each frame goes, what is holding back the frame rate, the processor load and the last hitch. It can help you tell whether the limit is more on the CPU or the GPU before you start changing graphics options, but it does not promise an FPS gain by itself. The notes do not detail the screens, so the exact name of the tab or button may vary with the launcher version. According to the 0.3.40 notes, the panel took on the browser's look (dark or light) and can be enlarged or reduced (from 0.6x to 2x) from the bottom-right corner, keeping the size.

Anyone who wants to measure in a more technical way can use OMSI_PROFILE=1, which the user guide describes: it records the split of the frame (drawing, mirrors, traffic, people, scripted objects, LAN), counts the frames above 50 ms and notes GPU and CPU memory use in the log. If you report an FPS problem, the version, map, bus, graphics API and what the panel showed help whoever looks at the case.

What to check

  • Is your openOMSI 0.2.38 or newer? (earlier builds do not have the panel)
  • Compare the panel on a light map and on the map that is heavy, with the same settings.
  • Change one graphics setting at a time and see what the panel says.

Learn more

In Enhanced mode, the mirror is dark, the sign glows too much, or the water, snow and reflections look odd. What changed?

Depends on the version

Enhanced mode is the heaviest renderer and has received several fixes. Mirrors: mirrors were much darker than the windshield at dusk and in daytime rain; since 0.1.538 they only darken when the sun is below the horizon. Signs: flipdot matrices (such as the Krueger on the MAN NL/NG) no longer glow like LEDs, and LED panels keep glowing and go dark when the bus power or lights are switched off (0.1.538); the LED mip strength setting (0 to 4) replaced the old on/off toggle (0.1.576). The driver is now lit by the four interior lights at their seat, instead of a flat glow from all the lamps (0.1.538). Note on names: since 0.3.42 Enhanced+ is no longer a mode but Enhanced with Real-Time Ray Tracing turned on (ray_tracing=1); wherever this answer says Enhanced+, read it that way. Enhanced also gained options of its own (Light has shadows, Cloud shadows and light shafts, Glow of lights, Real-Time Reflections and Reflective objects reflect), and the quality presets (Low to Ultra) now choose the mode.

Wet road and water: since 0.1.796, with reflections on, Enhanced can reflect buses, buildings and scenery in puddles and on the wet road, following the real height and slope of the road (including nearby articulated sections). Puddles appear as patches on the wet road, not as a single mirror over the whole lane (an adjustment after 0.1.1120), and the asphalt stays visible between them. In Enhanced it is a limited, reduced-resolution effect, not ray tracing (Enhanced+ uses real ray tracing, but only on RTX, RDNA 2 and Apple M3/M4 cards or newer): it does not appear on a dry road, with full snow, or in mirrors (in the 0.1.796 notes OpenGL was also left out). Since 0.1.1196, reflections on the wet road also work in Vanilla and Vanilla+, and are seen through the bus's own windows, not only in Enhanced. Also in Enhanced, the map's water is drawn as water, with small waves and a sky reflection (0.1.1098). The cost is limited, but it exists: if you need FPS, turn reflections off.

Other recent image fixes: snow covers the windshield like rain and the wipers clear it, and the map's WinterSnow textures show the snow itself (0.1.1098); houses no longer appear inside out when the mesh had no matrix (0.1.1098), and there are fewer inside-out meshes (0.1.1302); crosswalks and markings are back on top of the road (0.1.1098); rain no longer enters the rear section of articulated buses (0.1.960) and AI cars with transmap are no longer entirely semi-transparent (0.1.1120), not even when the declared [matl_transmap] file is missing, in which case the texture stays opaque (0.1.1169); the high beam reaches what [spotlight] says (0.1.1120); and VR uses Enhanced (0.1.960). In Vanilla+, the white haze on the ground at night was fixed. In Enhanced, the glow of custom weather no longer darkens the mirrors and a white light map no longer “burns” displays and gauges at night (0.1.1223); and stacked transparent layers, such as dirty glass and decals, no longer show through one another (0.1.1166). Since 0.1.1551, Enhanced and Enhanced+ calculate the sky from atmospheric physics (sunset, twilight, the moon with its real phase and stars) and, with no weather chosen, natural weather changes over the days; in 0.1.1707, headlamps light the road evenly, like real ones. 0.2.0 reworked night and weather in Enhanced and Enhanced+: night is dark again (the eye adapts to the lamps and headlamps in view, rather than to a fixed city level), street lamps cast real shadows, light bounces from the ground onto the buses and façades, the moon lights the scene with shadows of its own, and fog and mist form halos around lamps and headlamps (rain does not do this); looking at the sun dazzles, and the image darkens when you see the sun and brightens in a dark cab or under an overpass. The new snow, with up to 150,000 flakes calculated on the graphics card, applies to all graphics modes. In 0.2.42, the mirrors began to be drawn with Enhanced's shading, light and sky, the sun has its real size (0.27 degrees) with the glow of a camera lens around it, and the bodywork of buses and cars gained a varnish shine in Enhanced; in the Vanilla and Vanilla+ modes, the paint and the windows keep their shine at night when lamps light them. AI cars also light the road with their headlamps on in Enhanced and Enhanced+. If Enhanced's night became too dark for you, since 0.2.16 there is the Night brightness setting (Settings > Graphics, off by default), which brightens Enhanced only after sunset. Other changes in the 0.2 series: on Enhanced's wet road, headlamps now reflect as a short glint on the asphalt and an image in the puddles, instead of an endless white line all the way to the camera (0.2.22); the reflection of the bus paint in Vanilla and Vanilla+ follows the light of the moment, rather than a sunny day at night (0.2.26); snow chosen while driving began to cover the ground in Vanilla and Vanilla+ as well (0.2.25); the bus's own headlamps cast shadows in Enhanced (0.2.28); overcast clouds became a dark layer with relief of its own (0.2.30) and stopped “jumping” every few minutes (0.2.36); and Vanilla's glow no longer blows out where lights overlap (0.2.36). In 0.2.39, Enhanced+ reflections gained real textures on the windscreen, the rear window and other glass (before, they were flat colours), headlamps seen from far away began to glow round (before, the halo was square) and the glow of traffic headlamps follows the drawn car, without sliding into the bodywork and looking like a blinking lamp. In 0.2.44, only the 12 AI cars closest to the camera, within 200 m, light the road with their headlamps in Enhanced, which eased the load on the graphics card at night. In 0.3.0, the Enhanced varnish shine became crisp again, ambient occlusion went back to its pre-0.2.46 strength and the Vanilla and Vanilla+ sky no longer has clouds stretched towards the horizon. The 0.3.30 to 0.3.33 series (in the Stable since 0.3.33): in Enhanced, bus windows started to look like glass, showing the cab and the street instead of a bright-sky mirror (0.3.30); on OpenGL and DirectX 11, street lamps, headlamps and interior lamps light their surroundings as on DirectX 12 (0.3.31); a street lamp hidden behind a house, a tree or the ground no longer darkens the whole image at night (0.3.32); instruments on the dashboard, signs on poles and timetables at stops stopped flickering against one another, with the latest one on top, as in OMSI 2 (0.3.33); the headlamp beam comes out of the bus's own headlamps, not from under the bumper or from the fog lamps (0.3.33); and the reflection maps (paint, chrome, glass) gained an intensity control from 0 to 100 % in the game and in the launcher, taking effect immediately (0.3.33). Series 0.3.34 to 0.3.42 (Stable in 0.3.37 and 0.3.42): the sun is back in the Vanilla and Vanilla+ sky; in Enhanced, parked cars no longer look like transparent ghosts, car and bus windows lost the grey glare on overcast and foggy days, a wet bus mirrors the street, grass and dirt no longer shine like wet asphalt in the rain, and the lamps of other vehicles no longer light up the inside of your bus; in Enhanced with ray tracing, lit switches and displays keep their texture at night instead of white blotches (0.3.37); puddles have Low and High quality (0.3.37). In 0.3.42: cloud shadows fall on the ground, wet roads and water mirror the street (not only puddles), more lights cast shadows (Light has shadows: Every light), there is a hand torch (Alt+F), headlight beams in fog, rain and snow have shadows of poles and cars, the ground no longer glows orange from small distant lights, bus shelters show through the bus windows, destination signs light up at night, Vanilla and Vanilla+ headlights light the road as in OMSI 2 and tyre spray comes only from puddles. These fixes do not guarantee that all content will look perfect: if something still looks wrong in a current build, note the version, map and location.

What to check

  • Are you in Enhanced mode (and not Vanilla)?
  • Is openOMSI up to date? (Enhanced+ with textured glass, round headlamps and traffic glow: 0.2.39; Night brightness: 0.2.16; mirrors and flipdot: 0.1.538; puddles: 0.1.796 and later; water, snow and inverted meshes: 0.1.1098; reflections also in Vanilla: 0.1.1196; stacked glass and white light map: 0.1.1166 and 0.1.1223)
  • Is the reflections option turned on in the graphics settings? (since 0.3.42 it appears as Real-Time Reflections, with Reflective objects reflect for the reflection maps)

Learn more

Advertisement

Maps and scenery

Maps with holes, missing objects or textures, large maps that won't open, and how to tell whether a map works.

My map opens with missing objects, roads or textures. Why does this happen?

Depends on the version

Most of the time, the map depends on objects, splines (roads and rails) and textures that are in other packages (add-ons) that have not been installed yet. Without those files, you get holes, roads without asphalt or white objects. Other possible causes are files in the wrong place, an incomplete download or some content that openOMSI does not read well yet. According to the 0.3.42 notes, a texture that the model asks for as .dds and does not exist now counts as missing, as in OMSI, instead of being swapped for a .bmp or another file of the same name (the example given is the MAN DN95, which looked like a mirror), and houses in binary .x written by the PAD-Labs exporter, which had not loaded since 0.3.38, are back (example: Köln, Engeldorfer Straße).

openOMSI warns you when it loads a map like this: it shows how many objects, splines and textures are missing and writes the full list to missing_content.txt, inside the .openomsi folder of your user account (on Windows, C:\Users\<você>\.openomsi). According to the project's changelog, the file is written again when the game ends, this time with the tiles that were loaded along the way, and holes, roads without asphalt and white objects in a map in that situation point to a missing download, not necessarily a failure of the game. Since 0.3.42, in Setup, the .openomsi folder (the notes mention settings, profiles, logs and caches) can sit in another folder or on another drive: if you changed the location, look for the logs in the new folder (the notes do not mention missing_content.txt in particular).

History of the search for textures in other content. Between 0.1.1147 and 0.2.23, openOMSI looked for a missing spline or scenery-object texture, outside its own folders, in other content of the same installation that had it (same file name). That helped old content, but it is not good practice for new packages. According to the changelog, from 0.2.24 a texture that is missing from a scenery object's folders is no longer “borrowed” from another folder (examples given: a gantry showing the package's generic sign, and a sign showing the asphalt texture). So in recent builds, do not count on that borrowing: the map's package should ship or declare what it uses. We did not find in the documentation whether the search still applies to splines.

What to check

  • Open the missing_content.txt file (close the game first, because the list is written again when it ends) and see which items appear.
  • On the launcher's Mods page (0.2.27 onwards), the arrow on a mod's row opens its content folder by folder (Vehicles, Texture, Sceneryobjects, Splines...) and shows how many items each folder has: use it to check that the package the map asks for was really installed. According to the 0.3.39 notes, each mod's row says which game folders it put things in and how many (for example “Vehicles 1, Fonts 2, Texture 1”) and shows “found in the content folder” for a mod copied by hand into the content folder; when opened, the content appears grouped by those folders. In versions before 0.3.39 this list may not exist: check the content directly in the folder. Since 0.3.34 the Mods page is in the Content group of the left-hand menu.
  • Since 0.3.41, Help > Troubleshooting in the launcher gathers what is wrong with the installed content (packages waiting for the bus, buses that use parts from packages that are not installed, map HOF files that could not be added, failed installations), and the second tab, Model test, loads a whole map the way the game loads it and lists what it places that is not installed. In versions 0.3.34 to 0.3.40 the equivalent check is in Content test, in Settings (on the command line, openomsi --check <arquivo ou pasta> [--deep]).
  • Look on the map's page for the list of dependencies (packages it requires) and install them all.
  • Check that the content folder was installed in the right place (see the question about folders and paths).
  • Test the same map in the original OMSI 2, if you have it, to know whether the problem is the map.
  • Note the openOMSI version you are using.
  • In builds before 0.1.538, TGA textures named .png, .bmp or .jpg could be missing: update before renaming files.
  • In builds from 0.1.1147 to 0.2.23, the game.log recorded once each texture found in other content: if one appears, the original package should ship it, and it is worth telling the author.
  • Texture names saved in a Korean, Chinese or Japanese code page started being found in 0.1.1223 (and the content is read in that code page on a Windows set up that way, since 0.1.623): in older builds, a map like that could look as if textures were missing.
  • On Android: did you delete images that showed up in the gallery? In versions before 0.1.523 this could happen, because textures appeared as photos; current builds create .nomedia automatically. If files have already been deleted, restore or reinstall the affected content.

Learn more

The map terrain is missing, has holes or is broken. What could it be?

Depends on the version

Terrain with holes, transparent ground or roads “sinking” can have several origins: objects or splines that were not installed, problems in the map's own files, a map feature that openOMSI does not yet handle well, or an older openOMSI version. The project has fixed several cases over the versions (for example roads under grass and road slopes), so it is worth checking that you are on the latest version.

Some causes have already been fixed in the engine; if your case looks like one of them, update first. A forgotten .water file in the folder no longer floods a tile whose water was removed, because water only exists when the .map declares [water] (0.1.538). Bridges and other [surface] objects modelled far from the origin now sit at road height (0.1.576), and a [surface] without [absheight] sits on the terrain (0.1.623). Excavations and stairs of presurface objects are no longer filled in by the terrain, and [terrainhole] opens deep cuts and underground passages (0.1.623). [terrainmapping] uses only the map's first ground texture, as OMSI does, which fixes ground lighting and seams between tiles (0.1.576), and the terrain texture from the map's own folder takes priority over the global seasonal copies (0.1.623). This is an engine fix: defects from missing content or from the map's files still follow the list below.

There are also known bugs related to this system. Before opening a report, follow the list below and search the Issues to see whether someone has already described something similar.

Junctions: the terrain is no longer pressed into the crossing's height mesh, which Omsi.exe uses only for paths (0.1.1098), and [terrainhole] now cuts the terrain better at the edge of junctions and roads (0.1.1028). If the defect is objects or parts of the road out of place, see the question about parts of the map floating in the air.

More fixes, from 0.1.1313 onwards, according to the changelog: the exposed terrain edges along [terrainhole] cuts are now closed off by walls using the surrounding ground texture (0.1.1423); a junction's slab is only raised by the height field where it covers it, which removed the step and the gap at the U Ruhleben station link on the Berlin-Spandau map (0.1.1671); thin triangles no longer create invisible walls on the road (0.1.1668); tunnel entrances are no longer closed off by stretched terrain (0.2.28); and, when switching to a snow climate with the game open, the plain ground of Vanilla and Vanilla+ kept the summer grass, which was fixed in 0.2.25. In 0.3.0 (Stable), the terrain under splines and spline attachments with [spline_terrain_align] is cut at the right point again, which undoes broken terrain beside or under streets.

What to check

  • Check whether the missing content warning appeared when the map loaded.
  • Did you get stuck on a bridge or an invisible wall on a modded map? The project's README mentions Collisions with objects (Esc, Options, and also in Settings) to switch off collision with the map's objects; it is a way to get unstuck, not a fix for the map.
  • Install all the dependencies listed by the map's author.
  • Update openOMSI and test again.
  • Compare with the original OMSI 2, if possible.
  • If it persists, note the map name and version and attach the game.log file.
  • On Android: did you delete images that showed up in the gallery? In versions before 0.1.523 this could happen, because textures appeared as photos; current builds create .nomedia automatically. If files have already been deleted, restore or reinstall the affected content.

Learn more

Why are parts of the map (roads, objects, speed bumps) floating or out of place in openOMSI?

Depends on the version

It could be content, it could be how the format is read, and only testing on the current version tells which. Several cases like this have already been fixed in the engine: tiles from old versions were read as if they were version 14, so objects attached to the wrong parent ended up suspended and pieces of road appeared in the air (0.1.851), and the terrain around junctions was deformed with the crossing's height mesh, which Omsi.exe uses only for the paths, which could shift terrain, speed bumps and nearby objects (0.1.1098). There were also fixes to the height of surface objects, bridges, [terrainhole] at the edge of junctions and objects with traffic paths.

More recent fixes: roads are drawn at their own height again, without the 8 cm lift, so pavements no longer sit above the ground and markings no longer sink under the road (0.1.1196); terrain objects outside their own tile are no longer drawn, which removed leftovers of copied tiles from the middle of the road (0.1.1223); and AI cars whose road appears more than 0.3 m below their lane now come down to it, instead of driving in the air (0.1.1223).

From 0.1.1671 onwards: the road link at the U Ruhleben station (Berlin-Spandau) is level again, with no gap or step (0.1.1671); objects placed along a spline (bridge pillars, lampposts, masts, fences, markings) now sit where the map puts them, with no gaps or overlaps where it passes to the next tile (0.2.24); the rules for which objects in a row along the spline are drawn were adjusted again in 0.2.30 (bridge pillars no longer end up on the road on the Grundorf Island 4 map) and in 0.2.31, which went back to drawing row objects that cross the tile edge (parked cars on a Berlin-Spandau street); and objects marked as surface ([surface]) no longer show up in front of what is beside them when seen from a distance, such as a traffic light's pole crossing the signal head, in 0.2.30. According to the notes, in 0.3.40 objects attached to a spline on maps with [worldcoordinates] (Shanghai and others) stopped being displaced on tiles far from the middle of the map, and in 0.3.42 a spline laid over a [surface] object (the Crystal Palace road) or over another spline in the same tile, at the same height, is now drawn on top, as Omsi.exe does; before, London's markings and the red bus lanes fought with the road surface.

This does not mean that every misplaced object is an openOMSI bug, or that the map is poorly made: it may be content that depends on an OMSI quirk, a missing dependency, a file overwritten by another package or a real defect in the file. Update openOMSI, repeat at the same point on the map, compare with OMSI 2 and note the version, map and location. The environment variable OMSI_CROSSING_DEFORM=1 restores the old junction behaviour and is for tests and comparisons only.

What to check

  • Is openOMSI on the current version? Reports made a few hundred versions ago may already be fixed.
  • Does the problem always appear in the same place (junction, bridge, spline stretch)?
  • Does it happen in the original OMSI 2, at the same point?
  • Are all the packages the map asks for installed, and has no file been overwritten by another package?
  • Did you use the game's object editor (Ctrl+Shift+E)? When you save, it writes a copy of each changed tile to maps/<mapa>/tile_x_y.map in the content folder, which the game reads before the installation; delete the copy to go back to the original tile.
  • Note the version, map and location to submit at /testar or in an Issue.

Learn more

A map works in my OMSI 2 but has problems in openOMSI. Whose problem is it?

Depends on the version

That alone does not tell you whose problem it is. openOMSI reimplements the format from scratch and has already fixed several differences from Omsi.exe (many recent changelog entries say exactly “as in Omsi.exe”); the README states as its goal that OMSI 2 content should work unchanged, and it is still an early version. At the same time, OMSI 2 accepts content that depends on its own quirks.

The possible causes are: a compatibility difference or bug in openOMSI (maybe already fixed: the project releases versions several times a day); content that relies on an OMSI quirk; a missing dependency or a file overwritten by another package (between 0.1.1147 and 0.2.23 openOMSI even looked for a spline or object texture in other content that had it; according to the changelog, from 0.2.24 a texture that is missing from a scenery object's folders is no longer borrowed from another folder, so shipping the dependencies clearly is what counts); or a genuinely defective structure in the content. The technical evidence is what decides.

Test on the current version, compare at the same spot in both games, check missing_content.txt and the game.log, and record the result with the openOMSI version: a report without a version ages quickly. Report on GitHub only what is reproducible on a current build.

What to check

  • Is openOMSI on the current version?
  • Does the same spot on the map behave differently in the two games?
  • Do missing_content.txt and game.log indicate anything missing or any warning?
  • Is there another package that overwrites files of this map?

Learn more

Roads, tracks or other splines have disappeared or show the wrong texture. What can I do?

Depends on the version

Splines are the pieces that make up roads, pavements, tracks and fences on the map. If they disappear or turn white, the first step is to check that the package containing those splines and textures is installed and in the right place. The missing_content.txt file lists what the game did not find.

If everything is installed and the problem continues, it may be a limitation of openOMSI with that map. Junctions that seemed to have their faces turned inside out ([crossing_heightdeformation]) were fixed starting in 0.1.523. Between 0.1.1147 and 0.2.23, a spline texture that was missing from its own folder could be found in other content in the installation that had it; according to the changelog, from 0.2.24 a texture that is missing from a scenery object's folders is no longer borrowed from another folder (we found no confirmation of whether this also applies to splines), so the package should ship what it uses. Objects along a spline (pillars, lampposts, fences, markings) had their placement fixed where it passes between tiles in 0.2.24 and again in 0.2.30 and 0.2.31. On maps made with the OMSI 1 editor (the example cited is Great Grundorf 2), most of the roads did not appear; since 0.3.31 (Beta; in the Stable version since 0.3.33) the whole road network is loaded. According to the notes, 0.3.34 started drawing a street's painted lines over junctions and junction plates, as in OMSI 2, instead of vanishing depending on camera height and distance; 0.3.41 started recognising French street texture names, which brought back missing streets on maps such as HCM; and 0.3.42 fixed street markings that disappeared and returned as the bus approached, and London's markings and red bus lanes that varied with the camera's distance or rotation. There are also known bugs related to this system, as reports in the Issues show (for example about splines disappearing or with a rotated texture).

What to check

  • Read missing_content.txt and look for spline or texture names.
  • Reinstall the spline package the map asks for.
  • Check that folder names were not changed when extracting the archive. On Linux, a lowercase texture folder from a mod used to hide the original content's textures; this was fixed in 0.2.28.
  • Test on another openOMSI version, if you have one, and note the difference.
  • On Android: did you delete images that showed up in the gallery? In versions before 0.1.523 this could happen, because textures appeared as photos; current builds create .nomedia automatically. If files have already been deleted, restore or reinstall the affected content.

Learn more

The map opens and I appear in the middle of the woods or far from the road. Is this normal?

Depends on the version

The public documentation consulted does not explain this case in general, so we cannot state the cause. Among the possibilities: the chosen starting point (depot or spawn point) is not the one expected for that map, the map has more than one region and the bus came out in another one, or some object or terrain is missing.

What exists in the Issues are similar reports, for example a map with two cities where the bus appeared on the grass of the other city; the person in charge replied that they would fix it. That kind of case may have been adjusted in newer versions, but we found no confirmation of which one. On maps made with the OMSI 1 editor (such as Great Grundorf 2), before 0.3.31 (Beta; in the Stable version since 0.3.33) there were hardly any starting points or roads; since then the road network and the starting points are there. A different case, that of buses placed on the map that fell through the ground when the player moved away and were saved kilometres below it, was fixed in 0.2.33 according to the changelog (the bus now keeps its place while the tile is not loaded).

What to check

  • Choose the depot or starting point on the launcher's Drive page (the documentation mentions map, starting point, line and tour; the exact field names changed between launcher versions; according to the changelog, 0.2.39 brought back line and tour as a pair of searchable lists, and a tour is found by any stop; since 0.3.37 the page brings map, line and tour, roadbook, bus and start together on one screen, in the Big Map (default), Control Room, Classic+ and Classic layouts, chosen in Settings, and since 0.3.39 the start bar shows the first trip and where the bus will be placed, with “Entry point N” for an unnamed point) and try another one. If you joined someone else's game, the changelog says that, since 0.2.39, the game starts on the host's map.
  • In the game, in the free camera (F4), the usage guide says that Ctrl+click on the ground takes the bus to the nearest road; the 0.2.28 changelog says that a click on the F4 map asks whether the vehicle should be moved there. Which gesture applies depends on the version, so check on yours.
  • Check whether the missing content warning appeared.
  • Update openOMSI and try again.
  • Test the same map and starting point in the original OMSI 2, if possible.
  • If it persists, ask the community or the Issues, giving the map, version and chosen point.

Learn more

Very large maps won't open or the game closes while loading. What can I do?

Depends on the version

Large maps use a lot of memory and processing. If the computer or phone does not have enough resources, loading may fail, hang or close the game. Other possible causes are missing content or problems in the map's files.

There are reports in the Issues of failures when loading very large maps, both on computers and on Android. We did not find an official map size limit in the documentation consulted, nor a guaranteed solution.

What the documentation and changelog say has changed: the usage guide states that large maps are kept within memory using compressed textures, a texture memory budget (texture_memory), a timetable fleet that is read ahead and trimmed again, and tiles that give everything back when they unload (the example given is the Ahlheim V5 map, from 8.75 GB down to 1.93 GB with traffic, passengers and timetables); 0.1.1423 fixed NVIDIA cards without Resizable BAR on Vulkan, where loading took minutes and the game ran at a few frames per second; 0.1.1726 started releasing the old render targets when a heavy map runs out of graphics memory on Vulkan; 0.2.28 started using the texture memory the driver reports on integrated graphics; and 0.2.36 and 0.2.38 brought batched tile loading and a roundabout search that is 2 to 5 times faster when the map loads. According to the changelog, 0.2.39 also reorganised the game core (the map objects' scripts now run only near the bus and in parallel, and there is an experimental simulation thread, OMSI_SIM_THREAD=1, off by default in 0.2.39; according to the 0.3.37 notes, the simulation now runs on its own thread by default), presented as a performance gain and not as a fix for maps failing to open. Since 0.3.0 (the Stable stabilisation release), according to the changelog, the AI vehicles' scripts went back to running once per frame, not at every 20 ms traffic step, and passengers, pedestrians, timetables and weather also went back to once per frame: the text says large maps with a lot of AI traffic run smoothly again, without the drop to a few frames per second. Also in 0.3.0, AI traffic no longer stays stopped forever at large junctions and roundabouts. According to the notes for versions 0.3.30 to 0.3.33, there was also: about a fifth less texture memory for the same image, which helps 2 to 8 GB cards on large maps (0.3.30); the game stopped becoming blurry and slow when the card refuses a texture (0.3.30); and, in 0.3.33, the “Video memory” setting (formerly “Texture memory”) also started to limit meshes, render targets and driver memory, and a card that runs out of memory no longer loses the whole image. In the later versions, according to the notes: 0.3.34 started giving textures half of the video memory on a card with its own memory (about 3.7 GB on an 8 GB card in Automatic, instead of 2 GB with 16 GB of RAM); 0.3.40 reduced the game's memory by no longer keeping the browser's ground twice (from 1058 MB to 824 MB on the Grand Paris-Moulon map, measured by the author on a Linux PC); 0.3.41 started counting towards the video memory limit the empty space the driver holds on DirectX 12 and Vulkan, aimed at the frame-rate drop after long trips (the notes ask for long tests and say the setting is not a hard ceiling when the textures are already at the smallest size); 0.3.41 rejects malformed texture data before upload, using a substitute texture and writing to the log; and 0.3.42 fixed AI traffic where a bus waiting to change lane could block the street forever. The launcher's route preview on large maps also became much faster (Berlin-Spandau's, in about a second instead of 88 s, in 0.3.34). None of this is a guarantee that a specific map will open on your equipment.

What to check

  • From version 0.2.36 the loading screen shows the map name and a bar that advances according to the time of the last loads; seeing the bar move helps tell a slow load from a hang.
  • In Settings → Graphics (screens, distances and memory) you find the distance at which tiles are kept loaded (view_distance, 1200 m by default according to the guide) and the texture memory (texture_memory; in the interface from 0.3.33 onwards the setting is called “Video memory”); lowering these values may ease a heavy map. Since 0.3.37 there is also the Optimise for my PC button (in the launcher's graphics settings and in Options → Graphics in the game): during the next trip the game measures for about a minute, tests lighter settings and keeps only those that give frames, and Restore my previous settings brings back the previous ones. The quality levels are Low, Medium, High, Extra, Max and Ultra, and each one also sets the mode (Low is Vanilla, Medium is Vanilla+, the default, and Ultra is Enhanced with ray tracing), according to the 0.3.42 notes. This affects performance after the map opens; the notes do not say it helps open a map that fails.
  • Close other programs and try again.
  • Test a smaller map first to find out whether openOMSI opens normally.
  • On a phone, remember that memory is more limited than on a PC.
  • Keep the game.log right after the failure.
  • Look in the Issues to see whether the same map has already been reported.
  • On Android, if the problem started right after copying many files or installing mods, the gallery or media scanner may be indexing thousands of textures (it is not always the cause). Since 0.1.523, openOMSI automatically creates .nomedia to reduce this; on older versions, update before any other step. Do not delete the images.

Learn more

Where should I put maps and objects? Do upper and lower case in names matter?

Depends on the version

openOMSI organises the game folder like an OMSI 2 installation and looks for content there before looking at the original installation. The launcher's Mods page installs folders or .zip, .7z or .rar files. If the content was placed outside the expected structure (for example an extra folder inside), it may not be found.

The usage guide says paths are resolved without distinguishing upper and lower case and that Windows-style references (with \) work on all systems. There were targeted fixes for folders such as Texture written with different capitalisation on Linux (0.2.28 fixed the case of a lowercase texture folder from a mod that hid the original's textures). Between 0.1.1147 and 0.2.23, a spline or scenery object texture that was missing from its own folders could be found in other content with the same name; according to the changelog, from 0.2.24 the borrowing from another folder no longer happens for scenery objects, so the package needs to ship what it uses.

The content folder sits next to the program and is read before the original installation, which is never changed (OMSI_CONTENT changes the location; on macOS, a new openOMSI.app in Applications keeps the content in ~/.openomsi/content, since 0.1.1223). The launcher's Mods page also accepts a folder or file dragged onto the window, or dropped into Mods/ next to the program, and a .zip organised like OMSI 2 can be used in place, in Archives/, without unpacking. Since 0.2.27, what a mod puts in shared folders (fonts in Fonts, textures in Texture) is recorded as its own: it shows up on the Mods page and disappears when the mod is switched off or deleted. According to the changelog, 0.2.39 gave the Mods page back cancelling an installation, the file size check, filters, the content folder and dropping a mod anywhere in the window. On phones, since 0.3.0 (Stable) the Mods page has its own storage browser for installing a folder or a .zip, .7z or .rar file; before that, “Add folder” and ZIP did nothing. According to the 0.3.39 notes, each mod's row says in which game folders it put things and how many; in 0.3.40 the Mods page started asking before copying a map's HOF files to all buses (“Share with every bus” or “Not for this map”). And since 0.3.42, in Setup, the .openomsi folder (settings, profiles, logs and caches) can live in another folder or disk.

What to check

  • Check that the Sceneryobjects, Splines, Texture folders and so on are at the right level.
  • Prefer installing through the launcher (Mods page) when possible.
  • On Android, see the mod installation guidance.

Learn more

How can I tell whether a map works in openOMSI before installing it?

Depends on the version

There is no official guarantee for each map. The project aims to be compatible with OMSI 2 content, but it is still early. A practical way is to check the Portal OmsiModsBR community compatibility database (independent, unofficial and complementary), where people record the results of their tests.

If the map is not in the database yet, the best way to find out is to test it. Afterwards you can record the result at /testar, stating the openOMSI version and what you saw, to help other people. Always record the openOMSI version: an incompatibility seen a few hundred versions ago may already have been fixed, and the site flags tests made on very old versions.

Since 0.3.0 the project separates Stable and Beta versions: in Settings > General > Updates there is an update channel, with Stable as the default and Beta meant for testers, and the version selector marks the Betas. The numbers of a Beta (and of TestFlight builds, on iPhone/iPad) may not match those of the Stable version, so also note which channel you tested on. Since 0.3.42, the launcher shows the transport mode (tram, railway, metro, trolleybus) of maps and buses, the pickers can filter by it, and a vehicle that does not suit the chosen map is marked with the reason and does not start; according to the notes, a bus does not start on a tram map, and a map without these modes accepts any vehicle.

What to check

  • Look up the map name at /buscar.
  • Check the openOMSI version used in the tests: old results may have changed.
  • Install all the dependencies listed by the map's author.
  • After testing, record the result at /testar.

Learn more

What are openOMSI Map Packages (`openomsi-realmap` map packages)?

Depends on the version

A map package is a folder called openomsi-realmap, placed next to a map's files (Maps/<Mapa>/openomsi-realmap). It holds a pre-rendered image of the map and extra data for the minimap/radar: layers such as water, vegetation, buildings, terrain relief, rivers, railways and borders underneath the street layout, plus lines and timetables. The original OMSI 2 never had a built-in minimap; openOMSI brought its own navigation, and these packages give it context. According to the 0.2.48 changelog, the navigator and the city map show the terrain under the streets (water, parks and woods, rivers, railways and borders, in a dark or light look) on a map that has the package. Since 0.3.31 (Beta; in the Stable version since 0.3.33), the route map on the launcher's Drive page also shows water, green areas, rivers, railways and borders under the streets when the map has the package. According to the 0.3.37 notes onwards, the navigator and the city map started drawing land, water, woods, tracks and 3D houses from the map itself, with no package; the package still adds what the map does not bring: place names, icons, regions and the street and municipality under the bus, the Lines button with the lines and their timetables (if the package has a lines.lin) and, from Beta 0.3.38 (Stable in 0.3.42), the Terrain button with the contour lines and their heights (if the package has contour lines).

The package does not replace the map or the OMSI 3D editor: the drivable streets, objects and terrain are still the map's own. Omsi.exe ignores the folder, so a map made for both games loses nothing. The format is public (specification in the openomsi-map-packages repository). This is a community explanation, not official openOMSI documentation.

What to check

  • Does your map have a package? See the question about which maps already have packages.
  • Is your openOMSI version 0.2.48 or newer? The stable version 0.3.0 already includes 0.2.48; the launcher's route map with the layers comes in the Stable since 0.3.33.

Learn more

Do I need to install Map Packages to play?

Depends on the version

No. In the official sources the package is an add-on: the folder brings extra layers for the minimap/radar and, if an optional file is missing, the matching feature is simply switched off. A map without a package is still the same map as always, with openOMSI's standard drawing (since 0.3.37, according to the notes, the navigator and the city map already draw the map from the map itself, with no package). Packages also do not replace the download or installation of the map: you still need the map and its dependencies.

What to check

  • Does the map open and play normally without the package? Then there is nothing mandatory to install.

Learn more

How do I install a Map Package?

Depends on the version

Download the package for your map (the ready-made examples are in the v0.2.0 release of the openomsi-map-packages repository) and copy the openomsi-realmap folder to Maps/<Mapa>/openomsi-realmap/ inside the openOMSI content folder (the folder next to the program, where the mods live). The specification says the OMSI 2 installation is not changed and that putting the folder directly in the installation's Maps/<Mapa>/ also works. No original map file is replaced.

Then open the map in openOMSI. The repository guide mentions Shift+M for the city map and the nav_surface=0 setting to switch the package off; as these details may change between versions, check them in yours. Use an openOMSI version that supports the format (0.2.48 or newer).

What to check

  • Is the path Maps/<Mapa>/openomsi-realmap/, without an extra folder inside?
  • Is the map folder name the one of the map you installed, and is the package for that same map and version?
  • Inside the openomsi-realmap folder, is there a manifest.cfg? Without it the package is ignored.
  • Is your openOMSI 0.2.48 or newer?

Learn more

What is the Map Package Creator and where do I download it?

Depends on the version

The Map Package Creator (v1.0.0) is a free Windows program by Leo Monteiro to create packages for the openOMSI minimap/radar: it lets you view, check, annotate, edit and generate openomsi-realmap packages, with layers, lines, timetables, point inspection, annotations and undo/redo. The generator is built in, so you do not need to install Python. The interface has 17 languages, including Brazilian Portuguese (translations made with AI help, so they may contain mistakes).

It does not replace the OMSI 3D editor: creating streets, placing objects and shaping terrain are still done in the scenery editing tools. Players who just want to use a ready-made package do not need it.

To use it: download ombr-mapcreator-v1.0.0-windows.zip from the app-v1.0.0 release of the openomsi-map-packages repository, extract it anywhere and run ombr-mapcreator.exe. There is no installation. As the file is not signed, Windows may show the "unknown publisher" screen: More info > Run anyway. The program only reads your OMSI 2 folders; when it replaces a package, it keeps a copy in openomsi-realmap.backups. It is closed-source freeware: free to use and share, as long as it is complete and unmodified (see the EULA that comes with the program).

What to check

  • Do you only play? Then you do not need the Creator: it creates the package, and openOMSI reads the package.
  • Did you download from the official app-v1.0.0 release? Check the source before running a file.

Learn more

Which systems does the Map Package Creator run on? Do I need it to use a package?

Depends on the version

The official sources describe Creator v1.0.0 as a program for Windows (ombr-mapcreator.exe) and say nothing about other systems. We will not assume anything beyond that.

What matters if you play: the package is a data folder and the Creator is just the authoring tool. You do not need it on the device you play on; to use a ready-made package, just copy the openomsi-realmap folder into the map.

What to check

  • Do you just want to use a package? You do not need the Creator, only the package folder and an openOMSI that supports it.

Learn more

Do Map Packages work on Android, iOS, Linux and macOS?

Depends on the version

Packages are data files and the Creator is only the authoring tool, which does not need to be on the device you play on. Whether packages show up in the drawing depends on the openOMSI version and platform: the official documents describe support in the navigator and city map (0.2.48) and, since 0.3.31 (Beta; in the Stable version since 0.3.33), in the launcher's route map, but we have not checked platform by platform (Android, iOS, Linux, macOS), especially openOMSI for iPhone and iPad, which is in Beta via TestFlight (not on the App Store). We do not promise it will work.

If you want to test, copy the package folder to Maps/<Mapa>/openomsi-realmap/ in the content folder and see whether the layers appear. On a phone, the content folder is wherever the launcher's Mods page puts it.

What to check

  • Use an openOMSI version that supports the format (0.2.48 or newer) and install the package as described in "How to install a Map Package".
  • Layers not showing up? Record the platform, version and channel (Stable or Beta) at /testar to help others.

Learn more

Can I create Map Packages for fictional maps?

Depends on the version

Yes. The Creator's generator has the own mode, for an invented map, without OpenStreetMap: it uses the map's own elements, without assuming a matching real city exists. The Fikcyjny Szczecin package is the example: it extracts vegetation, buildings, railway, watercourses and terrain from the map, plus the lines and timetables.

For real maps there are other modes (auto, which decides and explains the choice in the report, exact, fitted and shore). Lines, stops and timetables come from the map's own files, and the quality of the result depends on the source content: check the package before sharing it.

What to check

  • Before sharing, check the package in the Creator itself and credit the map and its authors.

Learn more

Which maps already have Map Packages?

Depends on the version

The packages' v0.2.0 release brings three examples: Berlin-Spandau (the map that ships with OMSI 2), Projekt Szczecin (the map is not perfectly aligned with the real city; the package prioritises the adjusted hydrography and keeps the map's own roads, with bus and tram lines) and Fikcyjny Szczecin (fictional map, package extracted from the map's own files).

Packages complement the maps and do not replace their download or installation. The maps still belong to their authors (Berlin-Spandau to the OMSI 2 developers; Projekt Szczecin to mpaw82 and tomass94, with contributors; Fikcyjny Szczecin to MrYanke$ and contributors). OpenStreetMap data follows the ODbL licence. For other maps, we found no official list beyond this one.

What to check

  • Is the package for the same map and the same map version you installed?

Learn more

Do Map Packages modify the original OMSI 2 files?

Depends on the version

No. The package is a separate folder (openomsi-realmap) next to the map files; it does not change the drivable map, its objects or the simulation structure, and a package for a map you do not own goes in the openOMSI content folder, so the OMSI 2 installation is not written to. Since Omsi.exe ignores the folder, the map keeps working as before in the original game.

As for the Creator: it only reads the OMSI 2 folders and writes the package to the folder you choose; when replacing an existing package, it keeps a copy in openomsi-realmap.backups. To remove a package, the sources do not describe a special step; deleting the map's openomsi-realmap folder is what the structure suggests (our own inference).

What to check

  • Is the openomsi-realmap folder inside the map folder? No original file needs to be swapped.

Learn more

Do Map Packages work in the original OMSI 2?

Depends on the version

On its own, Omsi.exe ignores the openomsi-realmap folder: what reads the package is openOMSI (and, according to the repository, Project Depot, which can read the same folder). For the original OMSI 2 there is only integration planning, which the official sources say is not delivered in Map Package Creator v1.0.0. So, today, do not expect to see the minimap with the layers inside the original OMSI 2.

Because it is ignored, the folder also does not get in the way of the original game: a map can ship with the package for both games without losing anything.

What to check

  • Want to see the layers today? Use openOMSI in a version that supports it (0.2.48 or newer).

Learn more

When should I use the compatibility site and when should I open a GitHub Issue?

Depends on the version

Use the Help Centre (FAQ) for usage questions, /buscar to find out whether a map, bus or mod has already been tested, and /testar to record your own test. The compatibility site is an independent database from the Portal OmsiModsBR community; it is not a bug reporting system for the project.

When you have a reproducible problem in openOMSI itself, report it on GitHub Issues. Before that, confirm the dependencies are installed, that you are on the latest version, and search for an existing identical report. Include the version, system, map name and the game.log (it lives in ~/.openomsi; on Windows, C:\Users\<você>\.openomsi). A report without the openOMSI version is insufficient: the project changes several times a day. The README also mentions the project's Discord server for reporting problems.

Since 0.2.18 there is also Setup → Export diagnostics (on the command line, openomsi --export-diagnostics <arquivo.zip>), which produces a ZIP support bundle with the versions, the graphics card and driver, the graphics settings, the controls and the last map and bus, without folders, names, chat, LAN codes or addresses. The bundle stays only on your computer and its folder opens by itself, so you can look inside before attaching it. When the game ends with an error, the launcher also shows the message with the Copy report and Report on GitHub buttons (names as they appear in the README, in English). Since 0.3.42 there is also Help > Troubleshooting, which lists problems with the installed content, and Setup, where the .openomsi folder can be moved elsewhere: if you changed that, look for game.log in the new folder.

Learn more

How do I move the bus to another point on the map when I am stuck, far from the road, or want to go somewhere else?

Depends on the version

The usage guide says that, in the free camera (F4, the map camera), Ctrl+click on the ground moves the bus to the nearest road to that point. The 0.2.28 changelog describes the F4 map differently: a click asks whether the vehicle should be moved there, anywhere on the map. The two texts appear at different places in the documentation, so we cannot say which gesture applies on your version: try both. On a touch screen (phones and tablets), according to the 0.3.42 notes, the cab panel gained the Free camera button, with a virtual direction pad to move the camera, and Exit free camera returns to the driver's seat; the notes do not say whether the gesture for moving the bus changed.

If the problem is only where the bus spawns, choose another starting point on the launcher's Drive page before starting (the exact field names changed between launcher versions). Moving the bus does not repair a map with missing content or broken terrain: if there is no ground or road at the chosen point, moving the bus there may not help. See the questions about missing content and terrain.

What to check

  • Is openOMSI on the current version? The behaviour of the F4 map has changed over the versions.
  • Is the destination a road on the map (and not woods, water or a tile with no content installed)?
  • Did the missing content warning appear when the map loaded?
  • If the bus got stuck on a bridge or an invisible wall on a modded map, see also the question about broken terrain.

Learn more

What are the Apple Maps-style navigator and city map like?

Depends on the version

This look arrived in Beta 0.3.34 and has been in the Stable version since 0.3.37. The navigator and the city map are drawn in the style of Apple Maps straight from the game's own map, with no map package needed: green terrain, fields, water, woods and single trees, train and tram tracks, and paved surfaces as they are (a car park becomes a grey yard). On the first visit to a map, the layers are read from its tiles, which takes a few seconds on a large map, and after that they are cached.

Houses appear in 3D, with lit walls and soft shadows: always in the navigator and, on the city map, when you zoom in (there is a setting for 3D buildings and a 2D/3D button). All the buses, trams and trains in the timetable appear on the maps where the timetable has them, and the other players in a LAN or server session appear with their names. The navigator can become a widget that you drag and resize. After 0.3.37: 0.3.38 started drawing lanes, edge and stop lines, pedestrian crossings, arrows and real houses; 0.3.42 fixed the ground that vanished on large maps (street names appeared over an empty background).

Learn more

Buses and mods

Buses that won't open, close the game or behave differently from OMSI 2; plugins, DLLs and scripts.

My bus doesn't work or doesn't show up in openOMSI. What should I check?

Depends on the version

The project's documentation says a bus made for OMSI 2 should work without changes, but that is a goal: the project is still early and some buses have problems. Before assuming it is a program bug, check the items below, since they are common causes: missing dependencies (models, textures, sounds or other packages), a folder in the wrong place and the openOMSI version.

The game.log (in the .openomsi folder of your user account; on Windows, C:\Users\<você>\.openomsi) usually indicates the file that was not found. In one public report, for example, the log pointed to a missing .o3d model, and the advice was to check where to get the complete bus.

In recent versions there are also two points that cause confusion. In 0.2.38, the launcher's bus list started showing one row per model, with the versions inside it: a bus may be “folded” under the model name. And, up to 0.2.37, large modded buses (the changelog mentions the EN92 and GN92) could end up without the 3D thumbnail in the launcher because the preview was still loading when the launcher was closed or a game was started; this was fixed in 0.2.38, and the previews that had been left out are tried again on every update. In other words, a missing thumbnail on an old version does not prove the bus is broken. According to the CHANGELOG, in 0.2.39 the manufacturer list in the bus selector went back to showing the manufacturers' full names.

Since 0.3.0 (the Stable stabilisation release), the in-game vehicle lists went back to offering the Original paint option next to “Random livery”, and the bus preview in the classic launcher shows the chosen livery. Mod makers got a Model test in the launcher in 0.2.48, which loads the bus as on a trip, without a window, and lists warnings, errors and textures that do not exist. Also remember that openOMSI has two update channels (Settings > General > Updates): Stable (the default, tested versions) and Beta (for testers, with versions not yet tested); if a bus fails on a Beta, it is worth checking on Stable, and vice versa. According to the 0.3.42 notes (Stable), the launcher started showing the transport mode of maps and buses (tram, train, metro, trolleybus) and marks, with the reason, a vehicle that does not suit the chosen map, which then does not start (the game also refuses it): a bus that “won't open” on a tram map may be just that. According to the 0.3.37 and 0.3.42 notes, the Troubleshooting page in the Help menu lists what is wrong with the installed content (packages waiting for their bus, buses that take parts from packages that are not installed, failed installations) and brings the Model test (in the 0.3.37 notes the tool appears as *Content test*, in Settings; check where it is in your version).

What to check

  • Read the game.log and look for “not found” or “cannot find” files.
  • Check that the bus has all its dependency packages installed.
  • Confirm it is in the Vehicles folder, in the expected structure.
  • On the launcher's Mods page, see whether the mod is listed as installed and is not switched off (the page lists each mod, lets you switch it off and on, and since 0.2.27 shows the content folder by folder). The launcher was rebuilt in 0.2.36; according to the CHANGELOG, 0.2.39 gave the Mods page back cancelling an installation, the file size check, filters and the content folder. If a button does not appear in your version, update. On phones, since 0.3.0 the Mods page has its own storage browser for installing a folder, a .zip, a .7z or a .rar (before that, “Add folder” and ZIP did nothing). Since 0.3.39, each mod on the page says in which game folders it put files and how many.
  • Update openOMSI and test again.
  • Check whether the bus has already been tested at /buscar.

Learn more

The bus closes the game (crash) when loading or after a few seconds. Why?

Depends on the version

An unexpected shutdown can have many causes: missing files, some bus feature that openOMSI does not handle yet, low video memory, the system (especially on phones) or the program version. You cannot conclude the cause just from the fact that the game closed.

When the game closes, it usually generates a report in the game.log (in the .openomsi folder of your user account). Keeping that file helps a lot. According to the project's README, when the game ends with an error the launcher shows the error with the *Copy report* and *Report on GitHub* buttons (the names may appear translated), and Setup > Export diagnostics produces a ZIP bundle to attach to a report, without folders, names or addresses; nothing is sent by itself and you can look at the contents first (available since 0.2.18).

Two common causes that the README mentions: a game that closes after a few seconds or with “the graphics device was lost” usually calls for an up-to-date video driver (the one from NVIDIA, AMD or Intel, not the one Windows installs), and on Windows it is worth switching to DirectX 12 in Settings > Graphics > Graphics API. Very old cards gained an “ANGLE (DirectX 11)” option in 0.2.17. There are public reports of specific buses that closed the game, including on Android, and they may or may not have already been dealt with in newer versions.

Do not confuse this with another problem: since 0.2.31 openOMSI has a watchdog that only acts when a version does not even manage to open the launcher (it installs a newer version, goes back to the previous one or opens in safe mode). A crash in the middle of a trip, caused by a bus, does not trigger that recovery. According to the CHANGELOG, since 0.2.39 the launcher warns again when a game ends with an error or is sent away by the server.

Two improvements in 0.3.0 help you understand what happened: when the video driver resets the card and the game comes back with lower graphics, the game now warns you instead of just looking worse; and, if the launcher crashes, its log now says where, which makes a report easier. Also in 0.3.0, openOMSI started opening again on older processors without POPCNT (before, “this app can't run on your PC” appeared). If the shutdown began on a Beta version, test the Stable one. If the problem is short video memory, 0.3.32 (Beta; in the Stable since 0.3.33) made high-quality passengers use a third of the graphics memory, and 0.3.33 started limiting everything the game keeps on the card through the Video memory setting (before, it could be exceeded by gigabytes) and made a card that runs out of memory stop losing the whole image. According to the 0.3.41 notes (Stable since 0.3.42), the Video memory limit now also counts the empty space the driver still holds on DirectX 12 and Vulkan: before, on a 12 GB card set to 6 GB, the driver held 11.5 GB after 18 minutes and the game dropped to 10 fps. That is a performance drop, not a shutdown, but it is worth testing that version if the problem only shows up after about half an hour of play. 0.3.41 also rejects malformed texture data before sending it to the video card (it uses a substitute texture and writes to the log), which closes one route to invalid textures, and, according to the 0.3.39 notes, on Android the launch after a crash shows the report window, with the GitHub buttons. This counts as “fixed since version X”, not as a guarantee.

What to check

  • Update openOMSI to the latest version.
  • Test with another bus to find out whether the problem is only with that mod.
  • Check the dependencies and the missing content warning.
  • Update the video driver; if the log mentions “graphics device was lost”, try another Graphics API in Settings.
  • Keep the game.log right after the shutdown.
  • Note the system, device and version before asking for help.

Learn more

The bus works in OMSI 2 but not in openOMSI. Does that mean openOMSI has a bug?

Depends on the version

Not necessarily. openOMSI is a from-scratch recreation and is still an early project: it may not support some specific feature of a mod. But there may also be dependencies that are in your OMSI 2 and not in the openOMSI folder, different paths, an old version of the program or a bus feature (such as a plugin) that is not loaded the same way.

So compare calmly: test other buses, check the files and see whether anyone has already tested that model. There are public reports of mods that work in OMSI 2 and have problems in openOMSI (displays, doors, animations); if that is your case, it is worth registering the result.

A lot has changed in this area in the 0.2 series, and an old report may no longer apply. According to the CHANGELOG, for example: destination displays that showed all the variants of a sign at the same time were fixed in 0.2.25; LED destination displays became bright again in 0.2.26; displays that depend on a variable declared only in the model (the Enviro500 case) appeared again in 0.2.31; LED matrices with [matl_alpha] after [matl_change] no longer light up every dot in 0.2.28; and the automated gearbox was adjusted for low-revving buses (0.2.21) and for scripts that keep the gear in their own variable (0.2.33); and, in 0.2.39, door keys stopped triggering two different doors at once (cases cited: GPM C2, Urbanway and Citelis). In 0.3.0, for example, the starting sounds and other triggered sounds that began at zero volume came back, as did the timetable sheet inside the bus and passengers reading the destination from what the bus display shows; in 0.2.48 a livery's folder stopped painting over the details of other liveries, and a paint scheme's [setvar] entries began to be written before each frame of the scripts (the IK-201 display went back to showing only Latin letters because of this). More recently, according to the release notes (Beta from 0.3.32, Stable since 0.3.33): stop departure displays, such as the HVV ones in HafenCity Hamburg, went back to showing lines, destinations and times (0.3.32); timetable buses appear when their trip starts, and articulated buses started to steer the rear axle (0.3.32); instruments printed on the dashboard and signs stopped flickering against the surface they sit on (0.3.33); and headlamps now have the beam coming out of the bus's own headlamps (0.3.33). According to the notes from 0.3.34 onwards (Stable up to 0.3.42): scripts with {else} chains and with $SetLength now work as in OMSI 2 (cases cited: the DBC Chicago Citybus fare box and the Kruger++ matrix display); bus scripts that make a long query at start-up work again, with the destination sign, the IBIS and the Citaro C2 screens in Grand Paris-Moulon; the route text on destination displays no longer vanishes when the camera moves a few metres away (0.3.39); a layered dashboard display no longer hides the front door graphic behind it (ADL Enviro500MMC Facelift, 0.3.40); and the MAN DN95 no longer shows up as a mirror (0.3.41). Treat this as “fixed since version X”, not as a guarantee for your bus.

People who create or tweak buses can use the game's developer tools (Ctrl+Shift+D, since 0.2.28), which show and hold script variables and draw paths, seats and mirrors over the bus. The project's MODDING.md also lists what openOMSI accepts beyond OMSI 2 (such as more than four interior lights per mesh); a file that uses this still loads in OMSI 2, which ignores what it does not know. According to the 0.3.34 notes (Stable in 0.3.37), several [visible] conditions of a mesh can be combined with [visible_range], ! and ||; meshes with only a simple [visible] keep the OMSI 2 rule.

What to check

  • Check that openOMSI is reading the content folder where the bus and its dependencies are.
  • Update openOMSI; some buses were adjusted in recent versions.
  • Look at the game.log and the missing content list.
  • Look up the bus at /buscar and register your test at /testar.
  • If the problem looks like the program's, search for or open an Issue with the version and game.log.
  • On builds before 0.1.538, TGA textures named .png, .bmp or .jpg could go missing: update before renaming files.

Learn more

How do I know whether a bus or mod is compatible with openOMSI?

Depends on the version

There is no official compatibility list. The Portal OmsiModsBR community compatibility database (independent, unofficial and complementary) gathers tests from users: look up the bus name at /buscar and check the openOMSI version used.

If the bus doesn't appear yet, test it yourself and record it at /testar. A result is only valid for the version tested: it may change when the project releases a new version. Since the project releases versions several times a day and the 0.2 series has changed a lot (launcher, lighting, AI traffic, plugins), a test made on a 0.1.x version may be out of date: if you can, repeat it on the current version. Since 0.3.0 the project has Stable versions (tested, the launcher default) and Beta versions (for testers); when recording a test, note which of the two you used, as numbering and behaviour may differ. The current Stable version is 0.3.42 (from 25/10/2026, published with the warning “Early release, expect bugs”), which comes after Stable 0.3.37 and already includes what Betas 0.3.34 to 0.3.41 brought; when there is a Beta ahead of the Stable, what exists only in it is in the Beta FAQ section. In 0.3.42 the launcher started showing the transport mode of maps and buses (tram, train, metro, trolleybus) and marking, with the reason, a vehicle that does not suit the chosen map: it is a compatibility clue, but it does not replace testing.

What to check

  • Search for the bus by model name and author.
  • Check whether the result is recent and which version it was on.
  • Test on your own machine, with all dependencies installed.
  • Record the result at /testar.

Learn more

Can I install mods as .zip, .7z or .rar? What does using an archive in place mean?

Depends on the version

Yes. The launcher installs mods from a folder, a .zip file, a .7z or a .rar (on Android too): on the Mods page (choose a folder or a file, or drag the file onto the window; according to the CHANGELOG, since 0.2.39 you can drop the mod anywhere in the window) or by placing the file in Mods/. The launcher sorts the content into the right folders (Vehicles, maps, Sceneryobjects, Splines and others) without writing to the original OMSI 2 installation.

Using in place is a different thing, and only applies to .zip: a .zip organised like an OMSI 2 installation can sit in Archives/ (on Android, openOMSI/Archives) and be read by the game without being unpacked. .7z and .rar files are always extracted into the installation: do not leave them in Archives expecting them to run directly.

For a .zip, the Mods page default is to extract what fits on the disk and to use the archive in place when the unpacked size does not fit. If installation fails, check the free space and whether the archive has the OMSI folder structure. On phones, since 0.3.0 the Mods page has its own storage browser for choosing the folder or file (.zip, .7z, .rar); before that, “Add folder” and ZIP did nothing. If an installation failed, the Troubleshooting page in the Help menu (0.3.37 and 0.3.42 notes) lists the failed installations and the packages waiting for their bus.

To see, switch off or remove what has already been installed, use the Mods page: according to the CHANGELOG, since 0.2.22 it lists each mod with its type, size and date, lets you switch each one off and on and delete it after a confirmation (0.2.22 and 0.2.23); since 0.2.27 the arrow on a mod's row opens its content folder by folder, and the fonts and textures that a mod puts in shared folders are recorded as its own, so they go away with it when the mod is switched off or deleted. The launcher was rebuilt again in 0.2.36 (Windows, macOS and Linux); according to the CHANGELOG, 0.2.39 gave the Mods page back cancelling an installation, the file size check, filters, the content folder and dropping a mod anywhere in the window. According to the 0.3.39 notes, each mod's row says in which game folders it put files and how many (for example “Vehicles 1, Fonts 2, Texture 1”), with “found in the content folder” for what was copied by hand, and when opened the content is grouped by those folders; and, according to the 0.3.40 notes, the page asks before copying a map's depot (HOF) files to all buses (“Share with every bus” or “Not for this map”). The CHANGELOG does not list the other functions (switching on, switching off, deleting) one by one for the current launcher, so we have not confirmed that all of them are the same: check on your version.

In versions of the 0.1.x series, deleting a bus's folder in Mods/installed uninstalled the content and kept the folder in Mods/uninstalled (0.1.1028). We did not find this mechanism in the current documentation, so do not count on it in the new versions.

What to check

  • Is the file a .zip, .7z or .rar (the documented formats)?
  • Do you want to use it without extracting? That only works with .zip, in the Archives folder.
  • Is there free space on the disk (or on the phone's storage) to extract?
  • A repaint for a bus that is not installed yet is kept and installed when the bus arrives.

Learn more

Do OMSI plugins (.opl files and DLLs) work in openOMSI?

Depends on the version

The project's plugin documentation (docs/PLUGINS.md) says an OMSI plugin (.opl with a DLL, “the original, unchanged”) is loaded directly when the program can load it (same system and architecture, for example a plugin made for openOMSI or a 32-bit DLL on a 32-bit version of Windows). Otherwise, it uses a helper program called omsi-plugin-host32.exe: on Windows it runs directly; on macOS and Linux, through Wine (wine on the PATH, or the path in OMSI_WINE). The helper is looked for next to the game.

Public reports from people on Windows show the warning “a 32-bit Windows plugin needs omsi-plugin-host32.exe next to the game”, meaning the helper must be next to the game. According to the 0.3.40 notes, the Windows zip and installer once again bring omsi-plugin-host32.exe and the .opl plugins with a 32-bit DLL (BCS is cited) run again; according to the 0.3.41 notes, those plugins no longer open console windows and OMSI Presentation Tools is left out, with a message in the log, and native helpers require the player's explicit approval for the plugin's content. In versions before 0.3.40 the helper may be missing, and we have not confirmed how this stands on macOS and Linux. For Android, the documentation consulted does not state support for OMSI plugin DLLs (a phone does not run Windows DLLs directly), so we cannot say it works. This information may change between versions.

Two details that often cause questions. First, the documentation itself says that a plugin that reads the bus's position, type or the map straight from Omsi.exe's memory, at fixed addresses, cannot work in openOMSI; the project offers openomsi_* variables that the plugin's author can list in order to read those values, and the same .opl serves both games. Second, the bus radio does not need a plugin to play: according to the user guide, openOMSI plays internet radio on its own for buses whose radio defines the Snd_Radio or SndExt_Radio variables (the ones made for the Sound Extension plugin), and it reuses the stations already written in SuperRadio-type plugins. See the question about radio on maps.

Since the 0.2 series there are also openOMSI's own plugins (Lua, and compiled .oop files), which are not OMSI 2 plugins: see the question about Lua.

What to check

  • Read the game.log: plugin warnings say which file failed to load (since 0.1.1707, when a DLL fails to load the log again states the reason given by the system).
  • On Windows, check whether omsi-plugin-host32.exe exists in the game folder.
  • To find out whether a plugin is the cause of a problem, the documentation mentions the environment variable OMSI_NO_PLUGINS=1, which leaves all plugins out (and the automatic safe mode of 0.2.31 also opens without plugins).
  • Read the plugin documentation for the version you use.
  • If the bus depends on a plugin, look for the result at /buscar.

Learn more

What is Lua in openOMSI? Is it the same as OMSI plugins?

Depends on the version

No. Lua scripts are a feature of openOMSI itself: .lua files in the plugins folder (plugins/<nome>.lua, or plugins/<nome>/main.lua for a plugin with several files) that give access to the game's variables, triggers and events, in a restricted environment (sandbox, Lua 5.4 with only the safe libraries). According to the documentation, they work on Windows, macOS, Linux and Android, and are reloaded when you save the file. Since 0.2.22 the API has about 270 functions and 60 events (bus, AI traffic, people, timetables, map, weather, camera, input, sound and LAN), and plugins can draw panels and notices on screen (since 0.2.16). According to the 0.3.32 notes (Beta; Stable since 0.3.33), plugins can also see and choose the ticket each passenger buys (reduced fares, passes); without a plugin nothing changes. According to the following notes (Stable up to 0.3.42): a plugin panel can sit under the navigator map, with anchor = "navigator" (0.3.38); plugins can close stops for a diversion and add up to 3 lines to the pause menu (0.3.39); they can read full tours, HOF data and destination identifiers (0.3.41); and, in 0.3.42, a bus can name Lua or .oop scripts in [vehicle_script], which run while it is the player's bus, and a .sco can name scripts for the objects placed from it (see the project's PLUGINS.md and OBJECT_SCRIPTS.md).

They are different from OMSI 2's .opl + DLL plugins. An OMSI 2 bus or map does not use Lua; the buses' normal .osc scripts are still run by the game.

Since 0.2.22 there are also compiled .oop plugins, made with the project's Development Tools (a separate repository): they are Lua or WebAssembly packed into one file for all platforms, signed or not, which run in a sandbox and only with the permissions they declare. A loose .lua, by contrast, keeps all the API's permissions. As with any mod, install plugins only from people you know and trust; the documentation says a Lua plugin only reads and writes files in its own data folder and cannot reach the network (it only talks to programs on the same computer), but that does not replace your own care.

Learn more

A Lua or .oop plugin does not load or was switched off by itself. What should I check?

Depends on the version

According to the project's plugin documentation, openOMSI's own plugins live in the game's plugins folder (and in each content folder): plugins/<nome>.lua for a single-file plugin, plugins/<nome>/main.lua for a plugin with several files (the other .lua files in the folder are modules and do not start by themselves) and plugins/<nome>.oop for a compiled plugin. A .lua is loaded again about a second after it is saved.

The game switches off plugins that misbehave, and the game.log (in the .openomsi folder of your user account) gives the reason: a Lua file that does not compile is left out, with the error in the log; after 10 errors the plugin is switched off until the file changes or the game restarts; a call that takes longer than 50 ms (an endless loop) is interrupted and the plugin switched off. An .oop is rejected entirely if it was altered after it was generated, is truncated or was made for a newer version of the plugin API than the one in your game; if a .lua with the same name exists, the .lua wins. Since the API gains functions with each version, a plugin made for a newer version may not work on an old one: update openOMSI.

This answer does not diagnose third-party plugins: it only gathers what the project's documentation describes. For an OMSI 2 .opl plugin with a DLL, see the question about OMSI plugins. According to the 0.3.41 notes, native helpers require the player's explicit approval for the plugin's content; and, according to the 0.3.42 notes, a bus's scripts ([vehicle_script]) run only with the vehicle content permissions (ui, storage, vehicle_write, audio).

What to check

  • Read the game.log: plugin errors and files that fail to compile appear there, and an error in an event handler is also shown on screen.
  • Is the file in the right plugins folder, with the right extension (.lua or .oop)?
  • Are you on a recent version? A new plugin may use functions that an old version does not have.
  • Test with OMSI_NO_PLUGINS=1 (an environment variable that leaves all plugins out) to find out whether the problem comes from a plugin.
  • If an .oop is rejected, ask the author for a version generated for your openOMSI version.

Learn more

Do AUXI and other special bus features work in openOMSI?

Depends on the version

The public documentation we checked (README, guides, changelog and Issues) does not mention AUXI, so we cannot say whether it works or not. Since these features usually depend on bus plugins or scripts, the safest path is to check the specific bus.

About other features: the changelog mentions support for destination displays (rollers, LED), radio through SuperRadio-type plugins and bus scripts (and, in recent versions, the radio display with station and song; see the question about radio on maps), but each bus may behave differently. If you tested it, record it at /testar.

Since the 0.2 series there are more related things that a special bus may use, always as “fixed or added since version X” and with no guarantee for your model: internet radio works without a plugin for buses that define Snd_Radio or SndExt_Radio (user guide), with optional small-speaker, hiss and signal-dropout effects (0.2.28); the destination form gained a line number and two lines of free text for displays drawn by script (0.2.28); HTML destination signs with LEDs glow at night (0.2.20); platform doors (BRT) open for the bus that stops there (0.2.20); and Lua plugins can read and write the bus's script variables (see the question about Lua). According to the CHANGELOG, 0.2.46 brought keys for the radio (next and previous station, volume), configurable for keyboard, steering wheel or controller. There is also the Radio: on / off action, for a key or button, which switches on the internet radio on a bus whose scripts have no radio of their own (0.3.34, Stable in 0.3.37). According to the 0.3.41 notes, BRT buses now serve the scheduled stop's platform, and passengers choose entrances facing it; the notes themselves ask for more testing on real maps, so do not treat this as guaranteed.

What to check

  • Look up the bus at /buscar to see whether someone has already tested it.
  • Check the game.log for plugin or script warnings.
  • Ask the community or the Issues, giving the name of the feature and of the bus.

Learn more

The bus appears without a texture, inverted or doesn't show up in the launcher. What could it be?

Depends on the version

A white or untextured bus usually indicates missing or misplaced texture files; a bus that doesn't show up in the list may be in a different folder than expected (there is a report of a bus in a subfolder that the launcher didn't read). The openOMSI version and the mod itself can also play a part.

There are also known bugs related to this system (bus textures), with reports in the Issues. Check the dependencies first and try placing the bus in the Vehicles folder in the standard OMSI 2 format.

Some recent fixes that may explain what you see on an old version (always “fixed since version X”, with no guarantee for your bus): darkened windows of a paint job on a layer with an alpha test no longer come out black (the GPM C2 case, 0.2.38); large textures no longer turn whitish when they are reduced or compressed, and invisible transparent faces no longer hide what is behind them (0.2.36); a lowercase texture folder inside a mod no longer hides the original's textures on Linux (0.2.28); and, in a scenery object's folders, a missing texture is no longer “borrowed” from another folder (0.2.24). Modded buses with textures in TGA format but named .png, .bmp or .jpg have been read by content since 0.1.538; since 0.2.44 any supported image format is recognised by its content, whatever the name. In 0.2.48, a livery's folder stopped painting over the details of other liveries (only what its .cti mentions counts). If what you see is flickering or blinking of instruments on the dashboard, signs on poles or timetables at stops, 0.3.33 (Stable; before that, Beta) now shows them steadily, with the last one drawn on top as in OMSI 2. According to the 0.3.34 notes (Stable in 0.3.37), darkened windows that share the texture with the bodywork no longer come out black (LiAZ 5292.65 and NefAZ 5299 2024), the invisible cover once again hides the sun visor instead of leaving a light-blue smear over the windscreen (Karosa B951/B961, SUNWIN V and others), and textures are sharp on cards with their own memory (half of the video memory); according to the 0.3.40 notes, windows of mod buses whose texture names are not plain ASCII (ZiU-682G, Trolza Optima) no longer stay opaque; and, according to the 0.3.42 notes, a texture that the model asks for as .dds and does not exist now counts as missing, as in OMSI, instead of being swapped for another file of the same name (the case of the MAN DN95, which showed up as a mirror).

What to check

  • Check that the bus's Texture folder is complete.
  • Avoid extra subfolders inside Vehicles.
  • Read the game.log looking for a texture not found.
  • Update openOMSI and test again.
  • On the launcher's Mods page (0.2.27 onwards), open the mod's content and see whether its Texture and Vehicles folders are there; fonts and textures that the mod puts in shared folders are listed as its own.
  • On Android: did you delete images that showed up in the gallery? In versions before 0.1.523 this could happen, because the textures appeared as photos; current builds create .nomedia automatically. If files have already been deleted, restore or reinstall the affected content.

Learn more

Advertisement

Skins and repaints

A repaint that doesn't show up, .cti files, multiple .cti files and white textures.

What is a repaint and what is a .cti file?

A repaint (or skin) is an alternative paint job for a bus, made by someone else. In OMSI 2, a vehicle's colour schemes are described in a .cti file; openOMSI reads that information (the [CTC] sections) to switch the paint.

If you installed a repaint for a bus that isn't installed yet, the documentation says it is stored and installed when the bus is added. The usage guide describes installing through the launcher's Mods page (a folder or a .zip, .7z or .rar file) or by dropping the content into the Mods/ folder; the installed content stays in openOMSI's content folder and is looked for before the original OMSI 2 installation, which is never changed. On phones, according to the 0.3.0 changelog, the Mods page got its own storage browser for installing a folder or a .zip, .7z or .rar file (before that, “Add folder” and ZIP did nothing).

To use the paint job, you choose it before starting, alongside the bus: see how to choose the paint job in the launcher.

Learn more

I installed a repaint, but it doesn't show up in the game. What should I check?

Depends on the version

The most common causes are: the original bus is not installed (the repaint depends on it), the folder was placed in the wrong location, the repaint is for another version or variant of the bus, or the bus's .cti wasn't updated. Another simple cause: the paint job is chosen before starting, in the launcher's bus step, so the repaint may be installed and simply not selected. Only after that does it make sense to suspect the program.

openOMSI has been adjusted regarding paint jobs (for example, depot paint by fleet number, paint kept in saved situations, the repaint's own number plate, the bus's paint as seen by other players in multiplayer and, in 0.2.38, windows of a paint job that came out black), so it is also worth updating the version and testing again. If the bus list seems to have lost versions in 0.2.38, remember that it now shows one row per model, with the versions inside it. Since 0.2.48, a repaint's folder no longer paints over the details of the other repaints in it (only what its .cti mentions counts), and, since 0.3.0, the in-game vehicle lists went back to offering “Original paint” next to “Random livery” and the bus preview on the classic Drive page shows the chosen livery. Since 0.3.42, according to the notes, the game shows another player's bus exactly as its driver has it (the same files and the same paint, fetched from the server by content when missing; part 2 of that change came in 0.3.36), and the launcher showroom now applies the paint scheme as the game does (the JGSP Novi Sad paint on the Jelcz showed the standard doors instead of the glazed ones in the preview). For all of this, “fixed since version X” applies, with no guarantee for your repaint.

What to check

  • Confirm that the correct bus is installed.
  • Check the repaint's installer: does it ask you to copy over a specific folder?
  • Check that the texture files came along.
  • In the launcher, open the bus's paint selection and see whether the repaint is in the list and selected (button names changed in the 0.2.22 and 0.2.36 launchers).
  • Open the Mods page: the 0.2.27 changelog says it lists each mod with its content folder by folder (Vehicles, Texture...), so you can see whether the repaint arrived. The launcher was rebuilt after that, so check whether your version still shows this. The 0.2.39 changelog says the Mods page got back cancelling an installation, the file size check, filters, the content folder and dropping a mod anywhere in the window.
  • Update openOMSI.
  • Look up whether the repaint has already been tested at /buscar.
  • On Android: did you delete images that showed up in the gallery? In versions before 0.1.523 this could happen, because the textures appeared as photos; current builds create .nomedia automatically. If files have already been deleted, restore or reinstall the affected content.

Learn more

When I continue a saved game, the bus changes paint or turns white. Is that normal?

Depends on the version

Users have reported this, and the changelog says saved situations now keep each vehicle's paint (entry for version 0.1.374). If you are on an earlier version, updating may fix it. If it happens on the current version, there may be other causes, such as the bus's repaint or .cti.

There are also known bugs related to this system, with reports in the Issues. Before reporting, confirm the version and the repaint used. The game also saves to new slots and the launcher continues from any of them (0.1.1028), and a continued situation resumes on the tour trip where it was saved (0.1.960); resumed sessions keep the bus displays and the timetable's place, and the IBIS moves to the next trip (0.1.1302).

Two more fixes that may explain what you saw on old versions: since 0.2.21, the bus's script textures (destination signs, IBIS, ticket printer) are saved with the situation and come back when it loads (before, they came back empty); and, since 0.2.34, the quick save (Ctrl+S) appears in the launcher's Continue, on the map where it was made, next to the last situation and the slots (before, only one slot seemed to save). Since 0.2.33, parked buses also stay where they were left. According to the 0.3.34 notes (kept in 0.3.37), the pause menu has “Save to a slot...” (in a new slot or over a slot of the map) and the launcher's Continue card deletes saves. For all of this, read it as “fixed since version X”, with no guarantee for your bus.

What to check

  • Check your version and update.
  • Try saving and continuing with the default bus, without a repaint, to compare.
  • If you saved with Ctrl+S, look for the situation in the launcher's Continue, on the same map; in versions before 0.2.34 only the slots appeared.
  • Note the name of the bus and the repaint.

Learn more

My bus or repaint shows up with a white or missing texture. Why?

Depends on the version

A white texture usually means the game did not find the texture file. This happens when a dependency is missing, the repaint was installed in a different folder, the file name doesn't match what the .cti asks for, or the repaint is not compatible with the bus version.

The game.log and the missing_content.txt file help find which texture is missing: on a computer they are in the .openomsi folder inside your user folder (~/.openomsi; missing_content.txt lists what is missing per add-on, according to the 0.1.14 changelog), and on a phone the game.log is in the app's folder. There are also known bugs related to white textures, with reports in the Issues; so note the version and the mod's name when asking for help.

If the texture is a TGA file whose name ends in .png, .bmp or .jpg: since 0.1.538 openOMSI reads the file by its content, as OMSI does (before, the texture could be missing). In current builds don't rename the texture as a first step: update. Texture names saved in a Korean, Chinese or Japanese code page can now also be found (0.1.1223).

Recent fixes that may explain what you see on an old version (always “fixed since version X”, with no guarantee for your bus): large textures no longer turn whitish when they are reduced or compressed because of transparent pixels, and invisible transparent faces no longer hide what is behind them (0.2.36); darkened windows of a paint job on a layer with an alpha test no longer come out black (the GPM C2 case, 0.2.38); and a lowercase texture folder inside a mod no longer hides the original's textures on Linux (0.2.28). If only your graphics card or driver shows white, the 0.2.18 changelog mentions the option to keep DXT/BC textures compressed on the GPU (gpu_texture_compression, on by default): it can be switched off for drivers that draw compressed textures wrongly, at the cost of much more video memory. It is a diagnostic test, not a general recommendation. In 0.2.39, the changelog says the reflections of what was then called Enhanced+ (now, since 0.3.42, Enhanced mode with “Real-Time Ray Tracing” switched on; Enhanced+ is no longer a mode) now use the real textures (on the windscreen, the rear window and other glass, which reflect buildings, trees and buses) instead of flat colours; that is the reflection in the glass, not the paint job's texture, and there is no guarantee for your bus. Since 0.2.43, according to the changelog, a texture is read by its content whatever the name, and is found under many image extensions (DDS with BC4-BC7, WebP, TIFF and others), and, since 0.2.48, a repaint's folder no longer paints over the details of the other repaints (only what its .cti mentions comes from there). More fixes from the 0.3.34 to 0.3.42 notes, always “fixed since version X”: darkened windows that came out black when they share the texture with the bodywork (Ychebniy LiAZ 5292.65 and NefAZ 5299 2024, 0.3.34); opaque windows on Russian mod buses whose texture names are not plain ASCII, such as the ZiU-682G and the Trolza Optima (0.3.40); in Enhanced, lit switches and gauges on a bus keep their texture at night instead of turning into flat white blotches (0.3.37); and the MAN DN95 shows its paint instead of a mirrored body when the .dds texture the model asks for does not exist (0.3.41/0.3.42; a missing .dds texture is now treated as missing, as in OMSI, without being swapped for a .bmp of the same name). This shows that some cases of white or mirrored textures came from details of each bus, not from your repaint, but there is no guarantee for yours.

If the problem only shows up on a graphics card with little memory (2 to 8 GB) on large maps, note that the 0.3.30 notes (Beta, now inside the 0.3.33 Stable release) mention about a fifth less texture memory and no longer losing sharpness when the card refuses a texture, and the 0.3.33 notes say that a card that runs out of memory no longer loses the whole picture and that the Video memory setting now limits everything the game keeps on the card. This may help people who saw textures missing for lack of video memory, but it is a hypothesis, with no guarantee for your case. Since 0.3.34, according to the notes, the share of video memory for textures on a card with its own memory became half of it (about 3.7 GB on an 8 GB card in Automatic), and, since 0.3.41, the video memory limit also counts the empty space the driver still holds on DirectX 12 and Vulkan, against slowdowns on long trips; textures with malformed data are rejected before upload, with a warning in the log, and the notes say this does not explain every report of coloured artefacts. 0.3.33 also brought a 0 to 100 % intensity control for reflections (paint, chrome and glass), which changes the reflection and not the paint texture.

What to check

  • Open missing_content.txt and the game.log and look for the texture's name.
  • Check that the repaint and the bus are the same version.
  • Reinstall the repaint following the author's instructions.
  • Update openOMSI.
  • On Android: did you delete images that showed up in the gallery? In versions before 0.1.523 this could happen, because textures appeared as photos; current builds create .nomedia automatically (ANDROID.md says that deleting those textures leaves buses white). If files have already been deleted, restore or reinstall the affected content.

Learn more

My bus has several .cti files or several repaints. How does openOMSI handle that?

Depends on the version

The public documentation consulted (usage guide, modding document and changelog up to 0.3.42) does not explain how openOMSI handles several .cti files on the same bus. We only know that it reads the colour schemes from the vehicle's .cti; the modding document says there is no limit to the number of [CTC] entries (colour schemes) in a model, which speaks of several schemes inside the vehicle, not of several .cti files. So we cannot say whether all the .cti files are used or only one. The 0.2.48 changelog only says that a repaint's folder stopped painting over the details of the other repaints in it (only what its .cti mentions comes from there), which may help in cases of mixed textures, with no guarantee.

There is a user report in which, in mods with several skins, the original texture and the variant's texture appear together, with no public answer about the cause. If you are facing this, test each repaint separately, follow the author's instructions and ask the community.

What to check

  • Install one repaint at a time and test.
  • Check whether the author says which .cti should be used.
  • Keep the game.log and the mod's name to report.

Learn more

Is there a way to merge several .cti files into one?

We did not find any public documentation, official or from the community (including the usage guide, the modding document and the changelog up to 0.3.42), describing a method for merging .cti files. So we do not recommend any specific procedure here. Editing a mod's files can break it, so always make a copy first.

If you know a method that works, share it with the Portal OmsiModsBR community, stating the openOMSI and mod versions, so it can be verified.

Learn more

My .cti has accents or path problems (upper/lower case). Does that get in the way?

Depends on the version

The public documentation consulted does not cover the encoding of .cti files in particular, so we cannot say whether special characters cause problems in them. The changelog only says, in general terms, that the content's text is read in the Windows code page, as OMSI does: Korean, Chinese and Japanese (0.1.623), Czech and Slovak as Windows-1250 (0.1.1726) and texture names saved in those Korean, Chinese or Japanese code pages (0.1.1223). As a general precaution, avoid accents and spaces in mod file names when the author doesn't use them.

As for paths, the usage guide says they are resolved without distinguishing upper and lower case and that Windows backslashes (\) work on all systems. There were also specific fixes for Texture or model folders written with different casing on Linux (0.1.9) and, in 0.2.28, for a lowercase texture folder from a mod that hid the original's textures.

What to check

  • Keep folder and file names exactly as in the original package.
  • Don't rename texture files referenced in the .cti.
  • If the problem persists, report it with the game.log.

Learn more

The depot or AI bus comes out with a different paint job. Can I choose?

Depends on the version

The changelog says depot buses wear the paint for their fleet number when the bus's [number] lists mention a paint (one .org file per repaint); before 0.1.10 they were painted at random. In other words, the result depends on the bus's and the repaint's data, not on a choice of yours. Since 0.1.523, a repaint with its own list of plates ([registration_list]) also has that plate used on AI buses.

Since 0.2.33, the bus for a timetable line is drawn from the depot in each session (using the session's seed), so the same line may get a different bus (and, with it, perhaps a different paint job) each time, as in OMSI; before, the same bus ran each line every time. We did not find in the documentation consulted a complete explanation of how to choose the paint of AI buses in every case. For your bus, the paint and the fleet number are chosen before starting, in the launcher (see how to choose the paint job in the launcher), or with --paint and --number on the command line. Since 0.3.34, according to the notes, any fleet number can be typed into a field beside the list (it appears on the bus and on the number plate) and, when you choose a bus, it gets a random fleet number instead of the first one on the list; since 0.3.41, fleet number and number plate can also be typed during the game, in the vehicle options. Two recent changelog fixes: since 0.2.46, in LAN play the AI buses show, on every player's screen, the repaint that the AI list gives them; and “Random livery” when placing a vehicle now truly draws at random (0.2.46), while the game's vehicle lists went back to offering “Original paint” too (0.3.0).

Learn more

How do I choose my bus's paint job (repaint) before driving?

Depends on the version

From what the usage guide and the changelog describe, the paint job is chosen before starting, in the launcher's bus step (the Drive page), together with the fleet number, the depot file and the number plate. In the new launcher (since 0.2.36, on Windows, macOS and Linux) the bus appears rotating in a preview drawn by the game itself, with the paint and materials as in the game, and on a phone the paint jobs get their own full screen. The names and the position of the buttons have changed more than once (0.2.22 and 0.2.36 launchers), so do not rely on the label seen in old tutorials. Since 0.2.39, according to the changelog, the desktop launcher is the only launcher: the game's own launcher window was removed, so tutorials that show that old window no longer apply. Since 0.3.34 (in the Stable version since 0.3.37), according to the notes, the Drive page joins map, line, bus and start on a single screen, in the Big Map layout by default, with Control Room, Classic+ and Classic in Settings > Launcher layout, and the menu on the left is split into Play (Drive, Multiplayer...), Content (Mods, Timetables), Options and Help; the bus preview sits in a photo studio, drawn with your graphics settings, and (0.3.42) shows the paint scheme as the game does.

On the command line there is --paint nome (alongside --hof and --plate; the fleet number is --number). The list of paint jobs comes from the bus and the installed repaints: if yours is not in the list, see the installed repaint that does not show up. In 0.2.38 the bus list started showing one row per model, with the versions inside it. Since 0.3.0, the bus preview also shows the chosen paint job on the classic Drive page, and the in-game vehicle lists went back to offering “Original paint” next to “Random livery”.

What to check

  • Confirm that the right bus is selected and open the paint selection.
  • If the repaint is not in the list, check the Mods page and the bus's folder.
  • Also change the fleet number if the bus comes with paint jobs by number.

Learn more

Line, route, HOF, itinerary and destination sign

How to choose a line, route and HOF, and why the destination sign (the destination display) may be blank or show the wrong thing. Each bus has its own scripts, so the exact steps depend on the vehicle.

What are line, route, itinerary, timetable and HOF? What is the difference?

General OMSI 2 knowledge: the line is the service the bus runs (for example, line 92). The timetable is the table of trips for that line on the map, and a route or tour is a complete shift of trips on the line. The itinerary is the path and the stops the bus goes through. These names vary from one person or mod to another, so the same name may mean slightly different things in different places.

The HOF is a file (.hof) that sits in the bus's folder and holds the list of destinations and codes that the destination sign and the IBIS can show. According to openOMSI's documentation, a HOF's destinations come from the [addterminus] lines and the HOF has its own name ([name]), different from the file name. In recent versions (the shared HOFs/ folder arrived in 0.1.1668) the HOF can also sit in a HOFs folder in openOMSI's content, for all buses to use without a copy in each folder. According to the version notes, since 0.3.37 (Beta 0.3.34) the launcher can also copy the HOF that an installed map needs into that shared folder, and since 0.3.40 the Mods page asks first (“Share with every bus” or “Not for this map”).

Learn more

How do I choose the line?

Depends on the version

The launcher has been rebuilt twice (0.2.22, then withdrawn in 0.2.23, and again in 0.2.36), so page, tab and button names have changed. In 0.2.36 a new launcher arrived for Windows, macOS and Linux that sets up the duty on a single page (Drive): the map with its picture, the bus, the line, the tour and the trips, with the route and the stops on the city map, as well as time, date, season, weather and traffic. The documentation for the Apple launcher, which follows the same design, mentions the Map, Bus, Duty, Time and weather and On the road cards next to a summary with the destination sign and the Start the duty button. According to the user guide, the Drive page has four steps (the bus, the route, time and weather, and the roadbook); in older versions there were three steps (0.1.1234) and the tab was called Dirigir. Since 0.2.39 this desktop launcher is the only one: the game's own launcher window no longer exists, and where it is not installed or cannot open its window (for example, without WebView2 on Windows or without WebKitGTK on Linux) the game tells you why and where it should be, instead of opening an old launcher. Choosing the line and tour is again a pair of searchable lists (0.2.39). Since 0.2.48 there is also the launcher layout option Classic, which brings back the Drive page in steps (Bus, Day & weather, Map & duty), so if your launcher looks different from what is described here, check that option. According to the 0.3.37 notes (Stable; it arrived in Beta 0.3.34), the Drive page became a single screen, with the map, the line and tour, the roadbook, the bus and the start button together: the Big Map layout (chosen by a community vote) is the default, and Control Room, Classic+ and Classic (the steps, as before) are in Settings > Launcher layout. The menu on the left was also split into parts (Play, Content, Options and Help). Page names may still change, so check your launcher. This applies to Stable (0.3.0, 0.3.33, 0.3.37 and 0.3.42; 0.3.33 brought the launcher the route map with the city around the streets, when the map has a map pack, which debuted in Beta 0.3.31, plus two more smaller sizes and French); Beta and TestFlight versions may have different numbering and a different look.

The documentation says the lines that run on the chosen date appear. Since 0.2.38 the launcher names the line by the first and last stop of the longest trip (“137 - Stadtgrenze - Falkensee Bhf”); before, the line listed the terminals of all the short and depot-return trips, which looked like a list of stops. Inside the game, the pause menu (Esc) also has Line and tour for picking a line and a tour (a start made through that menu begins at the current time since 0.2.18); the desktop pause menu gained categories and action cards in 0.3.41 (Stable since 0.3.42), so the item may be inside a category. In runs started from the terminal there are the --line and --tour options. According to the CHANGELOG, since 0.2.46 a tour that does not run on the chosen date can be driven on the next day it runs with one click, choosing the line and tour from the pause menu works again in free driving with the timetable buses switched off, and night tours go past midnight (the launcher keeps the chosen trip after midnight).

Not every line on the map appears for the player: in OMSI 2 a map can mark some lines as AI-only, and openOMSI's documentation describes this behaviour (in the Berlin-Spandau example, only 5 of 23 lines were open to the player). Since 0.1.576, AI-only lines are no longer offered for driving. Any line number can be typed in Route number > Type a route number... (0.1.1098; the item's name may have changed in the new menus). If the line you are looking for doesn't appear, the date, the scenario (chrono) and the map itself may be the cause; the documentation explains that a scenario can remove lines from the list ([deactivate_lines]) and that a newer scenario can bring them back, and a reading error in this, which removed lines by mistake, was fixed (the documentation does not say in which version).

What to check

  • Is the chosen date within the period in which the line exists on the map?
  • Does the map really have that line, and is it open to the player?
  • Does the chosen day of the week or holiday allow the tour? School-bus tours that only ran during the holidays were fixed in 0.2.21.
  • Are you looking at the line list in the launcher's map and duty step?
  • Did the launcher's map appear full of letters after a game or a graphics card failure? That was fixed in 0.1.1302.

Learn more

How do I choose the route (tour) and see its start and end?

Depends on the version

After choosing the line, the launcher lets you choose the tour (the shift's route). openOMSI's CHANGELOG records that the selector now shows the start and end of each tour (PR #281) and there is an issue (#242, closed) asking for exactly that. In which version each thing reached your download, the documentation consulted does not say in a simple way.

Since then the choice has been improving, according to the CHANGELOG: the tour list filters by route or stop, starts at the trip found and hides tours that have already ended, and the roadbook keeps the chosen trip (0.1.1668); a tour's line names the first and last passenger trip, not the depot-return trips (0.2.21); and the new launcher (0.2.36) shows line, tour and trips with the route and stops on the city map. On a phone, the pause menu's tour list gained a Start button under the list on narrow screens (0.2.37; before, you could only tick the tour). In 0.2.39 the choice of line and tour became a pair of searchable lists again, and a tour can be found by any stop on its trips. Since 0.2.46, according to the CHANGELOG, a tour that does not run on the chosen date can be driven on the next day it runs with one click, and the launcher shows the map's upcoming departures across all lines and offers each tour the buses its timetable indicates. According to the 0.3.32 notes (in Stable since 0.3.33), timetable buses now appear when their tour runs, as in OMSI 2: a tour's first trip leaves at departure time, not a quarter of an hour earlier. According to the 0.3.37 notes (Stable), each tour says how long its trips last (for example “32 min per trip”) and depot-return trips are marked in the list; in 0.3.40 the roadbook started opening the chosen trip in a timeline with the stops and times, and in 0.3.41 (Stable since 0.3.42) each trip shows its duration and tours with the same number on different days can be chosen separately. 0.3.41 also brought a timetable editor on the map (Content > Timetable): clicking on stops builds a new trip, which is saved as a .ttp file next to the line, without touching the map's own files.

There was also a request for a timetable and route selection menu with help arrows (#412). It is a feature request, not a guarantee that it exists; I have not confirmed whether it is still open.

What to check

  • Use the latest openOMSI version and see whether your launcher shows the tour's start and end.
  • Confirm that the date and weekday allow that tour.
  • If the tour you are looking for has gone from the list, see whether it has already ended at the chosen time: ended tours are hidden.

Learn more

How do I select the bus's destination?

Depends on the version

In the game, the Esc menu has the Destination display... option (the destination sign panel), where you can manually choose any destination from the bus's HOF list. According to the CHANGELOG this applies to roller, matrix and custom signs. The pause menu was redesigned in 0.2.26 and 0.2.36 (and, on desktop, gained categories and action cards in 0.3.41, in the Stable since 0.3.42) and there is also a quick menu when you tap Alt (0.2.28), so the exact name and place of this option may be different on your version; the F5 to F8 keys are the ones for the sign and the roller, as in OMSI, according to the user guide. From 0.2.28 there is also a destination form with a line number and two lines of free text, for panels drawn by script. The list now shows the HOF's names, like OMSI's own list (0.2.26), and old HOFs show the destination names in the menu and on the panels, with a destination chosen by hand firing the script's own trigger, as in OMSI 2 (0.1.1726).

In the launcher, the destination also comes from the tour you chose (the game sends the line and terminal to the bus's script). But, since 0.2.28, choosing the duty no longer types the code into the IBIS or turns the roller by itself, as in OMSI 2 (Shift+U and --autostart still do that). If the sign stayed on the old destination or went blank, choose the destination by hand (since 0.2.46 the quick menu's destination form also offers the destinations from the bus's HOF). A choice made while the panel is still changing waits for the change to finish, and the most recent one wins (0.2.26). According to the CHANGELOG, passengers read the destination from what the bus's IBIS is showing (0.2.48) and from what the panel displays (0.3.0), so the destination you leave on the sign influences who boards.

Since the destination sign is controlled by the bus's scripts, the result may vary on each vehicle. The documentation consulted does not provide a single step-by-step for all buses.

What to check

  • Does the bus have a HOF with destinations? Without one, the list is empty.
  • Is the chosen HOF the one for the map and year you are using?
  • Try another destination from the list and then another bus, to compare.

Learn more

How do I set up the destination sign?

Depends on the version

In general, the destination sign shows the destination and the line number that the bus receives from the HOF and the timetable. In openOMSI you can choose the destination in Esc > Destination display... and the line number in Esc > Destination display > Route number (the CHANGELOG says the line comes from the HOF and the map's timetable, and the destination stays); since 0.2.28 there is also a destination form with a line number and two lines of free text for panels drawn by script. Since the menu was redesigned later (0.2.26 and 0.2.36), the names of these items may be different on your version.

Important: what decides how the panel reacts is the bus's own script. The openOMSI documentation says that, when a trip starts, the game sends the line and the terminal to the vehicle's script and the script does the rest (codes, IBIS, panels). So there is no single procedure that works for every bus.

In Enhanced mode, flipdot matrices (such as the Krueger on the MAN NL/NG) no longer glow like LEDs (0.1.538); LED panels keep their glow and go dark when the bus power or lights are switched off. The LED mip strength setting (0 to 4) replaced the old on/off switch (0.1.576), and there is also LED glow (0 to 15; 0 switches off the halo). LED destination panels that stayed dark were fixed in 0.2.26, HTML LED panels now glow at night like the others (0.2.20), a panel that stacks several versions of the sign no longer shows them all at once (0.2.25), and panels whose model uses a variable that no list declares, such as the Enviro500's, appear again (0.2.31). According to the 0.3.42 notes, in Enhanced mode the screen of a script, such as the Krueger matrix on the EMT (Mallorca) Citaro, is no longer treated as glass and now lights up at night, where it used to stay grey; and in 0.3.37 the chained {else} and $SetLength began to work as in OMSI 2, which fixed, among others, the Kruger++ matrix.

What to check

  • Read the bus's documentation or readme: many mods explain their own panel.
  • See whether the bus uses IBIS, a roller blind or an LED panel, since each works differently.
  • Confirm that the bus has at least one HOF in its folder.

Learn more

How do I make the itinerary (stops and route) appear?

Depends on the version

According to the user guide, the Drive page has the roadbook and the IBIS codes, and the roadbook opens on your first trip (0.1.1234); since the desktop launcher has been the only one since 0.2.39, that is where this lives, and the launcher documentation (0.2.36) talks about trips with the route and stops on the city map, but I have not confirmed whether the roadbook with the IBIS codes is still in the same place there. Inside the game, the navigator (a corner of the screen) and the city map show the trip's route with arrows and the stops with their times, according to the user guide: a click on the navigator (or Shift+M) opens the city map and Shift+N switches between map, map with the next times, and off. For this, the map's timetable must have the trip you are making.

If you drive in free mode, without choosing a line and tour, there is no trip in progress and therefore no itinerary to show. The itinerary the bus itself displays (for example, on the IBIS screen) depends on its scripts. The documentation consulted does not detail more than that. The timetable sheet in the cab shows the player's schedule (0.1.576) and follows the OMSI layout (0.1.774): Courier New text, stop names cut at 25 characters, 24 lines per column and the arrival and departure words in the game's language. Stops attached to another object ([attachObj]) enter the route map, and the stop of a duty whose tile was not yet loaded is now reached once it loads (0.1.1223); the route arrows show street and stop names also in Cyrillic and in other scripts that the arrow font lacks (0.1.1302). The duty starts at the first trip of the tour whose first stop the bus can still reach before departure, and not necessarily the trip that was under way at the start time. If you chose the duty through the pause menu, it starts at the current time (0.2.18). According to the CHANGELOG, the timetable sheet in the cab shows the timetable again in 0.3.0 (it had stopped showing it), and since 0.2.46 the navigator stays with the bus when you walk around it during a duty, without recalculating the route or moving the stops. If the map comes with a map pack, the navigator and the city map also show the terrain under the streets (0.2.48), and the launcher's route map shows water, green areas, rivers, railways and borders under the streets (Beta 0.3.31, in Stable since 0.3.33). The navigator and the city map were redone in the Apple Maps style (0.3.37 in Stable, Beta 0.3.34): the navigator is a rounded map with floating cards (next turn and street, time, speed with the limit, and the next stop with line, distance, time and delay) and can become a widget that you drag and resize; the city map gained 3D houses and, from 0.3.38, lane markings and houses drawn from the models themselves, plus the relief when there is a map package; a compass to turn the map and, in 0.3.40, waypoints with numbered pins (click on the Shift+M map) are also in the notes. On maps with a package, the Lines panel of the city map lists the lines with their times and the time at each stop (0.3.36). The launcher's roadbook now reads from the first to the last stop (0.3.39) and opens the chosen trip on a timeline with the times (0.3.40), and the in-game timetable sheet shows the departure of the next trip (0.3.41); the timetable window (Insert) gained the Expected column, with the current delay added, when there is room (0.3.37).

What to check

  • Did you start the duty by choosing a line and tour, and not just driving freely?
  • Does the map have a timetable for that line on the chosen date?
  • Look in the game for the navigator and the city map (click it or Shift+M) and the timetable window (Insert key, according to the guide; check Controls, since the keys are configurable). The F4 key is the free camera.

Learn more

Do I need a HOF?

Depends on the version

To have destinations on the destination sign and for the bus to work within a map line, normally yes. openOMSI's documentation says the game loads all the .hof files in the vehicle's folder and that the destinations come from them. Without a HOF there is no destination list to choose from.

If the map you use has its own HOF (many maps include one), the game tries to match it by name. A bus without the map's HOF generally shows the first destination of the first HOF in the folder, and openOMSI added a lookup of the depot's HOF by name in other vehicle folders as well.

Since 0.1.1668 openOMSI's content also accepts a top-level HOFs folder: the .hof files in it serve all buses, with no copy in each folder (if a file with the same name is in the bus's folder, the bus's copy wins). According to the documentation, an AI bus on a tour whose group is a simple [aigroup_2], with no [aigroup_depot] block (the case of Hong Kong maps), also gets the map's depot HOF, which fixed AI buses with a blank sign (0.2.16).

What to check

  • Does the bus's folder (or the content's HOFs folder) have any .hof file?
  • Does the map indicate a specific HOF (the map's page usually says)?
  • Is the map's HOF name the same as the file's [name]? (the comparison is case-sensitive)

Learn more

How do I choose the HOF?

Depends on the version

In the launcher, the HOF choice sits with the bus: the user guide lists “depot file” among the items in the bus step (search, paint jobs, depot file, plate) and the new launcher (0.2.36) mentions “paint, fleet number and depot”. In the older documentation the field was called Depot file (HOF), and the Automático mode follows the map and the date, with the option of picking a HOF by hand. In the game, the CHANGELOG mentions Esc > More > Depot file (HOF)..., but the menu was redesigned later (0.2.26 and 0.2.36), so the path may have changed. On the command line there is --hof nome.

The HOF can change with the map and the year: the CHANGELOG cites the Berlin map case, where line 137 exists in one year and 92 in another, and openOMSI now follows the map's scenario date (chrono). If your map has its own HOF, prefer the one the map's author recommends. A bus uses first the depot file of the map's own location and only then that of another bus (0.1.1120), and the map's HOF still applies to a bus that does not have it when it carries the chosen line (0.2.34). The HOFs in the shared HOFs folder appear in the depot list after the bus's own (0.1.1668). According to the notes of recent versions: a HOF chosen by hand stays when you switch buses if the new bus has a file with the same name (0.3.39, in Stable since 0.3.42); the Mods page warns about a HOF that nothing installed provides and has the Add HOF files to buses button (0.3.37); since 0.3.40 a map's HOFs are only shared with every bus when you say so (“Share with every bus” or “Not for this map”), because copying them gave wrong destinations on buses with their own IBIS on maps with one HOF per company (such as Grand Paris-Moulon), and Automático mode, when you choose a line, picks the HOF that carries it, from the bus or from the map's folder (the game finds a map's HOF in its folder without a copy). In 0.3.41 (Stable since 0.3.42), the Help page Troubleshooting lists map HOF problems that could not be added, along with other content problems.

What to check

  • Try Automático mode first.
  • If the sign is wrong, try another HOF from the list.
  • Check the chosen date: it can change the HOF automatically.

Learn more

Can I use the same HOF on several buses without copying the file into each folder?

Depends on the version

Since 0.1.1668, according to the CHANGELOG, openOMSI accepts a top-level HOFs folder in the content (the same folder where Vehicles, maps and the others live): the .hof files placed in it can be used by all buses, without a copy in each Vehicles/<ônibus>/ folder. If the bus's folder and the HOFs folder have a file with the same name, the bus's own copy wins, and the launcher's depot list shows the shared HOFs after the bus's.

This does not change how the sign works: what decides how the panel reacts to a destination is still the bus's script, and a HOF only helps if its codes and terminals are the ones the bus expects. In builds older than 0.1.1668, the way to do it was to copy the HOF into each bus's folder. According to the 0.3.37 notes, the Mods page has the Add HOF files to buses button, which adds chosen HOFs to every bus, and since 0.3.40 a map's HOFs are only copied to every bus when you confirm.

What to check

  • Is the HOFs folder in openOMSI's content (next to Vehicles and maps), and not inside a bus's folder?
  • Is the map's HOF [name] the same as the one the map asks for? (the comparison is case-sensitive)
  • After putting the file in place, does it show up in the bus's depot list, after the bus's own HOFs?

Learn more

Does the IBIS work?

Depends on the version

openOMSI's documentation says the game runs the bus's scripts and that the IBIS is controlled by them: the game sends the line and the terminus and the script does the rest. So the IBIS that comes with a bus may work, but that depends on the bus, the HOF and the version. The documentation consulted does not provide a list of compatible buses or IBIS units.

There are also known bugs related to destination panels and screens of specific buses. If your case involves a particular bus and map, check the compatibility database or the Issues.

The IBIS and destination scripts have been fixed several times: callback arguments are now rounded to the nearest integer, as in OMSI (a terminus code of 1100.9999 now finds terminus 1101, 0.1.538); the IBIS chooses the route from the trip's stops (0.1.759); GetTTTerminusIndex returns the depot terminus matching the trip's, or -1, which fixes a wrong or random automatic destination, and returning to free mode clears the bus's timetable values (0.1.774); and lines that start with a letter (X10, M48, N9) now show correctly on the destination panel (0.1.721). If you use an older build, update before looking for a workaround. Also fixed: four-digit lines, such as 7110, keep their number in the IBIS (0.1.1120); line numbers with symbols, such as -10, are preserved on the panel (0.1.1147), and any number can be typed in Route number > Type a route number... (0.1.1098); a depot file's stop list belongs to the trip written before it, so a trip without a list no longer inherits another trip's stops (0.1.960); and Russian HOF and map texts keep their stop names on Windows set to Chinese, Japanese or Korean (0.1.960). In 0.1.1166 the duty advances to the next trip when the bus is at the first stop a minute before departure, which fixes the IBIS stuck on the old terminus. Since 0.1.1302, a resumed session keeps the bus's panels and the IBIS moves to the next trip; in 0.2.21, the bus's script screens (destination panels, IBIS, ticket printer) started being saved with a situation and come back when it is loaded (before, they came back empty); and in 0.2.28 choosing a duty stopped typing into the IBIS or the roller by itself, as in OMSI 2 (Shift+U and --autostart still type), so you may need to type the code or choose the destination by hand. According to the CHANGELOG, since 0.2.46 the automatic IBIS types in by itself a trip without a line number that the HOF treats as line 000 (and its passengers board), and since 0.2.48 passengers read the destination of the HOF line the IBIS is on, so nobody used to board a bus with a code typed outside the list. According to the 0.3.39 notes (Stable since 0.3.42), the IBIS box on the Drive page highlights and lists first the route code that matches the chosen trip, so you don't type the code for the opposite direction, and in 0.3.34 buses whose scripts make a long query on start-up started working again (in Grand Paris-Moulon, the sign, the IBIS and the Citaro C2 screens). For anyone reporting a problem, the environment variable OMSI_DEBUG_IBIS records in the log the reasoning of the IBIS “typist” (from the project's list of debug options).

What to check

  • Does the bus need a plugin (an .opl file with a DLL)? DLL plugins have their own rules; see the buses and mods category.
  • Is there a compatible HOF and a trip in progress?
  • Compare with another bus on the same map.

Learn more

Why is the destination sign blank?

Depends on the version

There are several possible causes, and not all of them are openOMSI's. Among the most common: the bus has no HOF or no destination was chosen; the HOF does not match the map or the date; there is no trip under way; the panel depends on a plugin or script that was not loaded; or that type of panel is not yet fully supported.

A detail from the documentation: a bus without a valid destination (or with the special $allexit$ destination) is treated as out of service, and passengers do not board. So a blank sign can also explain passengers who don't get on. Lines that start with a letter (X10, M48, N9) now show correctly on the destination panel since 0.1.721.

More recent fixes that may explain a blank or wrong sign on old builds: from 0.2.28 choosing the duty no longer types into the IBIS or the roller by itself (Shift+U and --autostart still do), so the panel may stay as it was until you choose the destination; AI buses from a simple [aigroup_2] group had no sign on Hong Kong maps until 0.2.16; panels that stack several versions of the sign showed them all at once until 0.2.25; and panels whose model uses a variable that no list declares (the Enviro500) only appeared again in 0.2.31. As for the departure boards at stops (such as the HVV ones in HafenCity, Hamburg), according to the 0.3.32 notes they showed the stop name without lines, destinations or times since 0.2.39; this was fixed in 0.3.32 (Beta), which has been in Stable since 0.3.33. Other fixes from the notes: buses whose scripts make a long query on start-up have a sign, IBIS and screens again (0.3.34, the case of the Citaro C2 in Grand Paris-Moulon); the route text no longer disappears when the camera moves a few metres away from the bus (0.3.39); and, in Enhanced mode, the screen of a script such as the Krueger matrix on the EMT Citaro lights up at night instead of staying grey (0.3.42). If the sign shows something but nobody boards, remember that, according to the CHANGELOG, passengers read the destination from the IBIS (0.2.48) and from the panel (0.3.0), and that a destination typed outside the HOF list counts as no destination.

What to check

  • Choose a destination in Esc > Destination display... (the name may vary in the redesigned menu) or, with a duty chosen, type the code into the bus's IBIS.
  • Choose the HOF by hand instead of Automatic, or the other way around.
  • Check the game.log and the missing_content.txt in ~/.openomsi for messages about missing content or plugins.
  • Test another bus on the same map and the same bus on another map.
  • Update: roller blind, LED and text panels have had fixes. The Stable version (the default on the launcher's update channel) is the recommended one for most people; the Beta channel is for testers and receives fixes earlier.

Learn more

Why does the wrong destination show on the sign?

Depends on the version

The destination shown comes from the HOF the bus is using. According to the documentation, when the bus does not find the HOF the map asks for, it uses the first HOF in the folder, and its first destination. It is also possible that the chosen HOF is from another year or another map, or that the trip's terminal name does not match the terminal name in the HOF.

For AI-controlled buses, there were reports of a swapped HOF; the maintainer replied that most items on the list were already fixed, and the CHANGELOG mentions HOF and date fixes. In the IBIS, the automatic terminus choice started using the trip's correct terminus in 0.1.774 (before that the destination could be wrong or random). Also fixed were the bus that took the HOF from its own folder with a line of the same number instead of the map's HOF (0.2.34), the bus that took another bus's HOF before the depot of the map's location (0.1.1120) and a destination chosen by hand while the panel was still changing (0.2.26). According to the 0.3.40 notes, copying a map's HOF to every bus gave wrong destinations on buses with their own IBIS on maps with one HOF per company (such as Grand Paris-Moulon); that is why the Mods page now asks first, and Automático mode picks the HOF that carries the chosen line. If the error persists, consider line, route, HOF, version and the bus itself before concluding that the problem is the game's.

What to check

  • Choose the HOF manually (the depot file field next to the bus in the launcher, or Esc > More in the game; the name may vary on your version).
  • Check the date: the HOF may change with the map's scenario.
  • See whether the bus has several HOFs in the folder and whether the first is the right one.
  • Test with the bus that comes with the map.

Learn more

Do all buses set up the destination sign the same way?

No. Each bus uses its own scripts, and some use IBIS, others roller-blind displays, LED, dot matrix or their own screens, with different key sequences and codes. openOMSI's documentation confirms the game only sends the line and the terminal to the bus's script and the script does the rest.

That is why this FAQ doesn't include a single destination sign tutorial. The safest path is to read the bus's documentation and use openOMSI's Esc > Destination display... menu (the item may have a different name or place in the redesigned menu) as an alternative way to choose the destination. Destination panels have their own keys in OMSI (F5 to F8 in openOMSI, according to the guide), but what each key does depends on the bus's script.

What to check

  • Look for the bus's manual or readme.
  • Check whether the bus requires a specific plugin or IBIS.
  • Compare with a bus that comes with the map.

Learn more

How do I know whether a bus's destination sign works in openOMSI?

The Portal OmsiModsBR Compatibility site is an independent, complementary community database (not an official bug channel) with reports on whether a map or bus works. Look up the bus at /buscar. If you tested it and want to share the result, use /testar.

If you found a reproducible bug in openOMSI itself, the place to report it is the project's GitHub Issues, giving the version, map, bus and the steps to repeat it.

Learn more

Vehicle prefix and number

What exists today for changing a bus's number plate, prefix or fleet number, and what the public documentation does not say.

How do I change the bus prefix?

Depends on the version

The public documentation consulted (user guide, CHANGELOG up to 0.3.0, release notes up to 0.3.42 and project documents) does not describe any openOMSI feature for the player to change the bus prefix. What it does describe is choosing the paint, the fleet number and the number plate (see the questions below). The notes of Stable 0.3.42 (and of 0.3.34 to 0.3.41) mention a typeable fleet number and plate, but still do not mention an editable prefix.

On many OMSI 2 buses, the prefix or number appears in the mod's own textures and scripts, so whether it can be changed depends on the vehicle. Since the source consulted does not confirm it, treat it as unconfirmed and test on your bus.

What to check

  • Does the mod's bus have its own number or prefix options on the panel or in the menu?
  • Does the bus have repaints (skins) with different numbers? In many cases the number comes from the paint.
  • Check the latest version: new features arrive several times a day.
  • In the launcher, the drive screen shows the paint and the fleet number of the chosen bus (in the desktop launcher, which since 0.2.39 is the only launcher); the exact button names change between versions. Since 0.3.34 the Drive page brings bus, map and start together on one screen (Big Map, Control Room, Classic+ and Classic layouts), and since 0.3.41 the fleet number and plate can also be typed during the game, in the vehicle options.

Learn more

How do I change the bus number (fleet number)?

Depends on the version

Yes, since 0.1.623: the fleet number can be chosen from the bus's number list before driving, as in OMSI's vehicle dialogue, both in free play and on a shift (duty) and also with --number (the CHANGELOG mentions this option in 0.1.623; the current guide's options table lists only --paint, --hof and --plate, so check on your version). Since 0.1.721 the number is applied before the bus starts, and the launcher's vehicle selection shows a preview of the paint (livery). Since 0.3.0, the vehicle lists once again offer the “Original paint” option, alongside random paint. In the desktop launcher (0.2.36), the drive screen brings together on one page the bus preview (drawn by the game itself), the paint, the fleet number and the depot. Since 0.2.39 this is the only launcher (the game's old own launcher window was removed); the CHANGELOGs from 0.2.39 to 0.3.0 mention no change to the choice of fleet number. Since 0.3.34 (stable in 0.3.37), any fleet number can be typed in a field next to the list and appears on the bus and on the plate, and, when you choose a bus, the launcher draws a random fleet number instead of always using the first one on the list. Since 0.3.41 the fleet number and plate can also be typed during the game, in the vehicle options. The Drive page now sits on a single screen, with the Big Map (the default), Control Room, Classic+ and Classic layouts.

The list depends on the bus itself: the mod's author defines which numbers and paints exist. Depot buses driven by the AI use the repaint of their fleet number when the bus file lists that repaint, and, if your bus has several paints with different numbers, changing the paint also changes the number.

What to check

  • Use version 0.1.623 or newer (preferably the current one).
  • In the launcher, in the bus section (drive screen), see the available paints (liveries) and fleet numbers; typing in an open list filters the options (since 0.1.960), and since 0.3.34 there is a field for typing the fleet number.
  • See whether the bus folder has separate paints per number.
  • Check the mod's readme: the author may explain how to change the number.

Learn more

Is it possible to change the vehicle's number plate?

Depends on the version

Yes, there is a plate field (registration plate). The user guide mentions the --plate "B-AB 1234" option for the player's vehicle, and the launcher's Drive page lists "number plate" in the bus section (the guide text may still be written for 0.2.38; the description of the 0.2.36 launcher mentions paint, fleet number and depot, without mentioning the plate, and, as the desktop launcher has been the only one since 0.2.39, check on your version whether the field appears). The CHANGELOG records PR #237 (custom plate) among the items incorporated in version 0.1.307. Since 0.3.34 the typed fleet number also appears on the plate, since 0.3.38 the Depot page stores the plate (the text mentions a French plate) of each of your buses, and since 0.3.41 the plate can be typed during the game, in the vehicle options.

This is the number plate, and not necessarily the prefix or fleet number painted on the bus. If the plate text appears different from what you expect, see the question on the subject: Issue #133 dealt with plates showing something else (the CHANGELOG mentions it in versions 0.1.523 and 0.1.623; we have not confirmed whether it has since been closed).

Since 0.1.523, a repaint with its own plate list ([registration_list]) is respected: on AI buses the repaint's plate is used, and the player's bus receives it the way the game's vehicle dialogue does (before, the automatic prefix and the fleet number appeared). Since 0.1.960, fleet numbers and plates no longer glow in the dark (only text with a light or night map glows).

What to check

  • Use version 0.1.307 or later.
  • Test in the launcher (drive screen, bus section) and, if you prefer, with --plate.
  • The bus needs a plate texture or object prepared to receive text.

Learn more

The plate shows the wrong text. What can I do?

Depends on the version

Issue #133 reported plates that showed the German prefix and the fleet number instead of the expected text. For repaints that bring their own plate list ([registration_list]), this was fixed from version 0.1.523: the repaint's list is now used on AI buses and on the player's bus. Since 0.1.623 the fleet number can also be chosen before driving. The CHANGELOG up to 0.3.0 and the 0.3.30 to 0.3.33 notes (Stable since 0.3.33) list no new plate fixes (0.3.33 only mentions the flicker between overlapping surfaces, such as plates on poles, which is a different matter). The 0.3.34 to 0.3.42 notes also mention no fix for wrong plate text; they bring only the typeable plate and fleet number (since 0.3.34 and, during the game, since 0.3.41), which may help work around the problem. We cannot say that your case is the same, nor that every plate problem has been solved.

In general, the text that appears on the plate depends on how the bus was made: plate or number list files and the vehicle script. Before reporting a problem, test another bus and another version.

What to check

  • Are you on version 0.1.523 or newer (preferably the current one)? If not, update first.
  • Set the plate in the launcher or with --plate (or, since 0.3.41, in the vehicle options during the game) and see whether it changes.
  • Test another bus on the same map.

Learn more

Is the feature to change prefix and number implemented?

Depends on the version

From the public sources consulted (user guide, CHANGELOG and documentation up to version v0.3.0, plus the 0.3.30 to 0.3.42 notes, the current Stable), there is the choice of the paint and of the fleet number before driving (since 0.1.623) and a plate field (--plate and, depending on the version, the launcher), as well as the typeable fleet number (since 0.3.34) and a typeable number and plate during the game (since 0.3.41), but there is no documented feature to change the prefix. That does not mean it will never exist: the project gets new versions several times a day.

If you want this feature, the place to ask is the project's GitHub Issues, as a feature request. Before that, check whether an identical request already exists.

Learn more

Does the prefix or number depend on the bus mod?

In general, yes. In the original OMSI 2, the fleet number usually appears in textures (the paint) and in the bus's own objects, and what can be changed is defined by the mod's author, through files and scripts. Since openOMSI reads OMSI 2 content as it is, an option the mod offers in OMSI 2 should depend on the same script here, but the documentation does not guarantee that every bus behaves the same. Since the game also applies the paint by fleet number (AI depot buses use the number's repaint when the bus's [number] list names it), the list of numbers the mod's author wrote tends to be the one that appears in the launcher.

So look at the mod's documentation and the paints it includes. If the option works in OMSI 2 and not in openOMSI, search the compatibility database or open an Issue with the details.

What to check

  • Does the bus's readme mention prefix, number or plate?
  • Does the bus have paints by number or by company?
  • Is the behaviour the same in the original OMSI 2?

Learn more

Advertisement

Passengers

When passengers don't board, take a long time or don't get off: what to check first and how to tell a map problem from a bus problem or a game problem.

Passengers don't board the bus. What should I check?

Depends on the version

Start with the settings, since the cause is usually there. Passengers must be enabled at the start (the project guide lists passengers under Settings → Gameplay in the launcher, in the in-game start menu (--menu) and on the command line with --passengers; since the launcher has been rebuilt more than once, the exact name of the option may vary between versions; since 0.2.39 the desktop launcher is the only launcher, and the game no longer opens a launcher of its own), the bus must be in service, with a valid line, route and destination, and be stopped at a bus stop on the map. According to the CHANGELOG, a bus without a valid destination (or with $allexit$, which means out of service) takes nobody, and in free mode people only board buses that show a destination. The user guide adds that on a journey (line and tour or a trip), the people who board are those waiting for a stop that the trip serves further on and whose line lists the terminus shown, and that in free mode those who board are the ones with that terminus on their line and the ones with no line set.

Only after that is it worth suspecting the map, the bus or the game. Since 0.1.782 passengers follow Omsi.exe behaviour: a person only considers the bus from about 60 m away and only if its terminus is one of their terminus, goes to the nearest open door (or one with a request button) and reserves a free seat; if there is no free seat, they stay behind. Each bus's doors and scripts (PAX_Entry, PAX_Exit) still matter, and there are known bugs in this system: note the version, map and bus if you report it. If the bus is stopped at the first stop about a minute before departure, the duty moves on to the next trip (0.1.1166), and after serving the terminus, leaving the stop already starts the next trip when it is up to five minutes away (0.1.1502); before that, the IBIS stayed on the old terminus and passengers refused to board. According to the CHANGELOG, recent versions adjusted how the destination is read: in 0.2.48 passengers began to read the destination of the line the IBIS was set to in the depot, and not that of the sign script's own line (before, nobody boarded a bus that showed a code typed outside the list), and in 0.3.0 they went back to reading the destination from what the bus's sign shows. In the automatic IBIS, a trip without a line number that the depot file runs as line 000 is now typed in by itself and its passengers board (0.2.46), and a timetable bus stopped at the first stop of the next trip keeps its doors open for passengers (0.2.46). The drivers from the map's list (humans.txt) no longer appear among the passengers (0.2.46 and 0.2.48). If nobody boards and you are on a version earlier than 0.3.0, updating to the Stable one is a reasonable test; it does not guarantee that it will solve your case. According to the notes of Stable 0.3.37, the passengers' stop rules began to behave closer to OMSI 2, and, according to the 0.3.41 notes (in Stable since 0.3.42), BRT buses serve the platform of the scheduled stop and passengers choose the entrances facing it, even with the doors closed, instead of crossing the bus in search of an open door on the other side; the notes themselves say that BRT on real maps, articulated buses and passenger paths still need more testing.

What to check

  • Are passengers enabled at the start?
  • Are there a valid line, route and destination (HOF), and does the sign show a destination?
  • Is the bus at the right stop, in the right direction and with the door open?
  • Does the map have stops with passengers configured and the line's timetable?
  • Is it the same bus that worked in OMSI 2? Try another bus.
  • Is the bus's terminus (destination) one of those that this stop's passengers want? If it isn't, they don't board.
  • Does the bus still have free seats?
  • In LAN multiplayer, a client's bus only boards the host's passengers again from 0.1.785. According to the current guide, the client asks the host for the people waiting when the bus is stopped at a stop with a door open.
  • Are you on the latest version? Passengers were rewritten in 0.1.782, the doors were refined afterwards (up to 0.1.850) and there were further passenger and door adjustments up to 0.2.28 and again between 0.2.43 and 0.3.0, plus adjustments mentioned in the 0.3.37 and 0.3.41 notes (see the CHANGELOG and each version's notes). By default the launcher offers the Stable channel (Settings → General → Updates); the Beta channel is for people who test and may have different numbering.

Learn more

Passengers board and then get off at the very next stop. Is that normal?

Depends on the version

It can be, and it depends on the map. The documentation says alighting follows the "passengers alighting" numbers set at each stop on the map, and that someone only gets off when the bus is at their stop. If the next stop has a high alighting value, many passengers get off there. There are also adjustments in the CHANGELOG about the last stop of a trip and the start of the next trip. At the trip's terminus, everyone gets off (0.1.782). On circular lines, a stop is no longer its own destination or the destination of a stop with the same name (0.1.960), and passengers recognise the stop by the timetable name as well as the map label, so they also get off at intermediate stops when the two names differ, and not only at the terminus.

They also react to your driving: they complain about hard braking, fast corners and abrupt pedal use (TooBad_A/B/C sounds from ticket packs, as in OMSI) and, the third time, get off at the next stop (0.1.1098). Since 0.1.1502 each person also presses the stop button at a random distance before their stop, rather than all at the same point. Since 0.2.34 the trip summary gives stars and a line about how the passengers felt, with driving and comfort meters, which helps you see whether it was your driving. This is not a defect, but it also does not explain every unexpected alighting: HOF, timetable and stop names can still cause it. Compare with the line, direction and time you chose; there are known bugs in this system, but we cannot say your case is the same as any of them. Since 0.2.46, according to the CHANGELOG, passengers get off where the map's stops tell them to, also at stops far from the bus, and press the stop button in good time also on buses whose doors stay released; what they say now appears as OMSI's hints (too cold, too little change). If your odd alighting comes from an earlier version, it is worth testing again on 0.3.0 or newer. Since 0.3.34 (in Stable since 0.3.37) there is the option *Passengers react to bad driving* (Options → Gameplay and the launcher's Settings → Gameplay, on by default); when it is off, nobody complains about hard braking or fast corners or gets off early because of it, something intended for modified buses whose physics bother the passengers for no reason.

What to check

  • Are the line's direction and tour correct?
  • Does the map define how many passengers get off at each stop?
  • Check whether it happens on another bus and on another line of the same map.
  • Is the stop name in the timetable the same as on the map? Passengers recognise the stop by both names.
  • Was the driving rough (hard braking, fast corners, jerky pedal)? Passengers may get off because of that.
  • Update and test again.

Learn more

Passengers take a long time to board. Why?

Depends on the version

The project documentation describes three boarding modes. By default (boarding = auto), the person walks to the cab's ticket-selling spot, stops in front of the driver, pays, takes the ticket and continues into the saloon, which takes a few seconds per person. In pay mode, they wait for the driver to sell the ticket (and give up after 25 seconds); in walk mode, they just walk in. Since 0.1.782 boarding follows Omsi.exe: the queues, door waits and aisle shuffling, which were made up, were removed, and the person goes to the nearest open door, reserves a free seat and validates or buys the ticket with the game's dialogue.

If boarding seems too slow, try walk mode (boarding=walk in settings.cfg under ~/.openomsi, a file that the launcher's settings page also writes) and check whether the stop has waiting places and whether the bus doors open. The current guide says that old settings with boarding=pay, which was the launcher's old default, are read as auto; if you are still on an old version and passengers keep waiting for the ticket, it is worth checking that value. Since 0.2.39, according to the CHANGELOG, the simulation (passengers included) runs at a fixed 120 steps per second at any frame rate, so the boarding pace should no longer depend on FPS; the documentation does not say this fixes slow boarding, it is only information for comparison. In 0.3.0 the CHANGELOG says passengers, pedestrians, timetable and weather went back to running once per frame, and not at every fixed step, and that the avatars' images began to be read in the background (0.2.46), to avoid stutter when passing new people; this is about performance, not about the person boarding slowly. There were reports of passengers taking very long (Issue #253, mentioned in the CHANGELOG of version 0.1.307, which was still open at this Hub's last check; check its current state) and, before 0.1.782, of made-up waits at the door. That does not prove your case is the same. Since 0.3.32 (beta; in Stable since 0.3.33) plugins can see and choose the ticket each passenger buys (reduced fare, pass, etc.); without a plugin nothing changes, so this only matters if you use a fares plugin. According to the 0.3.38 notes (in Stable since 0.3.42), the money handed over now uses the coins and notes of the map's currency, so on maps that define notes the amount handed over and the change differ from before; and now and then someone on the way to the stop runs for the bus along the pavement and boards if you wait (an AI timetable bus waits up to 12 s for someone running; yours is never held), with the chance adjustable through OMSI_RUNNER_CHANCE (5 % by default, 0 switches it off). This can give the impression of someone “taking a long time” to board, but it is the described behaviour, not a confirmed defect.

What to check

  • Which boarding value is in the settings (auto, pay or walk)?
  • Does the bus have a ticket printer or a ticket-selling spot configured in the cab?
  • In pay mode, are you selling the ticket (through the bus's printer or, on a bus without one, with the T key)?
  • Try another bus and another map.
  • Are you on version 0.1.782 or newer? Before it there were made-up queues and door waits.

Learn more

Passengers take a long time to get off or get stuck at the door. What could it be?

Depends on the version

Exiting depends on the bus's door (mainly the rear one), on how many passengers get off at that stop, and on the vehicle's script. On current builds, anyone who presses the stop request waits at the exit they chose (0.1.592); passengers see open doors even on buses whose script uses PAX_Entry/PAX_Exit without listing them, and door<i> without an underscore works (0.1.623); three-door buses again let people out through the middle and rear doors (0.1.623); buses such as the SD200 and SD202, which only define PAX_Entry0_Open, again let people out through the rear (0.1.576); and on double-deckers, people leaving the upper deck no longer get stuck on the stairs (0.1.850). At the terminus everyone gets off (0.1.782). This does not guarantee that every bus behaves perfectly.

On current builds, anyone waiting at a closed exit stays at that exit's spot (no longer stacked inside the bus) and prefers the nearest open exit rather than a closed door (0.1.1028). A timetable bus only waits for people walking from the stop it serves to the doors and for those getting off, so a full bus does not stay with its doors open forever (0.1.1120), and people getting off continue along the pavement at their own pace, without sliding sideways, instead of crowding at the stop (0.1.1120 and 0.1.1223). More recently, people who got off where there is no pavement now walk from the nearest pavement instead of standing still forever (0.2.26; in 0.2.46 they also walk away from the bus instead of staying at the doors), and on articulated buses each exit follows its own door, with people on foot finding the doors of the nearest section (0.2.18). On AI timetable buses, people at the doors hold the bus for one minute at most after departure time, and someone standing at a door that the bus never opens no longer keeps it at the stop forever (0.2.21). According to the 0.3.32 notes (beta; in Stable since 0.3.33), an AI timetable bus that served the stop from behind the bus in front now moves up and boards again when the stop is free. According to the 0.3.42 notes, people who board a timetable bus (other than yours) now walk along the bus's own paths to the reserved seat, instead of appearing on the seat when crossing the door, and timetable buses no longer stay stopped for more than a minute at stops without their own timetable, waiting only as long as one boarding takes. This does not guarantee that every bus behaves perfectly.

Since reports vary by bus model, the cause may be in the bus, the map or the game. Test with another bus with similar doors before drawing conclusions.

What to check

  • Do the exit doors open fully?
  • Does the same happen with another bus? And on another map?
  • Does the stop have passengers set to get off?
  • Do the doors open and close by hand (Shift+1, Shift+2... from front to back)? If they don't open even then, suspect the bus's door script.
  • Check the version: there were door and exit adjustments in 0.1.576, 0.1.623, 0.1.782, 0.1.850, 0.1.1028, 0.1.1120, 0.2.18, 0.2.21 and 0.2.26.

Learn more

No passengers appear at the stops. What can I do?

Depends on the version

Check that passengers were enabled at startup (the launcher's passengers option, which the project guide lists under Settings → Gameplay, the in-game start menu --menu or --passengers; on a dedicated server, the passengers key in server.cfg). Then confirm that the map has people (person models) and stops with passengers configured, and that the game's content folder contains the required files. If the map depends on content that is not installed, the game warns you on loading and lists everything in missing_content.txt.

It is also worth testing with a map that ships with the game or one known to work, to see whether the problem is only with that map. In multiplayer, the host (or the server) controls people and passengers: the server seeds passengers near all players (0.1.759) and, since 0.1.785, a LAN client's bus boards the host's passengers again. A stop whose people were taken by another player's bus only fills up again after that bus leaves (0.1.1098), and passengers delivered to a client's bus continue on to a stop instead of getting off right away (0.1.1028). According to the 0.3.37 notes, the dedicated server gained the passenger_density key in server.cfg and the admin panel (Esc menu and /admin/) also adjusts passenger density. The online protocol changed in 0.3.40 (LAN 15): players and server must be on the same version (0.3.40 or newer), and one version does not join the other's session. On a dedicated server, people walk along the pavements and wait at the stops around each player again, and board the timetable buses there (0.2.17), and pedestrians and AI traffic now move smoothly and at real speed on the players' screens (0.2.16).

The number of people at a stop follows the map's count and the passenger setting, up to the number of waiting places at the stop (0.1.592; before, it never exceeded seven and 200% changed nothing). A map's humans.txt can cite people in nested package folders (0.1.721), and a long station stop gets waiting places along its entire length (0.1.850). People come from a single pool, in which ai_max_humans (200 by default) is the limit and pedestrians are at most half of it (0.1.1166): a very crowded map can reach that ceiling, and a waiting place where another person is already standing is not used. Since 0.2.36 pedestrians also no longer keep walking in circles on a roundabout's pavement or pile up on it. Since 0.2.46 there is the *People at once* setting (Settings → Gameplay, from 50 to 1000), which is the AI people limit as in OMSI; passengers wait at the stops around the camera, so a timetable bus seen along the route also boards and drops off people at every stop. Since the name and position of the options may vary between versions, check on yours. In 0.3.0 passengers and pedestrians run once per frame again (it was every fixed step since 0.2.39); this affects performance, not their presence. Since 0.3.38 (in Stable since 0.3.42), random pedestrians no longer appear on pavements that the map defines with zero density, although people already walking can still use them.

What to check

  • Passengers enabled at startup?
  • Does the map have people lists and stops with passengers?
  • Does the missing_content.txt file in ~/.openomsi list anything missing?
  • Does it work on another map?
  • In multiplayer, did the host enable passengers? On a dedicated server, is the passengers key in server.cfg switched on?

Learn more

Passengers behave differently on different maps. Why?

Depends on the version

That is expected to a degree, because maps define the stops, how many passengers board and get off, the people models and the timetables. Behaviour also changes with the line, the date and the bus. If a map has incomplete or different data, the result is different. AI timetable buses also no longer leave with a made-up number of passengers per hour (0.1.782): the quantity comes from the map and the settings. It also varies from one session to another: since 0.2.28 the AI traffic is different in each session and, since 0.2.33, each tour's bus is drawn from the depot using the session's seed, as in OMSI, so repeating the same line may bring a different bus. Since 0.3.32 (beta; in Stable since 0.3.33), according to the notes, timetable buses appear when their trip runs, as in OMSI 2: a tour's first trip appears at departure time, not a quarter of an hour earlier, and a tour in progress has the bus waiting at the first stop between trips.

What cannot be said, with the documentation consulted, is which part of a specific difference comes from the map and which from the game. There is an Issue (#183, which was open at this Hub's last check) describing boarding and alighting problems on a specific map; the cause was not confirmed by the documentation, so we treat it only as related.

What to check

  • Compare the same bus on two maps.
  • Compare two buses on the same map.
  • See whether the map has a notice or readme about passengers.

Learn more

How can I tell whether a passenger problem is the map's, the bus's or the game's?

The safest way is to change one thing at a time. Use the same bus on another map and another bus on the same map. If only one map fails, the map (or the content missing from it) is the suspect. If only one bus fails, suspect the bus, its door or its script. If everything fails on several maps and buses, suspect the version or the configuration.

Only when it is reproducible, with the version, map, bus and steps described, report it on GitHub Issues. The Portal OmsiModsBR Compatibility database (independent, not a bug channel) helps see whether other people had the same result. Even among the open reports, there is generally no conclusion from the maintainer that it is a game problem. If you are going to report, the launcher has a diagnostics export (the Setup page, with *Export diagnostics*, since 0.2.18; the 0.2.39 README still uses this name, but it may vary in future versions): it produces a ZIP with versions, graphics card and driver, graphics settings, controls and the last map and bus, without folders, names, chat, LAN codes or addresses, which stays on your computer and opens the folder so you can check it before attaching. If you know how to use debug variables, docs/DEBUG_FLAGS.md has some aimed at passengers (OMSI_DEBUG_PAX, OMSI_DEBUG_BOARDS, OMSI_DEBUG_DOORS).

What to check

  • Same bus, another map.
  • Another bus, same map.
  • Same combination on the latest version.
  • Valid line, route, HOF and destination.
  • game.log and missing_content.txt without relevant errors.
  • Update and test again before concluding: the passenger system was rewritten in 0.1.782.

Learn more

The rear door opens even when nobody is getting off. Is that a bug?

Depends on the version

Issue #415 reported a bus model (the SD200) whose automatic rear door opened by itself while passengers were boarding at the front. This was fixed starting with version 0.1.463: with door release on, passengers stopped pressing the door's external opener, as Omsi.exe never does. That does not mean every automatic-door problem has been solved: the door depends on the bus script and on the map's stop information.

If it only happens with one bus, note the model, the version and the map, and see whether the mod's author says anything about automatic doors. On British buses whose door script has separate triggers for opening and closing, openOMSI now tests the script's triggers and avoids one command undoing the other (0.1.850). On AI timetable buses, 0.2.28 started closing the doors using the bus script's response at stops.

What to check

  • Are you on version 0.1.463 or newer? If not, update first.
  • Does the bus have an automatic door or a rear-door opening mode switched on?
  • Does it happen on another bus?
  • Does it happen at every stop or only some?

Learn more

Passengers stand with seats free, or their animation looks odd. Can I adjust it?

Depends on the version

Since 0.2.26 the CHANGELOG says passengers take a free seat first and only stand by chance (the *Standing passengers* option, 5 % by default) or when the seats run out. According to the CHANGELOG, the option is under Settings → Gameplay; since the launcher has been rebuilt more than once (0.2.22 and 0.2.36), the name and position may be different on your version. On a version earlier than 0.2.26 this option does not exist.

The default animation is the original OMSI one (*Original OMSI*). A word on history: in 0.2.43 the project's own poses (*Natural*) became the default, and in 0.3.0 the CHANGELOG says the original OMSI animations are the default again, with natural poses as an option (and no more raised hands or arms passing through the body); if your game shows different poses, check this option and your version. According to the 0.3.40 (and 0.3.42) notes, seated passengers with high-quality avatars no longer pass through the seat back (they sit further forward on the seat, as far as a cloak or hair requires), and those who are waiting hold their phone or fold their arms less often. Also in 0.2.43 passengers stopped “jumping” onto the seat (now a short glide) and legs stopped running diagonally when turning. Since 0.2.26 there is an experimental option, *Procedural (experimental)*, under Settings → Gameplay → Passengers → *Passenger animations*, which plants the feet on the floor and on the steps, sits people on the seats and makes people who are standing hold the handrails. The project guide treats this as a visual test: check boarding, seats, steps, CPU use and mirrors before adopting it, and says the option does not change passengers' routes or tickets. As for memory: since 0.3.32 (beta; in Stable since 0.3.33), according to the notes, high-quality passengers use about a third of the graphics memory, so 6 to 8 GB cards no longer run out of memory after a few minutes. For a temporary test without changing the saved setting, the guide mentions the environment variable OMSI_PAX_ANIMATION=enhanced (or original to force the classic mode).

What to check

  • Which version do you use? Both options arrived in 0.2.26, and the default animation changed between 0.2.43 and 0.3.0.
  • Does the problem appear with the *Original OMSI* animation? Try the alternative and compare.
  • Does it happen only with one bus or one map? In that case the cause may be in the bus's internal seats and paths, not the game.
  • Passengers who don't board or don't get off are a different matter: see the other questions in this category.

Learn more

Traffic and AI

How car traffic and computer-controlled (AI) buses work in openOMSI, and what may be behind stuck traffic or strange behaviour.

Cars overtake my bus while it's stopped at the stop. Is that normal?

Depends on the version

The documentation consulted does not describe this behaviour (cars passing a bus stopped at a stop) as a rule, so we can't say how it works on your version. In the original OMSI 2, the AI may overtake stopped vehicles in some stretches, depending on the map and lanes, and that is general knowledge, not an openOMSI rule.

The CHANGELOG records nearby cases, which do not confirm yours: in 0.2.28 the AI was reworked and each lane change is now checked against cars, people and scenery (overtaking through the other half of the road gives up if someone is coming); in 0.2.36 the cars behind the player's bus at a red light started waiting with it (before, after 10 s, they went around it via the opposite lane); and in 0.1.1674 AI trams stopped leaving the rails to overtake. There was also an old report about overtaking logic (#24, closed), and the maintainer replied that most of the list was already fixed. If you think it differs from OMSI 2, compare on the same map and the same stretch in both games before reporting. Since 0.2.46, according to the CHANGELOG, AI cars also do not cross a solid centre line ([rule] overtaking_prohib, as OMSI reads it), so the queue behind a bus at the stop waits; in versions before 0.2.46 this could be different.

What to check

  • Does the stretch have more than one lane or room to pass?
  • Does it happen on other maps?
  • In the original OMSI 2, on the same map and place, is the result the same?
  • Are you on the latest version (the AI changed a lot in 0.2.28, the wait at traffic lights in 0.2.36 and the solid line in 0.2.46)?
  • Was the bus stopped at a red light or at the stop?

Learn more

Traffic behaves differently from OMSI 2. Why?

Depends on the version

openOMSI is a from-scratch recreation and does not use the OMSI 2 code, so the AI may behave similarly, but not identically. The project says it aims to follow OMSI 2 behaviour, and the CHANGELOG records many traffic adjustments across versions.

A documented example: the maintainer explained, in a closed Issue (#356), that the AI yielding to other vehicles had not been implemented on purpose. After that, 0.1.455 started giving priority to emergency vehicles: those that define TrafficPriority go first and the others yield, as Omsi.exe does (0.2.28 redid this: cars in the way pull over or open a corridor, and the emergency vehicle is given the junction and passes at red at walking pace, never over cars, people or a full exit). In 0.1.1302 the AI started yielding to the player's bus by the same rules it uses between cars (at junctions, where lanes merge and when the bus is in the junction) and letting the bus pull out of the stop when it signals (for up to 20 s). Other recent adjustments: the AI's headlights come on below OMSI's light value of 0.75 and the street lamps below 0.6 (0.1.759); AI cyclists ride at 15–21 km/h and no longer show green boxes (0.1.576); a map's own cars load even when the .ovh omits the registration prefixes (0.1.774); and there is less stutter when AI vehicles appear (0.1.759), with no guarantee of zero stutter. If you notice a difference, compare the map and the stretch in both games.

The AI was reworked in 0.2.28 (anyone on an older version sees the previous behaviour). According to the CHANGELOG, it now runs in fixed 20 ms steps whatever the FPS, so it decides the same at 30 or 144 Hz; each session's traffic is different (the environment variable OMSI_SEED=n repeats one) and random cars only give up after 200 s stopped, as in OMSI. There were adjustments to junctions (the car keeps its path until its rear has passed, roundabouts give priority to the ring where the map defines nothing, [crossingproblem] as in OMSI), to lane changes, braking and bus stops, and AI cars started to honk. 0.2.31 smoothed brake lights, braking and corners and made emergency vehicles faster (1.5 times the limit, at most 30 km/h above it). 0.2.33 started drawing each tour's bus from among those in the depot in every session, as in OMSI; before, it was always the same one. This describes what changed; it does not promise behaviour identical to OMSI 2. 0.2.39 started running the whole simulation (bus, traffic, passengers and map scripts, and also the dedicated server) at 120 steps per second, on any computer and frame rate, and the glow of the traffic's headlights now stays on the car (before, it could slide into the bodywork of some cars and look like a blinking bulb). The documentation consulted does not say whether the AI's own step, described above as 20 ms, changed along with it; for versions before 0.2.39, what was described above applies. After that, according to the CHANGELOG, 0.2.44 moved the simulation to 60 steps per second (at most four per frame, so the game follows real time down to about 15 FPS), and 0.2.46 made the AI give way as in OMSI 2 where the map defines no priorities (whoever reaches the junction first goes first). 0.3.0 went back to running the AI vehicles' scripts once per frame, as before 0.2.28, instead of every 20 ms step: large maps with a lot of traffic are smooth again. AI trains and trams also stay on the rails. The current Stable version is 0.3.42 (the default in Configurações > Geral > Atualizações); the Beta channel is for testers and may have different numbering. Since 0.3.31 (beta; Stable since 0.3.33), the game no longer freezes for 13 to 20 ms every 6 s or so with timetable traffic, and the AI costs less in frames where a traffic step runs. On a dedicated server or LAN host, AI cars see the whole articulated bus and no longer run into the back of it (0.3.31). According to the notes, the simulation (traffic, people and map scripts) has run on a thread of its own by default since 0.3.37, and AI cars stopped jittering back and forth with it on (0.3.36); light AI motorbikes stopped moving at bicycle speed (0.3.40); off screen and beyond 150 m the car runs its script only a few times a second (0.3.41), and AI vehicles began to use the models' lower levels of detail (0.3.42), which lowers the cost of traffic, without promising the same gain on every PC. In 0.3.42, the *AI Lists* tab in Settings lets you choose, map by map, which AI cars, lorries and buses make up the traffic and which buses run on each line, only among what is installed. In online play, AI traffic now goes as a vehicle table and the protocol changed (LAN 15, 0.3.40): players and server must be on 0.3.40 or newer to play together. News from future tests is on the Beta FAQ.

What to check

  • Is the behaviour on the same map and stretch as in OMSI 2?
  • Does the map have the complete traffic files (lists and densities)?
  • Test the latest Stable version (the AI changed a lot in 0.2.28, 0.2.31, 0.2.46, 0.3.0, 0.3.31/0.3.32 and 0.3.42).

Learn more

Traffic jams and queues that don't move show up. What can I do?

Depends on the version

The CHANGELOG records fixes for stopped traffic and traffic jams, and notes that server administrators can clear stuck traffic. If the queue doesn't move, the causes may be the map (lanes, intersections or traffic lights badly connected), parked cars in the way, or a game problem. In recent versions (0.1.1302), a car stopped behind a parked car just after a joint between road pieces now steers around it (the lane change continues across the joint), a car held for a long time by nothing visible is removed even in sight, and people or cars on a bridge above or in a subway below no longer hold the car. There are also known bugs related to this system.

Since then the CHANGELOG records several queue fixes: in 0.2.22 traffic got stuck far less (no car enters a junction it cannot get out of, rings of cars waiting for one another are broken up, cars that gave up count towards the population so that it doesn't grow until the city jams, and in open country traffic no longer vanishes); in 0.2.25 cars stopped reversing at junctions made of very short road pieces; in 0.2.27 a queue was fixed at junctions without traffic lights (Spandau) where the third car took priority and everything stood still until a car was removed after 200 s; and 0.2.28 redid the traffic with fewer emergency stops and fewer stuck cars. This does not mean queues no longer happen, and the result depends on the map. 0.2.46 fixed cars stopped at green near a vehicle that claims priority (the player's bus on some maps, ambulances with sirens) and cars that vanished in mid-lane where a junction's paths have no density of their own. 0.3.0 dealt with traffic that stood still forever at large junctions and roundabouts: cars enter the junction unless they would stop inside another's path, those waiting in a circle are released after a few seconds (whoever waited longest goes, never over another vehicle, a red light or a person), those waiting at the give-way line no longer take the turn of those on the roundabout or the priority road, and a car stopped at red inside the junction no longer holds up the traffic that has green. According to the 0.3.42 notes, a car stopped in the lane that a bus (or a car whose lane is closing) is waiting to move into no longer holds that vehicle back even on green, and carries on straight ahead after a few seconds; a route lane change whose window the bus missed is now made after 12 s of waiting instead of never (a case seen in Spandau). This does not guarantee that every queue will clear.

An open report (#139) mentions cars braking for no reason and stopped traffic near parked cars. We can't say your case is the same. First test another map and the latest version. To report it, note the place and, if you want more detail, the game has debug environment variables that log why cars are waiting (OMSI_DEBUG_JUNCTION, OMSI_DEBUG_STUCK, OMSI_DEBUG_TRAFFIC; any value switches them on, even 0).

What to check

  • Does the queue always get stuck in the same place on the map?
  • Is there a custom traffic light or intersection there?
  • Are there parked cars blocking the lane?
  • Does it happen on the latest version (0.3.42; the queue behaviour changed in 0.3.0 and 0.3.42) and on other maps?

Learn more

Cars behave strangely at junctions. What could it be?

Depends on the version

Junctions depend on how the map connects lanes, right-of-way rules and traffic lights. If the junction is custom, the result may vary. There are reports, such as #67 (custom junctions with traffic light blocks) and #183 (AI stopping at empty junctions), which were open when we checked and are related, but we do not claim they are the same case.

There were also documented fixes, such as priority for emergency vehicles (those that define TrafficPriority go first and the others yield, 0.1.455, redone in 0.2.28), the fix for a car that crossed on green and stopped at the next traffic light (0.1.10), the AI on tight curves (0.1.307, #249), AI cars that waited for no reason at junctions without traffic lights (0.1.721), AI cars that ran red lights (0.1.1422) and cars that reversed at junctions made of very short pieces (0.2.25).

0.2.28 changed a lot here, according to the CHANGELOG: the car keeps its path until its rear has crossed, the space at an exit is promised to one car at a time, nobody follows a stopped queue into the junction, anyone turning left at a traffic light moves forward to wait for oncoming traffic, a priority sign counts for more than an early claim by the side road, roundabouts give priority to the ring where the map defines none, and cars waiting for one another in a circle are identified and released. If your version is older, the behaviour may be the previous one; 0.2.36 also made the cars behind the player's bus at a red light wait with it. Afterwards, according to the CHANGELOG, 0.2.46 made the AI give way as in OMSI 2 where the map defines no priorities (whoever arrives first goes first) and made a left turn give way to oncoming traffic even if it arrived earlier; and 0.3.0 adjusted large junctions and roundabouts, where traffic could stand still forever (cars waiting in a circle are released after a few seconds, and anyone waiting at the give-way line does not take the turn of those on the roundabout). In 0.3.42, according to the notes, a car stopped in the lane a bus is waiting to move into no longer holds both on green (the car carries on after a few seconds). This applies from those versions on and does not guarantee that every junction behaves well.

What to check

  • Is the problem always at the same junction?
  • Is the junction original to the map or was it added by a mod?
  • Does it happen on another map?

Learn more

AI cars or buses use the wrong lane or don't enter the stop bay. What could it be?

Depends on the version

The lane the AI uses comes from the map data (paths and allowed vehicle types). The CHANGELOG records adjustments on this topic, such as trucks kept off bike lanes and speed limits (0.1.402, #327) and timetable buses entering the stop bays (0.1.330, #241). In 0.1.455, timetable buses started stopping at the stop on their own side of the street on routes that come back along the same street. The map's bus and trucks path rules now open paths for AI buses and trucks according to ai_veh_type (0.1.737), and AI buses at a left-side stop open the left doors (0.1.721). Some of these Issues are still open, but they already appear in the CHANGELOG, so they may be fixed in your version.

More recently, 0.2.28 reworked the AI's bus stops (places at the stop filled in order, stopping within tolerances, missed stops logged, doors that close with the script's response, and the bus can serve a stop behind another that is resting) and cars started to move out of a lane that turns into a bus lane. 0.2.21 limited to one minute after departure the wait for people standing at the doors. On Hong Kong maps, AI buses from a simple [aigroup_2] group show their destination again (0.2.16). If it happens on a recent version, the case may be tied to the map. Note the version, map and location. 0.2.46 made AI buses queue up at the stop and the one right behind the stopped bus board people at the same time, as in OMSI 2, and 0.3.0 kept AI trains and trams on the rails. 0.3.32 (beta; in Stable since 0.3.33) made an AI bus that served the stop from behind the one in front stop and board again when the stop is free. In 0.3.31 (beta; Stable since 0.3.33), on a dedicated server or LAN host, AI cars began to see each player's whole articulated bus and no longer run into the back of it. 0.3.41 made BRT buses serve the platform of the scheduled stop, instead of a nearby stop on the other side of the road, and passengers choose doors on that side; the notes ask for more testing on real maps, articulated buses and passenger paths, so it is no guarantee on every map. 0.3.42 makes a timetable bus that arrives early at a stop without its own timetable wait at most the time of one boarding (before, up to two minutes), and people boarding a timetable bus now walk to the seat instead of appearing on it. Also in 0.3.42, a route lane change whose window the bus missed is made after 12 s of waiting.

What to check

  • Are you on the latest version?
  • Does the map's stop have a bay and an AI path configured?
  • Does it happen on other maps?

Learn more

Traffic lights look off or cars do not obey them. What should I check?

Depends on the version

The game has the environment variable OMSI_DEBUG_LAMPS (in the project's list of debug variables; any value switches it on, even 0), which logs traffic lights with no associated junction and moving lamps (barriers). There are also OMSI_DEBUG_LIGHTS (each light change of the chosen traffic light programs) and OMSI_DEBUG_TRAFFIC (traffic light programs, cars stopped for a long time and tight curves). This indicates that a stuck or dark traffic light is often a map data issue. There was also a fix for invisible light cubes (list #24, closed).

If the traffic light is dark or the junction isn't obeyed, test another map and another version. Custom junctions have been reported behaving oddly (#67, open); this is related, but not necessarily the same as your case. Traffic light programs that extend a phase with a short jump backward could repeat that jump endlessly and get stuck on a single signal combination; since 0.1.808 the section is repeated once and the cycle continues. Script-driven LED traffic light lamps also received fixes (0.1.721). A scripted child of a crossing that names one of the lights now reads that light's phase, so those traffic lights stopped flashing yellow (0.1.1120), and a junction now drives the traffic lights of a lamp without [trafficlight], like Omsi.exe, which brought mod traffic lights back to working (0.1.1028). A signal that names no crossing remains a lamp and reads phase 0, as in Omsi.exe (0.1.1223). AI cars that ran red lights were fixed in 0.1.1422, and a car placed in the lane in front of a red light now arrives slowly enough to stop. In multiplayer, traffic light cycles no longer get stuck with simultaneous inactive events and now follow the host's clock (0.1.1668). A traffic light no longer reacts to a bus in the next lane or in the bay (0.2.16). Bus signals: in 0.2.34 a signal that froze at the start of the cycle (the TCSP17 in Grand Paris-Moulon) now reaches the next green, and a scripted bus signal never shows red and green together (it stays red). This does not mean every traffic light problem is gone. Since 0.3.0, according to the CHANGELOG, a car stopped at red inside the junction no longer holds up the traffic that has green. Since 0.3.32 (beta; in Stable since 0.3.33), a traffic light's request follows the indicator (a path marked for left or right only requests with the indicator on), so the junction does not request all phases at once, according to that version's notes. 0.3.37 lists traffic-light requests among the behaviours adjusted to be closer to OMSI 2.

What to check

  • Is the traffic light linked to a junction on the map?
  • Is the object from the original map or from an add-on?
  • Does it work at another junction on the same map?
  • Update and test again.

Learn more

No traffic shows up, or traffic shows up everywhere. What should I check?

Depends on the version

First, check that traffic is on at the start (in the launcher, next to time, date, season and weather; in the game's start menu, --menu; or with --traffic N, where N is the amount). The names and position of these options in the launcher have changed in recent versions, so look for "traffic" on the screen where you set up the session. Then the map must have random traffic data and densities; without unsched_vehgroups.txt, random traffic comes only from the default AI group, as in Omsi.exe (0.1.1223). The CHANGELOG for version 0.1.221 records that random traffic started respecting the map's path densities (unsched_vehgroups.txt). Since 0.1.759 the amount of traffic follows the paths' trafficdensity: paths with density 0 or without cars stay empty. In 0.2.22, in open country, where nothing hides a car, traffic stopped dying out, and cars that gave up started counting towards the population (it no longer grows until the city jams). Since 0.3.32 (beta; Stable since 0.3.33), timetable buses appear when their tour runs, as in OMSI 2: the first trip comes at departure time, not a quarter of an hour earlier, and a tour in progress has the bus waiting at the first stop between trips. Since 0.3.37, the OMSI 1 AI lists are read the way OMSI 1 writes them (the OMSI 1 map Velbert has traffic again). In 0.3.42, the AI Lists tab in Settings lets you change, map by map, the cars and buses that make up the random traffic and their frequency, without touching the map's files. On a dedicated server, the web admin panel (0.3.37) also shows the traffic density among its controls. Each session's traffic has been different since 0.2.28, so the distribution of cars does not repeat from one session to the next. 0.2.46 fixed cars that vanished in mid-lane where a junction's paths have no density of their own.

There are old reports (#120, closed, and #161, mentioned in the CHANGELOG of 0.1.759 about path density) about vehicle groups that did not run or traffic everywhere. They are related, but we do not claim your case is the same. On a dedicated server, the amount comes from the traffic key in server.cfg; 0.2.20 fixed the case of AI cars appearing or vanishing in view of other players on a dedicated server or LAN host.

What to check

  • Traffic enabled and with a value greater than zero?
  • Does the map have vehicle groups and densities?
  • Update to the latest version.
  • In multiplayer, the host controls the traffic (on a dedicated server, the traffic key in server.cfg).

Learn more

All traffic has stopped or an AI bus will not leave its stop. What can I do?

Depends on the version

It may be a blockage on the map (an object, parked car or traffic light) or a game adjustment that is still pending. Random cars in a dead end or at the map edge now leave instead of blocking those behind them (0.1.623), and the timetable bus at the end of its last trip leaves the street at once (0.1.759). Cars that reach the end of a road leave there at speed, and released AI buses no longer queue at the map's end (0.1.960); the player's bus only holds up traffic on its own level, and not the cars on a bridge above (0.1.960); and an AI bus may drive straight past a stop where nobody boards or gets off (0.1.1028). In 0.1.1302, a car stuck behind a parked car after a lane joint now steers around it, and a car "held by nothing" is removed. An early timetable bus waits at the stop until 20 s before departure (a train, 2 min), like Omsi.exe, and a tour that repeats the same trip no longer leaves the bus stopped forever at the last stop (0.1.1223). There is a report (#262) about a bus that will not leave its stop, which was open when we checked and may be related, with no confirmation that it is the same case. On servers, administrators can clear stuck traffic (CHANGELOG, 0.1.178; 0.1.1502 added a button to clear AI traffic in the world options, mentioned among the server news).

Newer versions have other fixes: in 0.2.21 passengers standing at the doors hold the AI bus for one minute at most after departure (someone standing at a door that the bus never opens no longer keeps it at the stop); in 0.2.26 timetable buses stopped skipping gaps in the route or blocking the stops along the path; in 0.2.28 the AI bus stops and cars waiting for one another in a circle were redone, and random cars only give up after 200 s stopped, as in OMSI. If the bus is early, it waits at the stop on purpose for up to 20 s before departure; since 0.2.17 there is an option under Settings → Gameplay (Traffic; the launcher was rebuilt afterwards, so the place may have changed), off by default (ai_wait_timed_stops_only in settings.cfg), for it to wait only at stops with their own timetable, not at all of them, as in OMSI. Note the exact place, the version and whether it happens on another map, and open an Issue if it is reproducible. 0.2.46 fixed an AI bus whose script never closes the doors and stayed at the stop forever, and 0.3.0 dealt with traffic standing still forever at large junctions and roundabouts (cars waiting for one another in a circle are released after a few seconds). According to the notes, 0.3.38 makes a timetable bus wait up to 12 s for someone running to the stop (your own bus is never held), and 0.3.42 makes a timetable bus that arrives early at a stop without its own timetable wait at most the time of one boarding, as well as freeing the car and bus that used to stay stopped when a bus waits to change lane (a Spandau case); OMSI_DEBUG_STUCK now says why a lane change is waiting. If you are on a Beta, the numbering may differ from Stable; test Stable (0.3.42) to compare.

What to check

  • Is the blockage always in the same place?
  • Is something stopped in front of the vehicle (parked car, object)?
  • Does it happen with the latest version?
  • On a server, ask the administrator to clear the traffic.
  • Is the AI bus ahead of its timetable (it may be waiting for departure time)?

Learn more

Can I hit the AI cars? Do they react and dent?

Depends on the version

According to the user guide, with the collision_vehicles option in settings.cfg switched on, impacts against AI traffic are passed to the collision scripts of the vehicle that was hit and deform a localised part of the bodywork, where the model has editable geometry. The guide puts collisions on the Gameplay tab of the settings; we could not confirm the exact name of the option on screen or whether it comes switched on, and the launcher was rebuilt after that.

The 0.2.17 CHANGELOG records collisions with AI vehicles: the car that is hit recoils from the momentum of the impact and returns to its lane, the energy of the crash follows the masses and speeds of both vehicles, your bus and the AI cars get dents where they were hit, and the glass shows cracks. Walls, poles and bridges are another option (collision_objects). The result depends on the bus and car model, so we do not promise the same effect on every vehicle. According to the 0.3.38 notes, the launcher's Depot page keeps your bus's collision damage between sessions and has a Repair option.

What to check

  • Is vehicle collision switched on in the game settings?
  • Is your version 0.2.17 or newer?
  • Does the model that was hit have a deformable body? (it depends on the mod)

Learn more

The traffic is different every time I enter the map. Can I repeat the same one?

Depends on the version

According to the 0.2.28 CHANGELOG, each session's traffic is different, and the environment variable OMSI_SEED=n (n is a number) repeats one of them. The project's list of debug variables describes OMSI_SEED as the seed of the scripts' random numbers, random by default. This can help compare two runs or reproduce a traffic problem to report; we do not promise that everything repeats identically, because what you do while driving also changes the result.

Environment variables are read once, when the program opens: changing the value with the game open has no effect. On Android, the documentation says that the openOMSI/env.txt file holds NOME=valor lines applied before the game starts. We could not confirm whether the launcher passes the variable on to the game it opens, so test by starting the program with the variable already set.

What to check

  • Was the variable set before opening the program?
  • Is your version 0.2.28 or newer?
  • Are the time, date, map, traffic and your driving the same in both runs?

Learn more

Multiplayer

How to play with other people in openOMSI: hosting, joining, session code, network and dedicated server.

How does openOMSI multiplayer work?

Depends on the version

openOMSI has a multiplayer mode in which one person hosts the session and the others join it. Each player drives their own bus and sees the other players' buses. The host controls the “world”: date, time, weather, AI traffic, pedestrians and traffic lights.

According to the project's documentation, communication uses UDP, by default on port 27015. There is also in-game chat (the V key in older versions; since 0.3.40 V is also the talk key of the built-in voice chat, so check the keys in Controls). This feature is part of an early version of the project and may change between versions.

In a LAN session the game cannot be paused (the P key pauses and resumes outside LAN, 0.1.592). The server now seeds passengers near all players (0.1.759) and, since 0.1.785, a client's bus boards the passengers waiting in the host's world again; the dedicated server also updates passenger density and the time of day every tick (0.1.721). Passenger rules follow the authority of the host or the server, not the server's web API.

Long chat messages now continue on further lines instead of being cut off, and the chat keys are in the key list (Controls), so they may clash with a key the bus uses. If the connection drops, see the question about reconnecting without restarting the game. There used to be voice chat through GreenTeaSpeak 2 with the openOMSI plugin (0.1.1302), which the release notes say was replaced, in 0.3.40 (Beta; stable since 0.3.42), by a voice chat built into the game itself, off until you switch it on. The paint your bus wears is now seen by other players, and the server can give a player a duty and send navigator notifications (0.1.1302). See also the question about voice chat.

Other changes recorded in the changelog, in version order: since 0.1.1515 all the variables of other players' buses (displays, IBIS, ticket printer, plugin values) are synchronised, so their bus behaves as it does for its driver; since 0.1.1518 the chat has its own size (Ctrl + mouse wheel over it, or Settings > General > Chat size, from 50 to 300 %); the host's weather change reaches the others immediately (0.2.18); AI traffic now takes the session players' buses into account when changing lanes (0.2.22); and the timetable buses of a session are drawn in the same way on every computer (0.2.33). According to the project's guide, the other players appear as purple arrows with their name in the navigator and on the city map. Since 0.2.39, according to the changelog, the simulation (buses, traffic, passengers and map scripts) runs at a fixed 120 steps per second on any computer and frame rate, so the world moves the same for people with more or fewer frames; we have not confirmed any specific effect on multiplayer. Also according to the changelog: since 0.2.43 other players' distances follow the chosen unit (metric, British or American) and folding seats go down under a player on foot or a LAN player's figure sitting on them; in 0.2.46, AI buses show the AI list's repaint on every screen; and 0.2.48 changed the session protocol from 6 to 7, with more security checks (the host is signed by a session key), so online play requires 0.2.48 or newer on every computer (and 0.3.40 changed the protocol again, see below). Since 0.3.0 (a stabilisation stable release), the AI traffic scripts went back to running once per frame, which the changelog says makes large maps with a lot of traffic smooth again. Since 0.3.31 (Beta, in the stable version since 0.3.33), mod files that a player downloads from the host are checked for what they really are, and, on a dedicated server or a LAN host, AI cars see each player's whole articulated bus and no longer run into the back of it. Since 0.3.32, the tell, duty and duty-off commands also work in the host's own game and a kick passes the reason on. According to the release notes, since 0.3.34 (Beta; stable since 0.3.37) LAN games share much more of each bus (variables, texts and textures of scripts such as the displays, sounds, the AI's timetable behaviour and smooth door animations) and, on foot, Ctrl+Alt+S asks a nearby bus for a door; since 0.3.40 (stable since 0.3.42) the protocol is LAN 15, AI traffic goes as a vehicle table and all players and the server must be on 0.3.40 or newer; also since 0.3.40 there is a Player list in the game menu (names, what each one drives and who is host, admin or moderator, with kick and machine ban for whoever hosts or administers) and a public server list. None of this is a guarantee: check on your version.

What to check

  • Everyone needs the original OMSI 2 installed, as in the normal game.
  • Everyone should be on the same openOMSI version (see the question about versions).
  • Anyone joining needs the host's map (see the question about content).

Learn more

I lost the connection to the LAN game. Can I reconnect without restarting the game?

Depends on the version

On recent versions, yes, in most cases. After a disconnection (host lost, host restarted, or no reply on the first attempt), the client keeps calling the host every 5 seconds even after giving up and, when the host answers, the session resumes and the host's world is taken over again. Before, the client gave up for good after 60 seconds and the game had to be restarted.

The /reconnect command in chat tries again straight away, including after the host has sent the player away or refused entry; the “not connected” notice on screen reminds you of this. This does not guarantee recovering any given state: the bus and the world go back to following the host, and everyone needs to be on the same openOMSI version.

The changelog also records that, since 0.1.1668, a game that the server sends away or refuses ends and gives the reason, whereas a refused reconnection does not end the game, and that 0.2.31 fixed a case in which rejoining the LAN said “hello” twice. Since 0.2.39 the launcher also says again when a game ends with an error or is sent away by the server. We have not confirmed how these cases combine in practice; if a reason appears on screen, it is the best clue as to what to adjust. Since 0.3.40 (Beta; stable since 0.3.42), whoever hosts or administers can send a player away with a reason and also ban their machine (for one session, a day, a week or for ever); according to the notes, this ban applies even if the player returns with another name, address or game, so, if the reason points to a ban, trying again does not help and the way forward is to talk to whoever administers the session.

What to check

  • Is everyone on the same openOMSI version?
  • Is the host running and reachable (network, VPN, firewall)?
  • Try /reconnect in chat.

Learn more

How do I host a multiplayer session?

Depends on the version

In the launcher, according to the project's guide, the LAN play: host / join option is on the Drive page. The launcher (since 0.2.39 the desktop launcher is the only one; the 0.2.36 one was rebuilt) also has a Multiplayer page, which the server guide describes as the server list; the user guide describes the route through Drive. According to the release notes, since 0.3.36 (Beta; stable since 0.3.37) the Multiplayer > Connect by Code page has two routes, Join friends and Invite friends, and Invite friends sets up a hosted game with one click, taking you straight to the Drive page with the connection prepared in the background; since 0.3.34 the launcher menu is split into sections and Play brings together Drive, Multiplayer and Running games (and Drive puts map, service, bus and start on a single screen). We have not confirmed where all the buttons are on your version, so look for those names. When hosting, the game shows a session code for you to give to the other people.

If you prefer the command line, you can use --lan-host [porta] (default port 27015) and --lan-name to set your name. The exact button names may change between versions (the launcher was rebuilt again in 0.2.36 and the game's old own launcher window was removed in 0.2.39), so check your launcher.

What to check

  • Choose the map and the bus before starting.
  • To see the code again later, look on the launcher's Running games page (the guide still calls it Sessions; according to the changelog, since 0.2.39 it shows the session code, the players and the chat of a multiplayer game) or in the game's HUD, which also lists the addresses on each network.
  • If the map was downloaded as a mod, install it through the launcher's Mods page (see the question about content).
  • To play over the internet, read the question about IP, port and firewall.

Learn more

How do I join someone else's session?

Depends on the version

In the launcher, use LAN play: host / join (Drive page, according to the project's guide; the launcher also has a Multiplayer page with the server list) and enter the session code the host gave you. On the command line, it is --lan-join <onde>. The project's guide says it accepts the code, an IP, ip:porta, a host name, a port (when the host is on the same computer) or auto (looks for a host on the local network). The changelog also mentions that any server address works, including a link (0.1.178), and that the launcher can be told to connect over UDP or over WebSocket (0.1.1502). Since 0.2.34 the launcher's start button shows which multiplayer game it is going to join (for example “Join Spandau 1”) instead of “Drive”. According to the release notes, since 0.3.36 (Beta; stable since 0.3.37) Join friends (Multiplayer > Connect by Code) asks for the code, shows you the host, map, players, time and weather before you join, lets you choose a bus and only joins when you press Join and drive (Drive warns that the session is selected but you have not joined yet); a wrong code gets a short explanation. Each server in the list also has a protocol choice: with Auto, an address without http:// or https:// joins over UDP (lower latency, and changing line or tour in the game works) and one with http:// or https:// joins over WebSocket.

The game tries to contact the host and gives up after about 10 seconds, explaining the likely reason (for example, not being on the same network or a firewall); a host that is busy loading the map still replies, and whoever is joining waits up to 8 seconds for that reply before loading anything. Since 0.2.39, according to the changelog, joining a session starts on the host's map, and on the Drive page a server you have joined sets the map, time, weather and buses. You play on the host's map, as long as that map is installed or comes along with the host's mods (since 0.1.1196 the launcher joins even without the map installed when it comes in the server's mods); if the map is not installed, the game warns you in the HUD.

What to check

  • Was the code copied in full and without spaces?
  • Are you and the host on the same openOMSI version?
  • If it doesn't connect, see the question about IP, port, firewall and VPN.

Learn more

What is the session code?

Depends on the version

It is a text in groups of four characters, such as OMSI-7Q4K-2M9X-HD3P-R8TZ-KC5W-NB6E (an example from the guide), that the host receives when hosting. It identifies the session and carries up to three addresses of the host, hidden inside the code (first the VPN ones, such as Hamachi, Radmin VPN, ZeroTier and Tailscale, then the local network ones), so whoever joins doesn't have to type the IP and port by hand. Old codes are still read (changelog, #152).

The joining player's game tries all the addresses at the same time and uses the first one that responds. The code avoids look-alike characters, but copying and pasting is still the safest. The same addresses, with the network each belongs to, appear on the launcher's Sessions page (called Running games in 0.2.39, which also shows the code, the players and the chat of a multiplayer game) and in the HUD, for joining by hand. Because the code carries the host's addresses, give it only to the people who are going to play (a community suggestion); the launcher's diagnostics package (Setup > Export diagnostics) leaves out LAN codes and addresses.

Learn more

Do I need an IP and port? And a firewall, port forwarding or VPN?

Depends on the version

In most cases the session code already carries the host's address, so you don't need to type an IP. The game's default port is UDP 27015. On the same local network (the Wi-Fi or cable in the same home), the code is generally enough.

To play over the internet, the project's guide says both players need to be on the same VPN network (examples cited: Hamachi, Radmin VPN, ZeroTier, Tailscale) and that the host's firewall must let the game receive UDP on port 27015 (Windows treats a Hamachi network as public).

The server documentation and the changelog describe more than that: whoever hosts by code also publishes the address at a meeting point (the documentation mentions STUN, UPnP and a relay channel), can ask the router to open the port (UPnP) and, when whoever is joining cannot get through using the addresses in the code, the entry may go through a free Cloudflare tunnel, the same tunnel = 1 feature as dedicated servers. We have not confirmed to what extent this removes the need for a VPN on each network: the documentation itself mentions routers through which no path can be opened. Treat the VPN as the documented path and test on your version. According to the release notes, since 0.3.39 (Beta; stable since 0.3.42) tunnel addresses such as abc.trycloudflare.com:443/ws (or written in capital letters) are recognised as a tunnel when joining, and since 0.3.36 a server's status is also looked up on port 443; we have not confirmed whether this solves your case.

What to check

  • Host: allow openOMSI through the Windows firewall.
  • To play on the local network only, without the game touching the router or publishing an address on the internet, the project has the variable OMSI_NO_BRIDGE=1 (described as useful for tests and LAN parties).
  • Are both on the same VPN and able to see each other?
  • On a local network, are both on the same network?
  • If “no response” appears, the most likely cause is the network or firewall, not a defect in the game.

Learn more

Do openOMSI versions have to match to play together?

Depends on the version

The recommendation is that everyone uses the same version. The network protocol changes from time to time and, in those cases, the changelog warns that players and servers must be on the same version (for example, in protocol 6; the same goes for LAN 14 in 0.3.34 and LAN 15 in 0.3.40, see below). The exchange of mods between host and players, which became encrypted in 0.2.17, also requires that version on both sides: according to the guide, an older game is told to update.

We did not find a public guarantee of compatibility between different versions, nor the exact text of the message when versions don't match. Since 0.2.48 the session protocol is 7 and, according to the changelog, an older game is cleanly refused when joining, so online play requires 0.2.48 or newer on every computer. The current requirement is stricter: according to the release notes, 0.3.40 (Beta; stable since 0.3.42) changed the protocol to LAN 15, a version with the new protocol does not join a session of an older version, nor the other way round, and all players and the server must be on 0.3.40 or newer. In practice, anyone still on Stable 0.3.37 or an earlier one cannot join a 0.3.42 session, and vice versa. Since 0.3.0 there are Stable releases (the default) and Beta releases (for testers); in Settings > General > Updates there is an update channel (Stable or Beta), and the version picker marks the Betas. Agree with the host to use the same channel and the same version before playing. The numbering of TestFlight builds (iPhone/iPad, Beta) has its own cycle and may not match the stable version for Windows, Linux, macOS and Android; we have not confirmed whether a TestFlight build can join a session of another version, so check the number on each device. Remember too that the game downloads new versions in the background during a session and only installs them when the session ends (0.1.1515), so one player may have updated and another not.

A detail about the number shown: before 0.2.38, on macOS and Linux, the version shown by the launcher, sent in multiplayer games and in the dedicated server listing could appear wrong (0.1.0 or 0.2.33); the changelog gives this as fixed in 0.2.38. If someone in that situation appears with a strange number, update before concluding that the versions are incompatible.

What to check

  • Check the version in the launcher sidebar, in the launcher's About window or with openomsi --version.
  • Update through the launcher (0.2.39 went back to looking for, offering and installing updates; in Settings, Updates, the Choose a version option lists the versions and installs the chosen one, and an older version stays until you choose the latest again) and compare with the host's version; on a dedicated server, the /status address shows version and protocol.

Learn more

What content (maps and buses) do I need to play?

Depends on the version

Everyone needs the original OMSI 2 installed. Whoever joins plays on the host's map. If that map is installed straight into the OMSI 2 folder, it is not sent to whoever joins: in that case everyone needs to have the map.

Content installed through the launcher's Mods page (map, buses, objects, AI vehicles, etc.), on the other hand, is offered by the host: whoever joins downloads what is missing before loading the map and stores it in ~/.openomsi/lan-store. In recent versions (0.1.1196), a server whose map is not installed on your computer can still be joined: the map comes along with the server's mods. If another player's bus is not installed on your computer, older versions used your own bus type in its place. According to the release notes, that has changed: each player's bus goes to the server through its content (only the files of the variant and paint scheme they drive, 0.3.36/0.3.37), the server keeps every version the players send, and since 0.3.38 (Beta; stable since 0.3.42) a bus you do not have is downloaded from the server with its files checked, and the others see it exactly as its owner has it (same files and paint scheme). While it arrives, a neutral box of its size, with the download progress, takes its place; if the bus cannot be obtained (for example, the server does not accept uploads or it is too large), it is drawn as another bus, always with a stand-in label under the player's name. Also since 0.3.38, a session hosted by a player again offers those who join their own buses, like a dedicated server, and not only the ones the host has installed.

According to the guide, the openOMSI content folder inside the OMSI 2 folder is also part of that offer (it began to be passed on in 0.1.9; before, it was treated as a file of the original OMSI), unlike maps installed straight into the OMSI 2 folder, which are not passed on. Since 0.2.17 these files travel encrypted and are kept sealed in lan-store, which the guide describes as obfuscation and not real protection; both sides need 0.2.17 or newer. The project has the variable OMSI_NO_LAN_MODS=1 so that the host does not serve mods and the joining game downloads none. According to the release notes, since 0.3.31 (Beta; in the stable version since 0.3.33) each mod file the host sends is checked: it has to be what its name says (an image of valid size, sound, mesh, text), or it is left out and you are warned; and a vehicle script that would never finish is interrupted instead of freezing the game. On dedicated servers, the notes mention the keys accept_uploads (accept buses uploaded by players; default 1), uploads_keep_days (default 30) and share_maps (a new server.cfg says 0, and players install the map themselves; a file without the key still passes the map on), and --pack-map <mapa> --pack-to <pasta ou .zip> packs a map with everything it uses for a server that does not have it. On phones, since 0.3.0 the Mods page has its own storage browser (folder, .zip, .7z, .rar).

What to check

  • Map installed as a mod through the launcher: the host offers it to the others.
  • Map placed manually in the OMSI 2 folder: everyone needs to install it. If you cannot find each other on the map, the README points to this as the likely cause and says the game warns in the HUD when the host's map is not installed.
  • Dedicated server with a vehicles list in server.cfg: the launcher of whoever joins offers only those buses, and anyone driving another one is sent away and told which ones the server accepts (0.1.1422, 0.1.1382).
  • Maps with many files take a while to be listed before starting (the guide cites 20 s on a map with 27 thousand files).
  • Don't send files from the original OMSI 2 in issues or groups.

Learn more

How does multiplayer voice chat work?

Depends on the version

According to the release notes, since 0.3.40 (Beta; stable since 0.3.42) openOMSI has built-in voice chat in the game itself, off until you turn it on: in Settings > Sound > *Voice chat* or on the Sound page of the game menu. Hold a key to talk: *nearby* mode (V) is heard by players within the session's range (75 metres by default), more quietly with distance and muffled when one of the two is in a bus and the other is not; the *radio* (B) is heard by the whole session, with a small-loudspeaker voice and a click when you press and release the key. Both keys are in Controls (they can be bound to a controller button; on the touch screen, the cab panel has two talk buttons).

The microphone is open only while a key is held (or with the open-microphone option), the system asks for permission the first time voice is turned on and, according to the notes, nothing is recorded or stored. The host only relays the audio frames and does not need an audio device, so dedicated servers carry voice too. The screen shows when you are transmitting and who is speaking; each player can be muted in the game menu's *Player list* (or all voices at once), and an admin can mute a player across the whole session (vmute / vunmute). server.cfg has the keys voice, voice_radio and voice_range; according to the notes, a server.cfg without voice has voice switched off (the new file comes with voice = 1).

Changed: the GreenTeaSpeak plugin and its settings (voice_chat and, in server.cfg, voice_server_uid, voice_channel and voice_channel_password) were removed; an old file may keep them, but they are ignored and the log warns you. In versions before 0.3.40 (including stable 0.3.37), voice was GreenTeaSpeak 2 with the openOMSI plugin (0.1.1302), a feature that in those versions came on in Settings > General (*Voice chat through GreenTeaSpeak*); if you are on one of them, that is the way.

What to check

  • Are you on 0.3.40 or newer (stable 0.3.42)? In earlier versions the voice is GreenTeaSpeak's.
  • Is voice chat turned on in Settings > Sound (it comes off) and has the system allowed the microphone?
  • Are you holding V (nearby) or B (radio)? Check the keys in Controls.
  • On a dedicated server, does server.cfg have voice = 1, and has no admin muted you? Is everyone on the same version (see the question about versions)?

Learn more

How do I use a dedicated server?

Depends on the version

Each release publishes server files for Linux and Windows (x64 and ARM64), with a name similar to openOMSI-<versão>-server-linux-x64.zip. The server runs without a window, without a graphics card and without sound, but it needs the original OMSI 2 files and the same mods as the players. On Windows (10, 11 or Windows Server 2016 onwards, according to the documentation), it starts with start.cmd C:\caminho\do\OMSI2; on Linux, the documentation mentions a start.sh. In essence, the server is the game itself started as openomsi --root <pasta do OMSI 2> --server <server.cfg>.

On the first run a server.cfg is created with commented default values (name, message, map, date, time, weather, traffic, timetables, passengers, port, web_port, maximum players, tunnel, radius and voice chat). A 64x64 server-icon.png next to it is the icon shown in the server list. Players arrive by UDP at endereço:porta or by WebSocket on the web port (which is what the free Cloudflare tunnel carries, with tunnel = 1, which prints an https://….trycloudflare.com address). The same web port answers GET /status (name, message, map, players, version, protocol, bus list and world counts) and GET /icon.png, which the launcher's list (Multiplayer > Servers page, according to the documentation) uses.

The server also decides which buses it accepts (vehicles) and, with admin_password, can be administered through commands (time, weather, notices, kicking a player) sent from the machine itself; if you use a reverse proxy on the same machine, do not let /admin pass through it. Part of the server documentation still lists “upcoming” items (for example, a world without the renderer's structure and tiles loaded according to the players' interest: today radius = 0 loads the whole map) that may already be out of date, so also check the changelog. Since 0.2.39 the dedicated server, like the game, simulates at 120 steps per second. According to the release notes, since 0.3.31 it keeps less memory (it no longer holds a copy of each map mesh) and, since 0.3.32, bus downloads through the web gateway have their own cap, so as not to disturb people who are joining. Since 0.2.48, according to the changelog, admin_password must have at least 8 characters (since 0.3.37, according to the notes, an admin_password or moderator_password shorter than 12 characters lets nobody in and the log warns you), the administrator login uses PBKDF2 instead of a simple hash over UDP, and bans now apply by the player's address; the session protocol is 7, so players also need 0.2.48 or newer; today the requirement is 0.3.40 or newer on the server and on all players (LAN protocol 15).

According to the release notes, since 0.3.37 there are admin and moderator roles, an Administration menu in the game (Esc) and a web panel at /admin/ (players, search, kick, chat, clock, weather, traffic, passenger density and an audit log); a server.cfg without admin_web leaves the panel off until it says admin_web = local. The run-server.cmd and run-server.sh scripts ask for the OMSI 2 folder and the settings the first time. Since 0.3.38 there is a Docker image of the server and --pack-map <mapa> --pack-to <pasta ou .zip>; since 0.3.40 (stable since 0.3.42), public_server = 1 makes the server list itself on the public list (Multiplayer > Servers in the launcher; name and message go through moderation and the custom icon does not appear yet), and the built-in voice chat uses the keys voice, voice_radio and voice_range (the old GreenTeaSpeak channel was removed). Whoever hosts or administers can ban a player's machine (bans.json next to server.cfg; the notes say this stops people who come back, not people who go to some effort to get around it). Check the SERVER.md for your version, which we could not re-read in this review.

What to check

  • Does the server machine have the original OMSI 2 and the same mods as the players?
  • Is the UDP port (27015 by default) or the web port reachable by whoever is going to join?
  • Server open to the public: the web port shows /status (and /players, if enabled); do not expose /admin.

Learn more

Does the dedicated server have an API to show players on a live map?

Depends on the version

Yes, optionally. The dedicated server can answer GET /players on its web port: a JSON list of players, updated every second, with id, name, bus, line, destination, tour, the position (x and y in world metres), heading, speed_kmh, on_foot and aboard, plus lat and lon only on maps that use [worldcoordinates] (on the others, null). It is useful for live maps and dashboards on websites.

It is off by default. To enable it, set share_positions = 1 in server.cfg; without that, /players answers 404. Enabling it makes player names and positions queryable through the server's web port: enable it only if that is intentional and if the players know.

A player on foot appears where they are walking (even with their bus parked nearby), and someone inside another player's bus appears with that bus (aboard carries the identifier). Available from 0.1.800. This is the server's HTTP API, not the multiplayer simulation itself.

What to check

  • Is the server on version 0.1.800 or newer?
  • Does the server.cfg have share_positions = 1? Without it the answer is 404.
  • Does the map use [worldcoordinates]? Without it, lat and lon come back null.
  • Do not leave the web port publicly reachable unless you mean to publish player names and positions.
  • Do you use a reverse proxy on the same machine to publish the page? The documentation warns that it connects as if it were the machine itself, so do not let /admin pass through it.

Learn more

Does multiplayer work on Android?

Depends on the version

We did not find an official confirmation. The Android documentation still does not mention multiplayer or LAN. There are reports on GitHub indicating that joining by code from a phone has been tried in some versions, and the project's documentation for Apple describes the phone launcher of the other platforms (the 0.2.36 one, made for touch; in 0.2.39, according to the changelog, the "Cross-Platform Launcher" option left the iPhone and iPad, so that documentation may be out of date; openOMSI for iPhone and iPad can already be tested as a Beta through TestFlight) with a Multiplayer page in the icon column; but these are only hints, not a promise of support. The 0.3.40 notes say the iPhone, iPad and Mac launcher now has “guided multiplayer join and invite” (joining and inviting by code, step by step); the notes for versions 0.3.34 to 0.3.42 do not mention Android-specific multiplayer, so we still have no confirmation for it.

If you want to test it, use the same version as the host and the session code. If something fails in a reproducible way, you can report it to the project; see the category about reporting.

Learn more

Where do I find other players?

Depends on the version

The project's README points to the official Discord for the community: discord.gg/VG2EKVafYG. We have not confirmed whether there is a specific multiplayer channel there.

The server documentation mentions a server list in the launcher (Multiplayer > Servers, in the desktop launcher), which shows the name and icon each dedicated server provides. According to the release notes, since 0.3.39 this list refreshes itself every 15 s while it is open (players, time and weather) and since 0.3.40 (stable since 0.3.42) there is a public server list: a server with public_server = 1 appears in Multiplayer > Servers as “Public servers”, with name, map, players, version and message, ready to join; names and messages go through moderation before being shown. We do not know how many public servers exist. The 0.1.178 changelog also mentions an “Official Server” that appears first in the list and that you join by typing openomsi as the address; we have not confirmed whether it is online today. This FAQ is a community initiative by Portal OmsiModsBR and is not official documentation.

Learn more

What does LAN multiplayer share of the buses, and why does everyone need the same version?

Depends on the version

In Beta 0.3.34, which has been in the stable version since 0.3.37, local network (LAN) games began to share much more from each bus: script variables and strings, script textures (such as the displays), sounds and the timetable behaviour of AI buses reach every client, and doors and other animations move smoothly. On foot, you can request a door from a nearby bus (Ctrl+Alt+S, configurable in Controls). According to the 0.3.42 notes, each player also sees the other's bus exactly as its owner has it (same files and paint scheme), fetched from the server when it is missing.

The point to watch is the protocol: 0.3.34 brought LAN protocol 14, and 0.3.40 moved to LAN 15 (AI traffic now goes as a vehicle table). A version with the new protocol does not join a session of an older version, nor the other way round: all players and the server need to be on 0.3.40 or newer (today, stable 0.3.42). In practice, agree on the version with the group before playing.

Learn more

Advertisement

General features

What openOMSI already does, what may still be missing, and how to check whether a feature exists in your version.

Which OMSI 2 features already exist in openOMSI?

Depends on the version

openOMSI is a from-scratch recreation of OMSI 2, and the project's goal is to behave like OMSI 2 and be compatible with existing maps, buses and mods. It needs an original copy of OMSI 2 installed, because it brings no content of its own. It is an early project: the README itself warns that there may be failures and that things change between versions. So there is no fixed, definitive list that we can guarantee here.

As examples described by the project (check on your version): passengers, AI traffic (redone in 0.2.28), timetable buses, natural weather and seasons, with a start, middle and end (0.1.1551 and 0.2.17), manual and automatic gearboxes, network multiplayer and a dedicated server, an Android version, a Beta version for iPhone and iPad, in testing through Apple's TestFlight (the iPhone, iPad and Mac code arrived in 0.2.36 and can also be compiled with Xcode; it is not a final App Store release), virtual reality and triple screens on Windows, plugins, photo mode (0.2.26) and support for steering wheels and controllers. For a current answer, see the CHANGELOG and the releases.

Since 0.3.0 (the Stable release, of 14/10/2026, a stabilisation release) the project separates Stable and Beta releases: Stable is the one recommended for most people and Beta is for those who want to test what comes next. 0.3.0 brought back AI traffic and other scripts once per frame (large maps with a lot of traffic are smooth again) and fixed several performance drops and freezes from earlier versions. 0.3.33 was a Stable release that gathered Betas 0.3.30 to 0.3.32. After it came Stable 0.3.37 (18/10/2026, which promoted Betas 0.3.34 to 0.3.36) and Stable 0.3.42 (25/10/2026, which promoted Betas 0.3.38 to 0.3.41), the most recent stable version when this text was reviewed, still with the notice “Early release, expect bugs”. Among the examples that the notes of those versions mention (check yours): trolleybuses with overhead wire and real poles, train and tram dynamics, realistic road physics (optional), the game's own voice chat (off until you turn it on), a public server list, Depot with your buses, Tobii head tracking on Windows and the “Optimise for my PC” button in graphics. What exists only in a Beta newer than Stable is in the Beta FAQ.

Learn more

Which features are still incomplete or missing?

Depends on the version

The project does not publish a single “what's missing” page. What exists are the CHANGELOG, the technical documentation (which mentions some known gaps) and the issues on GitHub. The README warns that, at this stage, things may be missing, fail or change between versions. Items that were missing in old versions may already have arrived, and the reverse also happens: a feature can disappear from a launcher screen when it is redone and come back in a later version (METAR in the launcher, for example, came back in 0.2.38; since 0.3.42, any four-letter ICAO code can be typed). If you suspect content is missing on your PC (bus parts, packages waiting for the bus, depot files), 0.3.42 has a Troubleshooting page in the launcher's Help, which lists these problems by content and has a content test tab (Model test).

If something from OMSI 2 doesn't work the way you expect, it may be a feature that is still absent, a bug, or an incompatibility with a specific mod. See the question about how to tell these cases apart before reporting.

What to check

  • Look for the feature in the CHANGELOG and the GitHub issues.
  • Test on another map or bus (for example, the ones that come with OMSI 2) to find out whether it is general or just one mod.
  • Confirm you are on the latest Stable version (Beta is for testers and may have new, unstable things).
  • If you are going to report it, the README mentions the launcher's Setup page: Export diagnostics produces a support ZIP (versions, graphics card, graphics settings, controls, last map and bus; no folders, names, chat or addresses) that stays on your computer so you can check it before attaching it.

Learn more

How do I find out whether a feature has already been implemented?

Depends on the version

There is no feature table inside the game. The most reliable path is: (1) check your version, (2) look for the feature in the project's CHANGELOG, where each version lists what changed, (3) look at the releases on GitHub and the documentation (README and the docs folder), and (4) search the Issues to see whether a request or report already exists.

Up to 0.2.x, every change sent to the project became a new version, several times a day. Since 0.3.0 that has changed: releases are started by hand by the maintainers and a tested Beta is promoted to Stable. So there are two kinds of version, and the numbering of a Beta (and that of the iPhone and iPad test versions through TestFlight, which have their own cycle) may not match that of the Stable. A feature that was missing yesterday may have been added today, and the reverse also holds for an answer written here: always confirm at the official source. Some versions have only the line “Bug Fixes & Improvements” in the CHANGELOG, with no details (for example, 0.2.2 to 0.2.15), so not finding the feature there does not prove it doesn't exist. The project's documentation is also published on the openomsi.org site.

What to check

  • Note the version you use.
  • Search the CHANGELOG for a word for the feature (for example, “gearbox”, “passengers”, “rain”, in English).
  • If a newer version mentions the feature, update through the launcher: it looks for new versions when it opens (the option is in Settings > General > Updates, where, since 0.2.60/0.3.0, there is also the update channel: Stable, the default, or Beta, for testers, and the version list marks the Betas; 0.2.39 says the desktop launcher once again checks for, offers and installs updates, and that “Choose a version” in the updates lists the versions and installs the one you pick, staying on it until you choose the latest again) and, during a game, tells you when one has been downloaded in the background.

Learn more

How do I find out which openOMSI version I'm using?

Depends on the version

According to the documentation, the version appears in the launcher's sidebar, on the first line of the log file (game.log, in the .openomsi folder of your user account) and in the openomsi --version command. The name of the downloaded file also includes the version, for example openOMSI-0.2.38-windows-x64.zip (since 0.3.37 there is also an installer for Windows, such as openOMSI-0.3.42-windows-x64-setup.exe, and a .dmg disk image for macOS). 0.2.38 also mentions the “About” window of the new launcher.

We did not check the exact text of the label in the launcher, so it may appear slightly differently, especially after the launcher was redone (0.2.36). The number is of the form 0.2.38: the first two indicate the project line and the third goes up with each change. A pull request test appears as <versão>-pr<número> (for example 0.1.1313-pr1192) and the updater never offers a release to it. Since 0.3.0 there are Stable (default) and Beta releases: the launcher has an update channel in Settings > General > Updates, and the number of a Beta (or of a TestFlight test version on iPhone and iPad, which has its own cycle) may not match that of the Stable.

If the launcher shows 0.1.0, that is not your real version: the new launcher said 0.1.0 on every system (fixed in 0.2.37) and, on macOS and Linux, the About window, the package, multiplayer and the server listing still said 0.1.0 or 0.2.33 (fixed in 0.2.38). In that case, check game.log or the name of the downloaded file.

Learn more

Does the manual gearbox work?

Depends on the version

Yes, the manual gearbox is supported according to the CHANGELOG and the user guide. There are the Ctrl+Up arrow and Ctrl+Down arrow keys to change gears, the clutch pedal, and the automatic clutch option (on by default), which helps with pulling away and changing gears. It can be turned off in Controls or in the game menu (the exact position of this option may have changed with the launcher being redone in 0.2.36). On a bus with an automatic gearbox, the user guide says that gear D is chosen with Shift+D (W, S and D are also OMSI keys, so the gearbox ones use Shift).

Some versions fixed specific buses: for example, a recent version fixed automatic gearboxes that were mistaken for manual ones on some buses. If a specific bus behaves strangely, it may be a problem with that mod or a bug; see the category about reporting.

The manual gear buttons can be held down and, when released, the gear returns to neutral (0.1.721); the launcher stores the “Hold manual gear buttons” option and the pause menu applies it to the bus (0.1.1120). On a steering wheel button, the Continuous option (0.3.37) repeats the action while the button is held down, and *Gear up* still changes gear. gear_up goes past first gear on bus and old-car levers, and there is an automated manual gearbox option in the game's driving settings, off by default (0.1.1098; it can also be switched on in the launcher's driving settings since 0.2.16).

Fixed since then, for anyone who still sees the symptom on an old version: H-pattern selectors that return to neutral when the gear is released (0.1.1668); the automated manual gearbox that stays in first gear on low-revving diesel engines (0.2.21) or that skips first gear on buses whose script keeps the gear in its own variable (0.2.33, which asks for reports from the O305 Schaltwagen and the Citybus i280); and the clutch, throttle and brake set to a control button (0.2.33; before, the clutch on a steering-wheel button did nothing). The clutch key works as in OMSI: the pedal goes down at once and comes up slowly.

What to check

  • Check in Controls (launcher) that the gear and clutch keys are what you expect.
  • Test with and without the automatic clutch on.
  • On a phone, with the automatic clutch off, a clutch pedal appears on screen.

Learn more

What are the controls and keys? Can I change them?

Depends on the version

In the default preset, the basic keys are: W accelerates, S brakes and A and D steer; Left and Right switch the interior camera (the “Arrow keys only” option makes the arrows drive; this comes from the 0.1.623 CHANGELOG, and the current user guide describes the simple preset as W, A, S, D and also the arrows driving, so check what happens on your version); Esc opens the game menu, and a short tap on Alt opens the quick icon menu (0.2.28); F1 to F4 change the camera, and the viewpoint key cycles through driver, passenger, external and map (including the rear-section cameras of an articulated bus). The game also accepts the keys from OMSI 2's keyboard.cfg. There are many others (doors, lights, indicators), listed in the user guide.

You can change the keys on the launcher's Controls page: click the key and press the new one. Steering wheels, pedals and controllers are also configurable there (see also the question about steering wheels and button boxes). The key that turns the game controllers on and off (“Toggle game controllers”) is the one you set in Controls > Keyboard. These details may change between versions; the user guide is the most current source. The launcher was redone in 0.2.36 and the names of the Settings tabs and buttons changed (0.2.38 mentions an Interface tab, for example); the paths written here, such as Settings > Driving, come from the user guide and may not match your version. In Controls, “Add binding” lists every action, including the own triggers of the installed buses (0.2.20; 0.2.39 says the list went back to showing every action, and a controller's buttons can be given any of them), and there are “Indicator left (toggle)” and “Indicator right (toggle)” for switching the indicator on and off with a key or steering wheel button.

The commands have changed a lot and are largely reconfigurable: an action can be given another key and a mod's own trigger can be added to the list (Controls), so don't assume fixed keys. Mouse steering sensitivity (key O) and look sensitivity range from 10% to 300% (100% is OMSI's behaviour) in Settings > Driving and Settings > Camera; in mouse steering, the right button looks around without ending it, and the “A right click ends the mouse steering” option (in the game menu and the launcher) restores the click that ends it, as OMSI does. “Dynamic steering” reduces the speed of the steering keys according to the bus's speed. Since 0.2.39, without “Steering linearity”, a tap on the key no longer rocks the bus and, above about 12 km/h, the keys turn the steering wheel more slowly the faster the bus goes (CHANGELOG; the user guide still describes 0.2.38). In Settings > Camera, “Right mouse button turns the view” on (default) rotates the camera with the right button and Shift + right button zooms, and off gives the original OMSI mouse; “Driver's view turns with the steering” makes the view follow the steering. The left and right indicators can be toggled by a key or a steering wheel button, and “Indicators cancel themselves” can be turned off. Doors 1 to 9, from front to back, and all doors (door_1 to door_9, doors_all) can be assigned to a key or a button, and 0.2.39 brought the doors_release action (release the doors) for any bus, alongside the buses' own, and fixed door keys that triggered two doors at once (GPM C2, Urbanway, Citelis); Ctrl+Up and Ctrl+Down (manual gearbox) are also keys in the list, and there is an automated manual gearbox option. A gamepad's right stick turns the driver's head; P pauses and resumes without opening the menu (except in LAN); holding both mouse buttons and moving brings the camera closer or farther; the hand cursor appears over clickable parts of the cockpit; chat is also in the key list; the city map and the browser also open on foot; and Numpad ÷ opens the front door. Outside VR, Ctrl+M shows the mirror panels and Ctrl+Shift+M opens their editor (see the question about mirror panels). Since 0.3.37 there is also Ctrl+Alt+S, which on foot asks a nearby bus to open its door, and 0.3.42 brought the hand torch (Alt+F), Shift+P to raise and lower the pantograph of trams and trains and, on trolleybuses, R and T to pick up or pull the poles from outside the cab. With voice chat on (0.3.42), V talks to whoever is nearby and B uses the session radio. Since 0.3.42 the desktop pause menu also has categories and action cards; the keys may change, so check in Controls. A steering key or a pedal released while Shift is held, or with the game menu open, is now really released (before, it could drive the wheel to the stop); turning off mouse steering in the menu keeps the brake; and Ctrl+click on the ground in the free camera (F4) takes the bus to the nearest street (0.1.1223). When the window loses focus or is minimised, the game releases every key, button and mouse steering that was held and receives no input until the window returns (a minimised game runs at 30 fps) (0.1.1302); and one key can work both inside the cab and outside it (0.1.1302).

Other keys and options that the current user guide mentions (check on your version): Shift+U does the whole bus start-up (master switch, ignition, starter and gearbox in neutral); T sells the ticket a passenger asks for on buses without a printer; Shift+M opens the city map and Shift+N cycles between map, map with next stops and off; Z, X and C are the direction indicators; Num 5 (steering_neutral) returns the steering wheel to the centre; Space looks forward again and I/J/K/L look around from the keyboard; Ctrl+F12 opens photo mode, Ctrl+Shift+E the object editor and Ctrl+Shift+D the developer tools; Ctrl+S does the quicksave. Since the 0.2.4x line (CHANGELOG), there are also: “The mouse works the pedals” (off, mouse steering only steers and the pedals stay on the keys), “Pedal keys speed” (finer throttle and brake on the keyboard), radio keys (next and previous station, volume), the mouse side buttons (Mouse 4 and 5) as keys, and, with a steering wheel, the arrows switch the cab cameras by default, as in OMSI. The configured keys and controls are now kept in ~/.openomsi/Inputs and are preserved across updates. In Settings > Driving there are also “Mouse pedal strength” (how much cursor movement leads to full throttle or brake), “Steering linearity” and “Old Steering” (off by default) and “Smooth mouse steering”; “Hold the cursor while the mouse steers” holds the cursor in mouse steering so that the wheel can reach the stop (0.2.17) and, when off, leaves the cursor free as in OMSI (0.2.21). Gamepads have ready-made Xbox, PS4 and PS5 profiles (0.2.20), and “Right stick turns the view” (Settings > Camera, on by default) can be switched off so that the right stick does not move the camera.

What to check

  • If your key doesn't respond, see the “Driving keys” setting in Settings > Driving (ready-made layouts take priority over the list).
  • Keys in red on the Controls page indicate a conflict.

Learn more

I can't find the button or key for the 3rd door. What can I do?

Depends on the version

According to the user guide, doors open and close with Shift+1, Shift+2, Shift+3…, from front to back, and how many exist depends on the bus script: the bus_doorfront<n> triggers it defines are what count, with the rear door (bus_dooraft) last. In other words, the 3rd-door command only exists if the installed bus has that trigger. The in-game controls reminder tells you how many doors that model supports, and a two-door bus will not have a 3rd-door command.

If you have already set up your controls in OMSI 2, you do not need to start from scratch: openOMSI reads the same Inputs/keyboard.cfg as OMSI 2 (and the gamectrler.cfg for steering wheels and button boxes). Some users report reusing their OMSI 2 setup and only having to redo two keys; that is a community report, not a procedure documented by the project. Before copying any files, make a backup and check which content folder openOMSI is using.

From version 0.1.1120, a controller button or a keyboard.cfg key can also trigger a specific door (door_1 to door_9) or all of them at once (doors_all). We have not found anything in the documentation saying whether any screen lists “door 3” as a line of its own; if a three-door bus does not respond to the command, report the model and the openOMSI version.

On the Controls page, “Add binding” lists every action (since 0.2.20; 0.2.39 says it lists them all again), including the own triggers of the installed buses, and you can search it. On Android, there is one button per door, from front to back, and in 0.2.28 these buttons became configurable. 0.2.39 also added the doors_release action for any bus and fixed door keys that triggered two different doors on some buses (GPM C2, Urbanway, Citelis).

What to check

  • Does the bus really have three doors, and does its script define the trigger for the third?
  • Does the in-game controls reminder list the door you are looking for?
  • Is the keyboard.cfg in use the OMSI 2 one that you configured?
  • Is your openOMSI version 0.1.1120 or newer?

Learn more

My steering wheel, pedals, controller or button box does not work properly. What should I check?

Depends on the version

Steering wheels, pedals, joysticks and button boxes are configured on the launcher's Controls page: a connected device that is not yet configured shows Set up, and Set up step by step discovers the axes (turn the wheel, press each pedal). On Windows, devices are read through DirectInput, as in OMSI, and a wheel nobody has configured steers with the X axis.

Several situations that look like a wheel defect were fixed in recent versions: pedals read as buttons and buttons firing twice on G27, G29 and Driving Force GT (0.1.576); axes that follow the gamectrler.cfg characteristic (progressive, degressive, range extension), configurable in the launcher (0.1.592); a combined throttle and brake axis with the throttle on the right half, as in OMSI (0.1.774); vJoy that froze the game when vibration started (0.1.774); gamepad triggers on Windows read as buttons and D-pad (0.1.737); and boards and button boxes without axes, such as Arduino, Pro Micro and STM32, which DirectInput did not recognise (0.1.791). Script vibration (FF_Vib_Amp, FF_Vib_Period) plays as a periodic effect of real force feedback (0.1.623), the force feedback direction is detected and stored per wheel (0.1.759) and opentrack (freetrack output, TrackIR protocol) is read for head tracking on Windows (0.1.623). Also addressed: force feedback wheels not yet configured now steer without a dead zone and force feedback received improvements (0.1.1098); wheel hats are read on Linux (0.1.927); and head tracking keeps working when its UDP port is already in use by opentrack (0.1.960). Also addressed: latching switches on controllers and button boxes (0.1.1302) and the buzzing of Linux wheels (0.1.1302).

If something still fails on a current build, note the device, the version and what the launcher shows: the log records how each control was brought in (layout, DirectInput or system) and whether an axis moves the wheel. This does not guarantee that every device works. Since 0.2.38, a device that is not yet configured configures itself when it is used: the X axis steers, each axis resting at one end becomes a pedal (throttle, brake and clutch in the order the device lists them, inverted when it reads the other way round), and a joystick or wheel with combined pedals drives with the Y axis; a notification says what was configured, and it can be adjusted by hand on the Controls page. 0.2.39 fixed an unreadable controls file being replaced by a self-configured device, and a force feedback wheel ceasing to push back next to a gearbox or button box that had configured itself in order to steer. Gamepads have ready-made Xbox, PS4 and PS5 profiles (0.2.20). On Windows, since 0.3.0, with a steering wheel or joystick connected the game stopped looking for controllers every 300 ms (it waits longer and longer while nothing changes and looks again when something is plugged in or unplugged), which removes small regular stutters. 0.2.38 also says that the game controls page came back redesigned, with live axes, buttons listed by action, step-by-step setup and a force feedback test; the exact button names on that page (Set up, Set up step by step) come from earlier launcher versions and may have changed.

Other fixes recorded after 0.1.1302, for anyone who still sees the symptom on an old version: you can set up keyboard, wheel and gamepad while playing, and DirectInput wheels recover from a failed reading or from being reconnected (0.1.1668); on Linux, wheels such as the Logitech G29 are no longer treated as gamepads, which brings back linear steering and native force feedback (0.1.1740), and force feedback for wheels without a gilrs mapping was handled (0.2.28); a joystick that is idle and was never configured no longer uses the arrows to look around (0.1.1726); native TrackIR on Windows (NPClient, with sensitivity and per-axis inversion in the launcher) arrived in 0.2.16, and opentrack remains valid; the Logitech G923's force feedback now pushes the right way (0.2.26); with photo mode open, wheel, pedals and joystick do not move the camera (0.2.28); a key, button or trigger set as a pedal (throttle, brake, clutch) now works like the pedal key (0.2.33); and, on Windows, the stutter every 5 seconds with no controller connected no longer happens (0.2.33). Since 0.3.32 (Beta; in Stable since 0.3.33), a force feedback wheel no longer pulls itself to the centre with the bus stopped (the return force goes back to normal), and on Windows and Linux the DirectInput and controller axes are read by their real range; the same version fixed steering stuck with Num4 + Left arrow pressed together. Since 0.3.37 (Beta 0.3.34), in Controls > Game controllers > Buttons a button can have several actions, there is the continuous button (it repeats while held, as in OMSI 2), a click makes the hat look around, and the “Keep driving in the background” option (off by default) keeps the wheel, pedals and force feedback working with another window in focus; see also the question about steering wheel buttons below. Since 0.3.42, Tobii trackers (Eye Tracker 5, 4C and those in laptops) do head tracking natively on Windows, without opentrack: under “Head tracking with”, Automatic uses opentrack while it is sending and, if not, the Tobii; F1 recentres the view.

What to check

  • Is openOMSI on the current version? Many of these cases have already been fixed.
  • Does the device appear in Controls? Use Set up or Set up step by step.
  • Is the device switched on in “Use this device” and are the game controllers not turned off (the “Toggle game controllers” key is the one configured in Controls > Keyboard)?
  • Is the axis characteristic (progressive, degressive...) what you expect on the controller's page?
  • Throttle and brake on the same axis: the throttle sits on the right half of the axis.

Learn more

What are the controls like on Android?

Depends on the version

According to the Android documentation, the game uses on-screen controls: steering wheel on the left (or steering by tilting the phone), brake and accelerator pedals on the right, buttons for the gearbox, doors, parking brake, indicators, hazard lights and horn. There is also a driver's-area panel for battery, start, headlights, wipers and others.

On the steering wheel, you hold the rim and turn it (about 120° of rim equals full steering lock) and it returns by itself when released, like the bus's steering wheel with the keys. The buttons trigger the same actions as Inputs/keyboard.cfg, so a mod bus responds to them as it does to the keyboard. Inside the cab, a tap operates the key or button under your finger, dragging from a button turns the control (rotary knobs, ignition key, curtain) and dragging elsewhere looks around; two fingers zoom. The navigator is in the middle of the top (a tap opens the city map). On foot or with the free camera, a joystick in the bottom-left corner walks (pushed to the edge, it runs).

Bluetooth controllers work as on the computer. Android's “back” key is equivalent to Esc. There is a passenger announcement button (Q) in the touch controls (0.2.4x line), and, on iPhone and iPad (Beta through TestFlight), the touch buttons respond where they are drawn from the first drive. The door buttons became configurable (0.2.28), the pause menu scrolls by touch again (0.2.28) and, in the pause menu's World options, there are -1 h, -10 min, +10 min and +1 h buttons to change the time without a keyboard (0.2.37). The exact controls may change between versions. Since 0.3.37, the touch pedals have a resting zone at the foot (where the finger presses nothing), a softer start of travel and an adjustable length, and screenshots show up in the phone's gallery straight away. In 0.3.42, the free camera (F4) works by touch (a “Free camera” button on the cab panel, steering by joystick, two fingers zoom and “Exit free camera” returns to the driver's seat), photo mode has its own buttons for fingers and the game menu fits on a phone held upright.

Learn more

Can a map have its own radio stations? Does the bus display show the song?

Depends on the version

Yes, in recent openOMSI. A bus radio with a text display (like the Magnitola on some buses, or any script that reads Snd_Radio_Text) shows the station and song that the internet radio is actually playing, and not the names from the script's list. This only applies when stations are configured and the radio is on.

A map can ship its own stations in a radio.cfg file next to global.cfg (lines of nome = endereço): they come first, on the first station buttons, followed by the player's stations. Each station can also list frequencies, which the display shows according to the map location nearest to the bus (| 94.6 applies to the whole map; | 94.6 @ x, y to one place).

Note: a map's radio.cfg is not an OMSI file and Omsi.exe does not read it; it only works in openOMSI and only exists if the map's author includes it. The stations are internet streams: openOMSI does not pick real radio stations by location, nor does it guarantee that an external address is online. The format is described in the Radio section of the project's docs/MODDING.md (the volume line of a map's radio.cfg is not read: the volume belongs to the player).

Your own stations go in ~/.openomsi/radio.cfg (on Windows, C:\Users\<você>\.openomsi\radio.cfg), one per line, with the first on the first button; the game writes the file with a few stations the first time it opens, and the stations of OMSI radio plugins (such as SuperRadio) are picked up after yours. A station is an MP3, AAC or Ogg stream, or an .m3u or .pls playlist that points to one; HE-AAC streams with a program config element (some .aacp stations) do not play. Shift+R moves the list to the next station. When nothing plays, ~/.openomsi/game.log shows radio: lines and, at the end, no signal (...) with the reason, almost always an address that is not a stream or a station that is offline. All of this is in the user guide.

Since 0.2.28 the radio sounds from the cab (from a point slightly ahead of the driver's eyes; from outside, as if playing through the bus's windows), and the user guide describes three optional controls in Settings > Sound, all off to begin with: “Radio: small speaker” (a small dashboard speaker), “Radio: FM hiss” (weak-signal hiss) and “Radio: signal dropouts” (signal losses). The same guide says the station list can also be edited there, under “Radio stations”, without opening the file; as the launcher was redone in 0.2.36, check whether the option is in the same place (the CHANGELOG for the 0.2.4x line says that editing the stations in the launcher, in Settings > Sound, is back). The 0.2.4x line also brought radio keys: next and previous station, volume up and down, for keyboard, steering wheel or gamepad. Since 0.3.37 there is the Radio: on / off action, so that a key or button can switch on the internet radio on a bus whose scripts have no radio of their own. The 0.3.42 notes also mention a MileZero card on the navigator (cover, music, artist and song request); this integration comes off and only plays when you press Play.

What to check

  • Is openOMSI recent? This feature arrived after 0.1.1120.
  • Does the map have a radio.cfg next to global.cfg?
  • Does the bus have a radio with a text display (for example, one that reads Snd_Radio_Text)?
  • Is the station's address online? Stations are external internet streams.
  • Does the game.log have a radio: station ... line? If there is none, the bus radio does not define the variables openOMSI uses (Snd_Radio or SndExt_Radio).

Learn more

Can I change the time or use the real time and weather of an airport (METAR) inside the game?

Depends on the version

On recent versions, largely yes. Starting with 0.1.927, the game has a new internal menu (the Esc key) with synchronisation to real time and to METAR (the weather reported by a real airport). The METAR airport can be typed as an ICAO code (0.1.576), and the weather chosen in the menu is applied immediately, with a smooth cloud transition (0.1.737).

The exact option names change between versions and the public documentation about them is still short: check your menu and the launcher (Drive page: time, date, season and weather) before assuming something can only be changed outside the game. In multiplayer, the host controls the date, time and weather.

Later changes on record: a custom weather (visibility, wind, temperature, humidity, clouds, rain, wet road and snow) can be edited in the launcher and in the game, and the METAR code can be typed directly (0.1.1061); if you do not choose a weather, the default is natural weather, a physical model that changes over the days (0.1.1551); the season can be chosen with a start, middle and end (0.2.17); a short tap on Alt opens the quick menu, in which Time and weather share an icon (0.2.28 and 0.2.38), and the pause menu's World options have -1 h, -10 min, +10 min and +1 h buttons beside the time (0.2.37). 0.2.38 says that the current METAR and the weather cycle “can be chosen again” in the launcher, with the airport, and that the buttons that set the start of the trip to the current time and date “came back”; this suggests the new 0.2.36 launcher did not have them. If you are on 0.2.36 or 0.2.37 and cannot find them in the launcher, update or try the game menu. 0.2.39 also says that the current weather, the weather cycle and the custom weather remain chosen when the launcher opens again and on the next stops, and that adjustments made inside the game are no longer undone by the launcher. In the 0.2.4x line (CHANGELOG), custom weather came back to the launcher's Drive page, the launcher gained a calendar for the start date (and the mouse wheel turns the time and date), and there is a time menu with the date and day of the week, which moves one day, one week or one month keeping the time of day. There is also the units option (metric, British or American) for the game's texts. Since 0.3.37 there are Current time and Current date buttons beside the start time and date; since 0.3.42 (Beta 0.3.39) any four-letter ICAO code can be typed into the METAR, even outside the ICAO.txt list; also since 0.3.42 (Beta 0.3.40) only the map's weathers that match the season are offered (with a switch to see the others); and there is an optional live weather from Tomorrow.io on maps with openomsi_weather.cfg and with your own key (0.3.37). 0.3.42 brought thunderstorms with lightning and thunder delayed by distance. Option names may vary between versions.

What to check

  • Is openOMSI on 0.1.927 or newer?
  • Does Esc open the new game menu? Look for the time and weather options in it.
  • In multiplayer, the host controls date, time and weather.

Learn more

Can I use the navigator inside the cab in VR?

Depends on the version

Yes, since 0.1.808. openOMSI's VR is for Windows and requires an active OpenXR runtime and a DirectX 12 capable graphics adapter (that is a VR requirement, not an openOMSI requirement in general). In the launcher, turn on Settings > Camera > Virtual reality > Use OpenXR headset. VR uses the Enhanced graphics (0.1.960), and the VR navigator options are also in the new pause menu (0.1.929).

The navigator (map and stop list) is an overlay attached to the bus and is off by default on buses without a saved configuration. Ctrl+Shift+N shows or hides it; Shift+N cycles between map, map with stop list and off; Ctrl+Shift+M, or Esc > Options > VR > Move and rotate with the mouse..., opens positioning, which also turns the navigator on. Position, rotation, size, opacity and visibility are saved per bus, without editing mod files, and the shortcuts can be changed in Controls > Keyboard.

While positioning: the left button moves; the right button rotates and tilts; Shift + right button tilts sideways; the mouse wheel changes the distance; Ctrl + wheel changes the size; R restores position and size; Esc or Enter saves and finishes. In solo play the game pauses during positioning; in multiplayer it does not pause. Losing the window's focus saves and ends positioning. Since it is an overlay, the cab geometry does not hide it: place it somewhere clear. The positioning menu also has numeric position, width, rotation, tilt, roll and background opacity, and those controls exist only in VR.

The bus mirrors in VR no longer turn black when you look around (0.1.576) and can update up to every frame (0.1.721). According to the VR documentation, the “Bus mirror refresh” setting divides a budget of redraws between all the mirrors, from Off to Every frame, and the default is 16 redraws per second in total; more updates may reduce FPS. Outside VR, Ctrl+Shift+M opens the mirror panel editor (see the question about mirror panels).

Other points from the VR documentation: the settings are in Settings > Camera > Virtual reality (Eye resolution from 50% to 100%, Head tracking smoothing, Bus mirror refresh and Show headset picture on monitor); the VR keys are edited in Controls > Keyboard (search for VR), with defaults Ctrl+Shift+R (recentre the view), F7 (preview on the monitor) and F8 (switch between VR and desktop); the driver's seat is adjusted in Esc > Options (Seat forward, back, up, down, right, left); Esc opens the menu in front of the headset and right-click gives a smooth zoom in VR. In recent versions, the headset's head tilt is applied (0.1.1668), and the VR options depend on an active OpenXR runtime and an adapter with DirectX 12. Headsets that stayed on a black screen (a report with the PICO Neo3 Link on SteamVR) now show the game even without input focus since 0.3.32 (Beta; in Stable since 0.3.33). Since 0.3.42, the timetable in VR recovers stop details, time arrows and trip-start controls, where the panel is wide enough, and the map opacity also fades the labels. The optional AMD FSR 1 upscaler (Stable since 0.3.42, experimental) covers the VR eyes, but the notes say headset testing is still missing.

What to check

  • Is openOMSI on version 0.1.808 or newer?
  • Is the headset's OpenXR runtime active before starting the game?
  • Is the navigator turned on for this bus (Ctrl+Shift+N)? It starts off.
  • In multiplayer, positioning does not pause the game.

Learn more

Can I see the bus mirrors over the image (mirror panels)?

Depends on the version

Yes, on recent versions. In the cab, Ctrl+M shows or hides copies of the bus mirrors over the image, so you can see the street behind without looking at the glass (the first time, one panel appears for each bus). The panels are just images: with the editor off, the mouse and keys work as always.

Ctrl+Shift+M turns the editor on and off: drag a panel with the left button; the wheel over it changes the size (Shift + wheel, the width; [ and ] narrow and widen the panel under the cursor, ; and ' shorten and lengthen it); the arrows rotate the mirror of the panel under the cursor, Alt + arrows shift it and Page Up/Down move it closer or farther, and - and + change the field of view; Insert adds a panel, Delete removes it, C switches the mirror shown, R resets that mirror (Shift+R, all of them) and Esc ends and saves. The layout is stored per bus in ~/.openomsi/mirror_hud.cfg, and the mirror_hud setting (0 off, 1 right mirror, 2 left, 3 both) gives the first panels to a bus with no layout.

The panels depend on the mirrors being drawn (mirror_size other than 0, that is, not Mirrors: Off) and are redrawn at the mirror_refresh rate, even with the glass outside the field of view, which costs performance. In VR, Ctrl+Shift+M is navigator positioning, not this editor.

If the mirror image in the panels looks like it is “jumping” while the street goes by, 0.2.31 brought the Mirror panels every frame option (Settings > Graphics, off by default), which draws the panel mirrors every frame, as ETS2 does, without depending on mirror_refresh. It costs one mirror image per frame for each mirror in the panels (and does not apply in VR, where the panels are not drawn). Since 0.1.1512 the panels use only the player's own bus mirrors, and since 0.2.21 they are drawn underneath the notes and the pause menu. Since 0.3.42 (Beta 0.3.39), the Camera page of the options and of the launcher has Mirror panels on the screen (Off, Left, Right, Left and right, Left, right and front) and the Arrange the mirror panels button, so Ctrl+M is no longer needed to find them, and there is a front panel that shows the mirror at the front of the bus. Mirrors can show sun shadows and smoke again, with the mirror_shadows and mirror_particles settings, off by default because they cost a little on every frame (0.3.42); the “As the picture (Enhanced)” mirror quality option remains optional.

What to check

  • Is openOMSI recent? Mirror panels arrived after 0.1.1120.
  • Are the mirrors on (Settings > Graphics > Mirrors is not Off)?
  • Is the editor off? With it on, the mouse and some keys serve the panels (Ctrl+Shift+M turns it on and off).

Learn more

What changes on Android compared to the computer?

Depends on the version

It is the same game, with the same maps, buses and mods, but the installation is different: you install the APK (arm64 only, Android 8.0 or newer), allow access to all files and copy the entire OMSI 2 folder from a PC to the phone. It also uses touch controls and, the first time, lighter settings (the documentation mentions 2x MSAA, no ambient occlusion, a 1024 shadow map, 60 fps and 900 m object distance), which you can change in the launcher's Settings. When the FPS drops below 45, the 3D image is drawn smaller, down to 0.6 of the screen, as on the computer. The launcher and the game share a single window: when you end the game you go back to the launcher.

The project does not publish minimum memory or processor requirements, nor a list of compatible devices. The documentation mentions a GPU with Vulkan 1.1 (and says that, without Vulkan, openOMSI tries OpenGL ES 3). In some versions there were failures on certain phone graphics chips, fixed or reduced later: 0.2.1 fixed the black screen that 0.2.0 caused on devices whose driver does not compile the new snow, fog-light and street-lamp shadow shaders, and 0.1.1502 worked around the black screen on Adreno 6xx, 7xx and 8xx chips; if your device fails, see the reporting category.

Updates: the launcher offers the new version (Settings > General > Updates) and hands the APK to Android's installer, which asks “Do you want to update this app?” (Update replaces openOMSI and opens it again; Cancel leaves it as it was). Mods can go in the openOMSI/Mods folder or be installed through the Mods page; .zip files in openOMSI/Archives are used without unpacking them. On phones, since 0.3.0, the Mods page has its own storage browser to install a folder or a .zip, .7z or .rar file (before, “Add folder” and ZIP did nothing). For iPhone and iPad (iOS or iPadOS 18.0 or newer, on a compatible device), openOMSI is available as a Beta through Apple's official TestFlight (https://testflight.apple.com/join/gGdGp1Ut), not as a final App Store release; the code for iPhone, iPad and Mac arrived in 0.2.36, and building with Xcode (docs/APPLE.md) remains possible. TestFlight versions have their own update cycle, and performance, compatibility and stability may vary by device. To install on iPhone or iPad, see the question about installing on iOS. According to the 0.3.42 notes, on Android the support package (Settings, Support package) works and is saved in the openOMSI storage folder, and after a crash the app opens the crash dialog with the report and the GitHub buttons. The same notes say the iPhone, iPad and Mac launcher gained the settings, the Depot and the timetable pages that were missing, but that does not guarantee everything behaves the same as on desktop.

What to check

  • Is the phone arm64 and does it have Android 8.0 or newer?
  • Was the “manage all files” permission granted?
  • Was the OMSI 2 folder copied in full, with Omsi.exe, maps and Vehicles?

Learn more

What's new in the recent releases?

Depends on the version

On 12 October 2026 (when this text was checked, at version 0.2.42), the records since 0.1.850 included, for example: simulation at a fixed 120 steps per second, the same on any computer (0.2.39); more realistic Enhanced mirrors and sky, a sun of its real size and AI cars' headlamps lighting the road (0.2.42); phone touch controls that drive the bus again (0.2.41); a new launcher, rebuilt from scratch in 0.2.36 (its own window on Windows, macOS and Linux, which needs WebView2 on Windows and WebKitGTK 4.1 on Linux, plus a version designed for the phone; an earlier attempt at a new launcher, in 0.2.22, was withdrawn in 0.2.23); a startup watchdog that repairs by itself a version that will not open (0.2.31, published for every system as 0.2.32); wheels, pedals and joysticks that configure themselves when used (0.2.38); a live performance panel (0.2.38); AI traffic rebuilt (0.2.28); the five-star rating on the trip summary (0.2.34); the Mods page, which lists and switches off each mod (0.2.22); the code for iPhone, iPad and Mac (0.2.36), which can also be compiled with Xcode and which, on iPhone and iPad, is in Beta testing through Apple's TestFlight (iOS or iPadOS 18.0 or newer; not a final App Store release); 0.2.0, focused on light and weather, with dark night again, real shadows from street lamps, fog halos around lamps and headlamps, the eye adapting to light (looking at the sun dazzles) and a new snow in all graphics modes (0.2.0; on Android, 0.2.1 fixed the black screen that 0.2.0 caused on phones whose driver cannot compile the new shaders); the then Enhanced+ graphics mode, with hardware ray tracing on RTX, RDNA 2 and Apple M3/M4 cards or newer (0.1.1551; on Windows and Linux it worked again in 0.1.1554; since 0.3.42 Enhanced+ is no longer a mode but Enhanced with “Real-Time Ray Tracing” switched on, see below), natural light calculated from atmospheric physics and natural weather, the default when no weather is chosen (0.1.1551); native triple screens, with the HUD on the centre screen (0.1.1313); voice chat through GreenTeaSpeak (replaced, in 0.3.42, by the game's own voice chat) and resumed sessions that keep displays and timetable place (0.1.1302), plus a size of its own for the chat (0.1.1518); in multiplayer, all the variables of other players' buses synchronised (0.1.1515); updates downloaded in the background during the game and installed at the end (0.1.1515); keyboard, wheel and gamepad controls that can be configured while playing (0.1.1668) and wheel vibration following the road and the engine (0.1.1502); vehicle scripts about a quarter faster (0.1.1541); the launcher's Drive page brought together on a single screen, with the bus, the line, the timetable and the weather (0.2.36); old chips (such as the Intel HD 2500 and some Mali) that now open, DirectX 12 tried first on Windows and the end of the black screen on Adreno 6xx to 8xx chips on Android (0.1.1502); NVIDIA cards without Resizable BAR that took minutes to load and ran at a few FPS on Vulkan (0.1.1423); AI that goes around parked cars, yields to the player's bus and no longer runs red lights (0.1.1422); an early timetable bus that waits up to 20 s before departure; wet-road reflections also in Vanilla; whoever joins a LAN game using the host's map and receiving, encrypted (0.2.17), the host's mods that are not in the OMSI 2 folder; a new in-game menu, with real time and METAR; saved-game slots; reconnection in LAN games; mirror panels; maps' own radio stations; Czech and Slovak content read as Windows-1250 (0.1.1726); the interface also in Catalan (0.1.1707); Lua plugins that see the surrounding vehicles; and passengers that react to driving. The “playing now” counter (0.1.1515) sends only a random session id, the version and the type of system, and can be turned off in Settings > General. Before that: mods in .7z and .rar, passengers rewritten to match Omsi.exe, automatic .nomedia on Android and the VR browser.

In 0.2.39: the simulation began to run at a fixed 120 steps per second, on any computer and frame rate (OMSI_FIXED_STEP was removed, and there is an experimental OMSI_SIM_THREAD=1, off by default); the desktop launcher became the only one (the game's own launcher window was removed and, without WebView2 or WebKitGTK, the game says why instead of opening an old launcher); Swedish joined as a language; the pause menu shows the darkened game behind the first page; the reflections of Enhanced with ray tracing (then called Enhanced+) gained real textures on glass; and the Mods page, the choice of line and roadbook, and the Drive page of a server you have joined came back. Also arrived in the 0.2 line: photo mode (0.2.26, from the pause menu or Ctrl+F12); the quick menu on a tap of Alt, which became an icon grid in 0.2.38 (0.2.28); the developer tools on Ctrl+Shift+D (0.2.28); the Rain quality option (0.2.24); trains and trams following the rail (0.2.24); seasons with a start, middle and end (0.2.17); plugins with a Lua API, panels, WebAssembly and signed .oop files (0.2.22); LAN mods that travel encrypted (0.2.17); the ANGLE (DirectX 11) graphics option for very old cards (0.2.17); the support package in Setup > Export diagnostics (0.2.18); and, for passengers, an optional procedural animation (0.2.26). The ambient sounds (0.2.27, on by default in Settings > Sound) use about 300 MB of recordings that are downloaded by themselves, once, to ~/.openomsi/ambience when the launcher or the game opens with ambience on; they do not exist on Android yet.

In the 0.2.43 to 0.2.60 line, according to the CHANGELOG: Simple and Advanced photo mode (with depth of field), metric, British or American units, time menu, timetable editor (.ttl) back in the launcher, the navigator and the city map showing the terrain under the streets on maps with a map pack, launcher size and Classic layout, more control options, the “People at once” option, interface in Traditional Chinese and Swedish, glTF/GLB/FBX/OBJ models and many image and sound formats, and the GNU AGPL v3 licence for the code. On 14 October 2026 0.3.0 (Stable) arrived, a stabilisation release: AI scripts, passengers, pedestrians, timetable and weather once per frame again, startup on processors without POPCNT, Vanilla clouds, traffic that no longer stands still at large junctions and roundabouts, trains and trams that stay on the rails, the original OMSI animations as the default for passengers (natural poses are optional), “Original paint” back in the vehicle lists and the phone's Mods page with a storage browser. Since 0.2.60 there are Stable (default) and Beta channels. 0.3.33 (the current Stable, which gathers Betas 0.3.30 to 0.3.32) brought, according to the release notes: heavy rain that weighs less in the cab and less video memory spent on textures (0.3.30 and 0.3.33); the “Video memory” option, which now limits everything the game keeps on the graphics card, and a card that runs out of memory no longer losing the whole picture; less processor spent on the FPS limit and faster starts from the second launch (0.3.30); on dedicated graphics cards in OpenGL and DirectX 11, the full graphics settings and poles, headlights and interior lamps lighting their surroundings (0.3.31); maps made in the OMSI 1 editor, such as Great Grundorf 2, with the whole street network; AI cars that no longer run into articulated buses on servers; the launcher's route map showing the city around the streets on maps with a map pack (it appeared in Beta 0.3.31 and has been in Stable since 0.3.33); complete Brazilian Portuguese, Catalan and Spanish, and German and French in the launcher; safer online play; departure boards at bus stops showing the buses again; high-quality passengers with a third of the graphics memory; timetable buses that appear when their route starts; the steering rear axle of articulated buses; VR headsets that used to stay black; a force feedback wheel that no longer pulls to the centre with the bus stopped; instruments and plates that no longer shimmer on the surface; headlights that come out of their own reflectors; a control for the strength of reflections; plugins that choose the passenger's ticket; and two smaller launcher sizes. Check what applies to your version in the CHANGELOG and the releases.

0.3.37 (Stable of 18/10/2026, with the changes since 0.3.33) brought, according to the notes: a new Apple Maps-style navigator, with 3D houses; the Optimise for my PC button (you choose the target fps, the game measures for about a minute while you drive and, if you prefer, “Restore my previous settings” puts everything back); the Drive page on one screen (Big Map, Control Room, Classic+ and Classic); installers for Windows (no administrator needed) and a .dmg disk for macOS; multiplayer by code (Join friends and Invite friends) and dedicated server administration; steering wheel buttons with several actions; rebuilt rain and snow that accumulates; and the simulation on a thread of its own by default. See the specific questions in this category. 0.3.42 (Stable of 25/10/2026, with the changes since 0.3.37) brought, according to the notes: Enhanced+ is no longer a mode (it is Enhanced with “Real-Time Ray Tracing” switched on, ray_tracing=1); new Enhanced options (light with shadows, cloud shadows and light beams, light glow, real-time reflections and reflective objects); Low, Medium, High, Extra, Max and Ultra quality presets, which also choose the mode (Low is Vanilla, Medium is Vanilla+ and is the default, High to Max are Enhanced and Ultra is Enhanced with ray tracing); an optional, experimental AMD FSR 1 upscaler; video memory counting the space the driver really keeps (the FPS drop after half an hour on DirectX 12 and Vulkan); trolleybuses with overhead wire and real poles; BRT buses that serve the platform of the scheduled stop; a pause menu in categories; native Tobii head tracking on Windows; train and tram dynamics and realistic road physics (optional, off); the game's own voice chat (V for nearby and B for radio, off until you turn it on), a player list with kick and machine ban, and a public server list; the Depot with your buses (plate, odometer, fuel and wear); passengers who run after the bus and pay with banknotes; the navigator and the city map rebuilt (lines with timetables, compass, numbered waypoints); in the launcher, the timetable editor on the map, the Troubleshooting page, the server list and METAR for any airport; Georgian as a new interface language and more translated texts (Latin Serbian, French and others); and plugins that put panels in the navigator, close stops on a detour and add lines to the pause menu. Note on multiplayer: the online protocol changed (LAN 15), so all players and the server need to be on 0.3.40 or newer (so, in Stable, on 0.3.42), and a version does not join a game of an older one.

This is only a snapshot and may already be out of date: the project releases versions often (Betas for testers and Stable once tested). For the real list, see the releases and the CHANGELOG. If there is a Beta ahead of Stable, it brings features not yet published in Stable: see the Beta FAQ.

Learn more

How does photo mode work (taking photos of the bus in the game)?

Depends on the version

According to the CHANGELOG, from 0.2.26 the pause menu has Photo mode (also with Ctrl+F12, the photo_mode action), which replaces the old screenshot in the menu. The game stops and you get a camera of its own, which flies freely or orbits the bus. The user guide describes it: the right mouse button (or the gamepad's right stick) looks around, the wheel and +/- change the lens zoom, Z/X roll the camera, R levels it again, Tab switches the panel pages, H hides the panel, Enter (or F12) takes the photo and Esc exits. 0.2.36 moved movement to W A S D, with Space to go up, Ctrl to go down and Shift to go faster; the panel shows the keys, so check it there.

The panel has five pages, according to the guide: Camera (free or orbit, maximum distance from the bus, frame format such as 16:9, 21:9, 4:3, 1:1 or 9:16, and composition guides), Lens (focal length from 10 to 400 mm, depth of field with aperture and focus, motion blur), Colour (exposure, contrast, saturation, temperature and other adjustments), Effects (film looks, grain, vignette) and Scene (move the clock and choose the photo size: the window's or double). Depth of field and blur are real: the photo is the average of several images, so it becomes sharp in a second or two with the camera held still.

The photo comes out as a PNG in the Screenshots folder, and the note saying where it ended up opens the folder when clicked; on Android, the CHANGELOG says the photo goes straight to the gallery. If you moved the clock for the photo, it goes back to what it was when you exit (0.2.33), and, with photo mode open, wheel, pedals and joystick do not move the camera, only the gamepad does (0.2.28). These details may change between versions.

In the 0.2.4x line, the CHANGELOG says photo mode gained two modes, chosen in the launcher (Settings, Interface & online, Photo mode): Simple (few adjustments, with frozen motion, following the bus or on a tripod, bokeh, borders and others) and Advanced, for photographers (camera body with sensor size, real focal lengths and P/A/S/M exposure). There is also focus where you click and depth of field without ghost copies. Since the tab names may have changed, check in your launcher. According to the 0.3.42 notes, Screenshot has a line of its own again in the pause menu, beside Photo mode, on every platform (0.3.37), capture on ANGLE no longer switches off multisampling and, on phones, photo mode has buttons of its own (shutter, settings sheet, tap to focus and two fingers to zoom).

What to check

  • Is openOMSI on 0.2.26 or newer?
  • Does Esc > Photo mode open the panel? Ctrl+F12 should open it too.
  • Does the photo look grainy? Hold the camera still for a second or two before taking it.

Learn more

Can I play with three monitors (triple screens)?

Depends on the version

The project's documentation describes native triple-screen support since 0.1.1313: three independent camera views from the driver's eye, with the HUD, the navigator, the city map, the menus and the mirror panels, by default, on the centre screen. To turn it on, use Three screen projections on the Camera tab of the launcher's Settings, or Triple screen in the game's Display settings (the tab names may have changed after the launcher was redone, in 0.2.36). Geometry changes apply immediately, and changing the window that spans the screens requires restarting the game. If VR is requested, it takes priority. A single screen draws as before.

To calibrate, the documentation asks for three panels of the same size and resolution, in a horizontal row, and for you to measure rather than force an enormous field of view: visible width of one panel (default 600 mm), distance from the eye to the centre panel (650 mm), total width of the bezels at each join (0 mm), angle of the side panels (45°) and eye height relative to the centre of the screen (0 mm). “HUD on centre screen” can be turned off so the HUD uses the whole window.

The “Span three monitors at startup” option looks for three identical, neighbouring monitors on the system and creates a borderless window across them; it does not require Surround or Eyefinity. If Surround or Eyefinity presents a single wide monitor, use full screen on it, or turn off the automatic adjustment and set the window's total resolution (for example, 5760x1080 for three 1920x1080 panels). Panels of different sizes or resolutions and separate output windows are not supported by this scheme. Three views cost more to draw, and the documentation itself says that the physical alignment of the monitors and full screen still need to be checked on real three-monitor equipment.

What to check

  • Is openOMSI on 0.1.1313 or newer?
  • Do the three monitors have the same size and the same resolution, side by side?
  • Did you measure the panel width and the distance to the eye, instead of adjusting only the field of view?
  • Did the FPS drop a lot? Three views cost more; see the question about improving FPS.

Learn more

What changed on the launcher's Drive page (Big Map, Control Room, Classic+, Classic)?

Depends on the version

This page arrived in Beta 0.3.34 and has been in the stable version since 0.3.37. The Drive page brings the map, the line and the tour, the roadbook, the bus and the start button together on a single screen. The default layout is Big Map, chosen by a community vote on Discord: the route map fills the whole page and everything else floats over it. The other layouts, Control Room, Classic+ and Classic (in steps, as before), are in Settings > Launcher layout.

The old card-based page, where the map was at the bottom, has been removed, but the notes say that the tour lines, the next departures, the map note, the date calendar and save deletion remain in every layout. The left-hand menu has groups (Play, Content, Options, Help) and collapses into icons. After 0.3.37 the launcher kept changing: 0.3.35 put the *Current time* and *Current date* buttons in the start fields in every layout, the route preview for large maps opens in about a second (Berlin-Spandau used to take 88 s) and the 0.3.42 notes mention adjustments to the page, such as the roadbook and panels that keep their width in small windows. In 0.3.42 the launcher's timetable editor works on the map (the stops appear on the map and a new trip is made by clicking the stops), there is a Troubleshooting page in Help and an Add-ons page in Content, which only lists links to community projects and does not download or install anything. Names and positions may vary between versions.

Learn more

What changed in the rain, snow and sun?

Depends on the version

These changes arrived in Beta 0.3.34 and have been in the stable version since 0.3.37. The rain was reworked, with around a quarter of a million drops calculated on the graphics card every frame (instead of a few thousand sprites), drops whose size and speed follow the intensity of the rain, and small splashes on the road, the kerb and the roofs; the rain stays fixed in the world, without swaying when the camera turns around the bus. Rain and snow stop at roofs, so it no longer rains inside buses and cars, under bridges and shelters.

Snow builds up as it falls, on roofs, verges and the ground and melts above zero and in rain. The sun is back in the sky in Vanilla and Vanilla+, drawn the way OMSI 2 does it (Enhanced did not change). The notes also mention dirt on the bus when leaving the road and, in Enhanced, a wet bus reflecting the road. 0.3.37 also brought a quality setting (Low or High) for puddle reflections. After that, 0.3.38 limited tyre splash to real puddles, and 0.3.42 brought adjustments to snow and window drops. In 0.3.42 the drops on the windows follow the rain (drizzle leaves small drops, a downpour full drops), snow on the windows no longer comes out in streaks and swirls, and thunderstorms gained lightning, with thunder after the delay of the distance. Rain and snow also fall again in OpenGL and ANGLE. Performance depends on your PC.

Learn more

What changed in the steering wheel buttons and the fuel tank?

Depends on the version

These changes arrived in Beta 0.3.34 and have been in the stable version since 0.3.37. A steering wheel button or button-box button can perform several actions at once (for example, closing all the doors, or switching on a light together with its switch). In Controls > Game controllers > Buttons, assigning a button that already does something adds the action instead of replacing it; the *By button* tab gains a + and an x for each extra action.

There is also the continuous button, as in OMSI 2: a switch for each button, next to *Latching*; when held, the action repeats until you let go (a retarder lever steps through its positions; *Gear up* still changes gear). OMSI 2 gamectrler.cfg files that use this flag repeat just as they do there. New buses start with a full tank (the "Start with a full tank" option, on by default); a saved game keeps its own fuel, and in 0.3.38 the Depot began to keep the plate, odometer, fuel and wear of each bus. 0.3.37 also brought *Keep driving in the background* (wheel and pedals keep working with another window in focus).

Learn more

Compatibility and reporting

How to tell whether a map, bus or mod works, and where and how to report each kind of problem.

Is every problem with a mod an openOMSI bug?

Depends on the version

No. A problem may come from openOMSI itself, but also from a mod with missing or defective files, a mod that depends on another, an incomplete OMSI 2 installation, settings or even the computer. openOMSI is an early project and many things are still being adjusted, so it is not possible to know in advance which case it is.

Before concluding anything, test with content that comes with OMSI 2 and check that the mod has all the needed files. Only then decide where to ask for help; see the question about how to separate the channels.

It is also worth checking the version: the project fixes a lot of third-party content problems (bus scripts, maps with unusual objects or lines) from one version to the next, so a mod problem may be fixed in a newer version. The GitHub problem reports, incidentally, ask that the error still happens on the latest version. 0.3.0 is a stabilisation release that fixed several problems with third-party content (for example, AI traffic stuck at large junctions and roundabouts, AI trains and trams leaving the rails, and the missing original-paint option in the vehicle lists); if your case is similar, it is worth testing on it. After it, the 0.3.30 to 0.3.33 release notes (which are in Stable 0.3.33) mention other third-party content fixes: maps made in the OMSI 1 editor, such as Great Grundorf 2, now have the whole street network and the departure points; departure boards at bus stops (such as those in HafenCity Hamburg) show lines and times again; timetable buses now appear when the trip starts; and articulated buses now steer the rear axle. If your problem is of these kinds, update before blaming the mod. The notes for stable 0.3.37 and 0.3.42 mention more compatibility adjustments for OMSI 2 and mod content (for example, several [visible] of one mesh combined, {else} blocks and $SetLength in scripts, OMSI 1 AI lists read the way OMSI 1 writes them, and mod bus windows with non-ASCII texture names), and 0.3.42 brings, in the launcher's Help menu, a Troubleshooting page that lists problems with content installed per bus or package (packages waiting for your bus, buses using parts of packages that are not installed, map HOF files that could not be added, and installations that failed) and has a 'Scan again' button to look again after installing what was missing. This helps tell an incomplete mod from a defect in the program.

What to check

  • Does the problem also happen with a map and bus from the original OMSI 2?
  • Was the mod installed completely, with everything the author asks for?
  • Is your openOMSI up to date? (the launcher announces new versions and installs them with your confirmation; according to the CHANGELOG, in 0.2.39 the desktop launcher went back to looking for, offering and installing updates, and on the Settings page, under Updates, the 'Choose a version' option lets you install a specific version from the list, which helps test whether a problem started in a given version; an older version chosen there stays until you choose the latest again. Since 0.3.0 there are Stable and Beta versions: in Settings > General > Updates the Stable channel is the default and Beta is for those who want to test new things, and the version picker marks the Betas)
  • Can you switch the mod off and test without it? The notes for versions 0.2.22 and 0.2.23 describe, on the launcher's Mods page, a button to switch each mod off and on without deleting it; check whether your launcher has this. On phones, since 0.3.0, the Mods page has its own storage browser to install a folder, .zip, .7z or .rar. Since 0.3.37 there is also the Content test (in Settings; in 0.3.42 it appears as the Model test tab of the Troubleshooting page), which loads a bus, map, mod or file the way the game does and lists every warning; from the command line, openomsi --check <arquivo ou pasta>.

Learn more

When should I use openOMSI Compatibility?

Use Compatibility when your question is: "does this map, bus or mod work in openOMSI?". It is an independent community compatibility database, maintained by Portal OmsiModsBR. It is not a bug channel for the project, it is not official and it does not replace GitHub Issues or the official documentation.

If you have already tested the mod, use Submit a test to share the result (worked, worked with issues, didn't work), to help other people.

Compatibility also receives hardware tests, to learn which PCs and phones openOMSI manages to open on and which ones the session fails on. This data is community observation, not a benchmark or an official requirement.

Learn more

When should I report to the official project on GitHub?

Depends on the version

Report on GitHub Issues when it is a reproducible problem in openOMSI itself: you can repeat the error through clear steps, and it also shows up with other content or seems to come from the program (a crash, a black screen, a launcher error, behaviour different from OMSI 2 unrelated to a specific mod). The repository is now at openOMSI-org/openOMSI; the old address, openOMSI-Project, redirects.

Usage or configuration questions are usually solved by the documentation and this FAQ. The project's README points to Discord for talking about problems, and GitHub's new-report screen also points to Discord for "questions and help". Don't send every mod problem to GitHub: if it is "does this mod work?", the path is Compatibility.

Two points that the bug form requires and that tend to surprise people: the report must be written in English (see the question about opening an issue in Portuguese) and the problem must still happen on the latest version. A lot has been fixed since the old versions that are still in circulation.

What to check

  • Can you repeat the problem by following the same steps?
  • Does it happen on more than one map or bus?
  • Are you on the latest version, and does the problem still happen on it?
  • Does the report cover a single problem? (the project asks for one issue per problem or idea)

Learn more

What should I include when submitting a compatibility test?

Depends on the version

In Submit a test, say which map, bus or mod you tested, the openOMSI version, your system (Windows, macOS, Linux, Android or, in the Beta test version, iPhone/iPad) and the result: what worked and what didn't. Describe what you saw in simple words. Since the project releases a version for every accepted change, the exact number matters: the same mod may work on one version and not on another. Since 0.3.0 there are Stable and Beta versions; say which one you use. On iPhone/iPad, the Beta through TestFlight has its own update cycle, so its number may not match that of the stable version on the other systems: note what the app shows.

A test is not a bug report: if the problem seems to be in openOMSI itself and is reproducible, also see the question about how to report on GitHub.

If openOMSI never even started a session, it is still worth submitting: the hardware test needs neither a map nor a bus. Include your hardware, the version, how far it got and, if possible, attach the log (it is sanitised before any public display). Since version 0.2.31 openOMSI tries to recover on its own from a broken start (it installs a newer version, goes back to the previous one or opens in safe mode, always telling you in a message box): if that happened, note what the message said and see the question about the start-up watchdog.

What to check

  • Full openOMSI version, with all three numbers (for example 0.2.39). According to the documentation, it appears in the launcher's sidebar, on the first line of game.log and launcher.log, and in the openomsi --version command; the desktop launcher (the new one, from 0.2.36; in 0.2.39 it is the only launcher) also shows it in the About window. In versions 0.2.36 and 0.2.37, and in a few places on macOS and Linux up to 0.2.38, that launcher showed 0.1.0 (or 0.2.33) by mistake; if the version looks odd, check the first line of game.log.
  • If you are using a test version from a pull request, the number comes with the suffix -pr and the pull request number (for example 0.1.1313-pr1192): include all of it.
  • Mod version, if you know it, and where it was downloaded.
  • Your operating system (including iPhone/iPad, if it is the Beta through TestFlight).
  • What you did and what happened.

Learn more

What should I include when reporting a bug on GitHub?

Depends on the version

The project's bug form (in English) starts with three required confirmations (report written in English, open and closed issues searched, problem still present on the latest version) and asks for: what the problem is about (a list of areas), what happened ("What happened?"), the steps to reproduce ("Steps to reproduce"), the game version ("Game version") and the operating system. Optional: the expected behaviour, whether it worked on an earlier version, how you were playing, the map, the bus or vehicle, the graphics card ("Graphics") and logs. The clearer the steps, the easier it is to repeat the problem.

The logs are in the .openomsi folder of your user account (on Windows, C:\Users\<você>\.openomsi): the game.log of the last game and, for a launcher problem, the launcher.log. When the game ends with an error, the launcher shows Copy report and Report on GitHub, which already include the end of the log. Never attach files from the original OMSI 2 or from protected mods.

Since version 0.2.18, Setup also has Export diagnostics, which produces a support package without folders, names or addresses; see the question about the diagnostics package.

What to check

  • What happened, in a few sentences (and in English).
  • Steps to repeat the problem.
  • openOMSI version and operating system.
  • An excerpt of the game.log (or launcher.log) or the error text the launcher showed.
  • Name and source of the map/bus involved, if any.
  • Did it work on an earlier version? If so, which?

Learn more

How do I check whether a problem has already been reported?

Depends on the version

Search before opening a new report: go to the Issues, use the search with words from the error (the issues are written in English, so search in English) and include closed issues as well, since the problem may already have been solved in a newer version.

The project asks for this: the bug form has a required confirmation that open and closed issues were searched, and the CONTRIBUTING says that a crash report with the same error as an open issue is closed as a duplicate. If you find an identical report, add what you were doing, your version and your system, instead of opening another one.

What to check

  • Search for the error text or the map/bus name.
  • Look at open and closed issues.
  • Check whether the fix has already come out in a newer version (the CHANGELOG cites the number of many fixed issues).

Learn more

How do I tell a missing feature, a bug and an incompatibility apart?

Depends on the version

Missing feature: something from OMSI 2 that openOMSI doesn't do yet. Check the CHANGELOG and the issues, because the project changes a lot: something that was missing in an old version may exist today (for example, up to 0.2.37 a steering wheel or joystick with no configuration only steered, and since 0.2.38 the pedals are also set up automatically). If there is none, a request can be made through the suggestion form (also in English, with the confirmation that nobody has asked for it yet). Bug: the program should work and fails in a reproducible way, for example, it crashes with content from the original OMSI 2. Incompatibility: a specific mod doesn't work, but everything else works fine.

Summary of the channels: for a usage or configuration question, use the FAQ, the project documentation and Discord; for "does this map, bus or mod work?", use Compatibility; for "I tested this mod", use Submit a test; for a reproducible bug in openOMSI itself, use GitHub Issues (the bug form); for an idea or improvement, the suggestion form (Feature Request).

Learn more

Can I open a GitHub issue in Portuguese?

Depends on the version

Ideally, write in English: both the bug form and the suggestion form carry a required confirmation that the report was written in English, and the CONTRIBUTING says that issues in another language are closed automatically with a request for translation and can be reopened after being edited into English. The forms accept machine translation (such as DeepL or Google Translate), and the logs and game texts can stay in the original language.

For questions and requests for help, GitHub's new-report screen points to the project's Discord, and the FAQ and Compatibility exist precisely for the most common questions. This applies to GitHub: we can't say what the language rule is in each Discord channel.

What to check

  • Write short sentences and numbered steps; it is easier to translate.
  • Paste the error text and the log excerpt as they are, without translating them.
  • One problem per issue.

Learn more

How do I generate the diagnostics package (Export diagnostics) to attach to a report?

Depends on the version

Since version 0.2.18, the launcher has an Export diagnostics button under Setup, which produces a support ZIP file for a problem report. You can also generate it from the terminal, with openomsi --export-diagnostics <arquivo.zip>. According to the README, the package contains the program and the system, the graphics card, the driver and the settings, the controls and the last map and bus, but not folders on your computer, names, chat, LAN codes or addresses, and from the logs only which events happened.

Nothing is sent: the file stays on your computer and its folder is opened, so you can look at what is inside before attaching it. Since the package only summarises the logs, for a specific error it is worth also including the excerpt from game.log (see the question about what to include in a bug report).

What to check

  • Open the ZIP and check the contents before attaching it to any report.
  • Is your version 0.2.18 or newer? On older versions this button does not exist.
  • Attach the error text or the excerpt from game.log as well, if there is one.

Learn more

Beta only This section applies only to openOMSI Beta versions (the test builds, not yet promoted to stable). For the stable version, use the Release FAQ above.

Beta FAQ

Only for people testing openOMSI Beta versions: what they have that the stable version does not yet, and how to deal with it. Everything here may change.

What is the openOMSI Beta, and when does it make sense to use it?

Beta onlyDepends on the version

The Beta is a test version, marked as a pre-release (*Pre-release*) on GitHub. According to the project's notes, the launcher keeps players on the stable version, and the Beta is for people who want to try what comes next. The maintainers publish the main branch as a Beta from time to time, and the ones that pass testing become stable versions.

It makes sense to use it if you accept running into bugs, want to see the new features early and are willing to say what broke, always giving the version. If you just want to play without surprises, stay on the stable version. Situation on 2026-10-26: the stable version is 0.3.42 and there is no Beta ahead of it. In other words, today the Beta and the stable version have the same content, and using the Beta would only make sense once a test version newer than the stable one appears.

Learn more

How do I join and leave the Beta channel?

Beta onlyDepends on the version

In the desktop launcher, open Settings > General > Updates. The project's guide describes the update channel: Stable (the tested versions) is the default, and Beta (each new version before it is tested) is for testers. To go back, choose Stable again.

Still in Updates, the Choose a version option lets you install a specific version from the list, and the picker marks the Beta versions. An older version chosen there stays installed until you choose the latest one again; so, to leave the Beta, choose the Stable channel and then the latest stable version (today, 0.3.42). The names and positions of the options may vary between versions. Since there is no Beta ahead of the stable version at the moment, switching channels now does not change what you receive; the channel only starts to matter when a new Beta is published.

What to check

  • Make a note of the version you had before switching channels, so you can go back to it.
  • The notes of each version show how to download the files for each platform from the release page; it is an alternative route to the launcher.

Learn more

Is the Beta numbering the same as the stable version's?

Beta onlyDepends on the version

Not necessarily. A Beta can have a newer number than the stable version of the moment, and a stable version can have a higher number than the last Beta published. The number has the format MAIOR.MENOR.NÚMERO. Situation on 2026-10-26: the stable version is 0.3.42 and there is no Beta ahead of it. A real example: the newest Beta, 0.3.41, has a lower number than stable 0.3.42, because 0.3.42 was published later (2026-10-25) already as a stable version.

It is also common for the content of several Betas to appear at once in a stable version: stable 0.3.37 gathered Betas 0.3.34 to 0.3.36, and 0.3.42 gathered 0.3.38 to 0.3.41. The test builds for iPhone and iPad through TestFlight have their own numbering and cycle, and may not match those of the stable version or of the desktop Beta.

Learn more

What does the Beta bring today that the stable version doesn't have yet?

Beta onlyDepends on the version

Today, nothing: no Beta is ahead of the stable version. The stable version is 0.3.42 (published on 2026-10-25) and the newest Beta, 0.3.41, is older than it and is already included in 0.3.42. This section describes only what is not yet in a stable version, so it can be empty between one Beta and another.

An example of how this works: Beta 0.3.34 (2026-10-16) brought the Drive page on one screen, the Apple Maps-style navigator, reworked rain and steering wheel buttons with several actions. All of that was promoted in stable 0.3.37 (2026-10-18), and so those new features came to be described in the general questions of this FAQ. When a new Beta brings something the stable version does not have, it will appear here, and the release's own notes are the most complete source.

Learn more

How do I report a Beta problem?

Beta onlyDepends on the version

The Beta notes ask for anything that breaks to be reported in an issue, with the version. On the GitHub Issues, write the exact version (for example, 0.3.42), say whether it is a Beta or the stable version, describe the steps to reproduce the error and, if possible, test on the other one too, to say whether the problem is only in one of them.

Don't treat a bug that only exists in the Beta as a stable-version bug, or the other way round: it confuses the people trying to reproduce it. If your question is whether a map, bus or mod works, the Compatibility page takes compatibility tests; when the test was done on a Beta, it is worth noting that. Search first for identical reports, including closed ones. Today, since stable 0.3.42 and the most recent Beta have the same content, the report applies to both.

Learn more

What happens when the Beta becomes stable?

Beta onlyDepends on the version

According to the project, the maintainers publish the main branch as a Beta from time to time, and the ones that pass testing become stable versions. This has already happened several times: Betas 0.3.30 to 0.3.32 went into stable 0.3.33; Beta 0.3.34 (2026-10-16), together with 0.3.35 and 0.3.36, was promoted in stable 0.3.37 (2026-10-18); and Betas 0.3.38 to 0.3.41 were promoted in stable 0.3.42 (2026-10-25).

In this FAQ, a Beta feature that gets promoted is then described in the general questions and removed from this section, which only describes builds that have not yet been promoted. That is what happened, for example, with the Drive page, the Apple Maps-style navigator and the reworked rain. There is no guarantee of when, or whether, each item of a future Beta will be promoted, and the stable numbering may skip the intermediate versions.

Learn more

FAQ reviewed based on the information available on 25 Oct 2026.

Which tool should I use?

This FAQ

Questions about using and configuring openOMSI.

Compatibility

“Does this map, bus or mod work?” Community test data, not official.

Submit a test

“I tested this map, bus or mod.” Tell us how it went on your device.

GitHub Issues

A reproducible bug in openOMSI itself, on the project's official channel.

An independent community database maintained by Portal OmsiModsBR. It is not an official certification from the openOMSI project or the content authors.

OMSI and openOMSI belong to their respective authors/owners. This site does not redistribute proprietary content: links point to the original sources and the results are individual tests submitted by users.

openOMSI FAQ: Help Centre for Beginners | Portal OmsiModsBR