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-09-15)

Current News & Updates:

This version of OpenBVE introduces QuadTree visibility, which may be enabled by setting Options.ObjectVisibilty to 2 in routefiles, along with several significant other changes to improve stutter in more complex routes. Hotfix to v1.9.0.1 to fix a glitch with visibility using track based visibility modes and program generated camera movements.

Significant Changes:

  • New: Add QuadTree visibility mode- This performs considerably better than track based visibility, and should be considered for all new routes.
  • New: Use a separate thread to update visibilty, reduces stutter on complex routes.
  • New: Support another variant of the DenshaDeGo! One Handle controller for Nintendo Switch.
  • New: Add ScaleX, ScaleY and ScaleZ functions for animation.
  • Change: When in 32-bit mode, Unload Unused Textures will be automatically enabled if critical memory pressure occurs.
  • Change: Implement caching of texture origins, speeds up multiple uses of large textures.
  • Change: Cache the texture transparency type, reduces stutter when using large textures.
  • Fix: Issue with an incorrect number of cars being returned to .Net runtime plugins.
  • Fix: Some variants of compressed DXT textures failed to decode correctly.
  • Fix: A $Include file containing invalid characters in it’s filename crashed the parser.
  • Fix: Issue with brake sounds in BVE5 motor sound parser (experimental)
  • Fix: Issue with faces containing a texture but no co-ordinates in the Assimp OBJ parser.
  • Change: Invert dissolve factor in original OBJ parser.
  • Fix: An unknown section could freeze the animated parser.
  • Fix: Vertex colors could be incorrect when using the NewXParser.

Significant Changes:

  • Improve various small areas of the main menu under different conditions (Primarily mono oddities)- Thanks KennyHui
  • Update zh-HK translation- KennyHui
  • New: Allow drag + drop into the package install dialog.
  • Fix: Object based backgrounds broken in GL3
  • Fix: Handle an edge case where older Intel drivers report features they do not support.
  • Fix: Better handling of untextured materials in default NewXParser.
  • Fix: Improve rendering of HUD with non-default handle text.
  • Fix: The ColorAll command did not apply to the final MeshBuilder in a file.

Significant Changes:

  • New: Add support for ZKNS-002 controller.
  • New: Allow on-screen marker size to be customised via XML
  • New: Add sanders as an alternative to the re-adhesion device
  • New: Add WheelSlip and WheelSlipIndex animated variables
  • Change: Assorted improvements to CarXMLConvertor
  • Change: Improve handling of various AI components for UK* plugins
  • Fix: The AI driver failed to react to wheelslip if the driver car was not a motor car
  • Fix: Looped car sounds could duplicate on a train jump
  • Fix: Coupler distances could be incorrect if the consist was reversed.
  • Fix: Assorted minor issues when motor car changed via XML
  • Fix: Memory leak in Route Viewer.
  • Fix: Sounds contained within an animated collection now work correctly.

Significant Changes:

  • Fix: Signal objects using a cloned prototype could be incorrectly animated.
  • Fix: Restore older constructor for LoadProperties as overload. (Fixes a regression in when using the external DetailManager plugin)
  • Change: Improvements to inbuilt AI for UK* series of plugins.
  • Change: Update routefile patch database.

Significant Changes:

  • New: Allow user-selectable font in menu / game.
  • Change: The default font under Linux / BSD is now set to use either Noto CJK or Noto Sans depending on the detected system locale. This provides much better Unicode glyph support. (If Noto is not available, the font will fall back to the system default)
  • New: Add method for controlling the doors to the .Net plugin interface.
  • New: Add headlights & appropriate methods for control to the sim / .Net plugin interface. (this requires support from train developers)
  • Change: Better handling of global reference based materials in the new X parser and Assimp.
  • Fix: Potential glitch when using the Close button on the main form under FreeBSD.
  • Hacks: Handle routefiles which use brackets within filenames for objects, sounds etc.
  • Hacks: Add custom signal set for KCR East Rail BVE2.
  • Hacks: Fix some odd misdetected encodings.
  • Hacks: Add another common missing background variant.
  • Fix: Sounds within an animated file not correctly taking into account the rotation of the container object.