This is the home of OpenBVE, a license-free, open source, free of charge train driving simulator.


This program includes detailed per-car simulation of the brake systems, friction, air resistance, toppling and more. In 3D cabs, the driving experience is augmented with forces that shake your simulated body upon acceleration and braking, as well as in curves. Besides that, OpenBVE features a 3D positional sound system best enjoyed with surround speakers, train exteriors and timetables for the current run. Finally, via the main menu, routes and trains be easily selected to start a new session, the controls can be configured to keyboard or joystick devices, and a variety of options can be selected.

Compared to other simulators of the genre, especially compared to commercial games, OpenBVE has its main focus on realism, not necessarily on user-friendliness. You should be willing to study operational manuals for the routes and trains you want to drive, and will in many cases not get along by just memorizing a few keystrokes. If you can identify with this focus, OpenBVE might be the right simulator for you.

Latest Stable Release: Stable (2023-11-10)

Current News & Updates:

This build fixes a few more odd issues that have been reported over the last few days after the move to 64-bit.

Signifiant Changes:

  • Change: Add Brightness function for train based animated objects.
  • Fix: Issue launching the 64-bit build on Windows systems lacking the Creative OpenAL redistributable.
  • Fix: Using a command string in a CSV object texture name could get misinterpreted.
  • Fix: Crash on selecting a touch element with a missing sound.
  • Fix: Several issues with TFOs in unexpected circumstances.

This release sees OpenBVE moving to 64-bit by default. On Windows, legacy plugins are now run via a WCF proxy application. Alternatively, you can use the 32-bit OpenBve-32.exe which uses the original in-process plugin handling.

Unfortunately, 64-bit support on Apple is not yet functional. This is because the main menu is a WinForm, which is currently not supported on x64 Apple. Work is in progress on producing a limited OpenGL menu here: and we hope to have a functional (but not pretty) version available soon.

Significant Changes:

  • New: OpenBVE is now 64-bit native by default.
  • New: Add controls menu icons for generic gamepad and Xbox pad.
  • Fix: A deleted extensions.cfg would re-appear in Object Viewer on reload.
  • Fix: Issue with trains containing a missing flange index.
  • Fix: Invalid animated files getting locked by Object Viewer.
  • Fix: Crash in Object Viewer if reloading after changing non-plugin loaded train properties.
  • Fix: A negative timetable delta was broken with BVETS Hacks enabled.
  • Fix: Cursor missing if menu opened with it hidden.

This build is a small hotfix for to address a couple of issues that sneaked past the initial round of testing….

Significant Changes:

  • Fix: The LocoBrake settings in TrainEditor didn’t load properly from a train.dat
  • Fix: It was not possible to open the Train settings window in Object Viewer without first loading a train.
  • Fix: Crash on trains with a missing Spring sound

Whilst this build has relatively few new features (again, sorry….) internally, a lot has changed. By converting everything to a shared set of plugins, this reduces the code maintenence workload, and makes implementing new features much simpler in the long run.

Significant Changes:

  • New: Add Separated (Interlocked) handle type.
  • New: Convert train loader to a shared plugin.
  • Change: Bump the OpenAL version to 1.17.0
  • Change: Properly grow the InputDevice plugin box with the main form.
  • Change: Speed up loading of routes which do not use the .Turn command.
  • Change: Update zh-HK translation- Thanks!
  • Change: Add warning if target speed is not set by TFO, as this may cause unexpected results.
  • Fix: The AI driver will now react to the train starting to topple.
  • Fix: Several issues in the DDS texture loading plugin.
  • Fix: In some cases, the camera could get thrown out of the car.
  • Fix: Issue when the primary rail for a platform was missing, but the secondary was not.
  • Fix: Route.InitialViewpoint was glitchy with an AI train in the section.
  • Fix: Colliding with a buffer on a route containing a single train crashed.
  • Fix: Crash when closing the RailDriver config form with none attached.
  • Fix: SanYingInput config window size incorrect.
  • Fix: Route Viewer needed the close button pressing twice with no routefile loaded.
  • Fix: Lighting glitch when the camera was inverted.
  • Fix: Shifted index issue in animated files containing a StateChangeSound

Significant Changes:

  • New: Add snow to the windscreen.
  • New: Make the AI handle the windscreen wipers.
  • New: Add Structure.Weather for displaying weather objects.
  • Change: Improve visibility for animated objects using the TrackFollowerFunction
  • Hacks: Improve the handling of invalid alpha values.
  • Fix The brightness of a bogie could be different to the base car.
  • Fix: Incorrect Z-axis normals when using MirrorAll
  • Fix: Matrices in X objects wrong when using Assimp.
  • Fix: The movement speed of overlay messages is no longer affected by time acceleration.
  • Fix: Possible issue with disconnected joysticks.
  • Fix: Some issues when a model was used both reversed and unreversed in a train exterior.