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 (2022-08-04)

Current News & Updates:

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.

Significant Changes:

  • New: Add animated windscreen / raindrops.
  • New: Add CameraXDistance , CameraYDistance and CameraZDistance to available animated variables.
  • Fix: Issue with a face providing an incomplete or broken set of normals.

Significant Changes:

  • New: Add HornBlow routefile command, to tell the AI driver to sound a horn.
  • Change: The AI driver has a small random delay before opening the train doors when the train stops.
  • Change: Update zh-HK translation- Thanks!
  • Change: Improvements to the Wavefront OBJ parsers when handling SketchUp generated files.
  • Fix: The StopTime variable for an API station could return invalid values.
  • Fix: The door direction for a station could be wrong. (Introduced in
  • Fix: Detect and handle where the settings file is set to be stored in the program directory, but we have no write access.