BVEC_ATS: Design Details


BVEC_ATS is one of a newer generation of cross-platform C# train system simulation plugins for the OpenBVE simulator.
It’s been designed to be backwards compatible with trains built for the OS_ATS plugin, as well as building in a considerable number of new features.

The source code has been released under the BSD 2-clause license- This plugin uses code derived from the original OS_ATS plugin, which was released under a rather unclear open-source license, as well as code derived from public domain work by Anthony Bowden and Odyakufan.
As such, I felt it was unfair to release under public domain, or a strong copyleft license, and hence ended up with the BSD 2-clause as what I consider to be a reasonable compromise.

The plugin has been designed to be largely modular, aiming to simulate most major train systems in at least a passingly realistic way.

Backwards compatibility is intended to be largely automatic- Simply place BVEC_ATS.dll into your train’s folder, alter the ats.cfg file, and the plugin will automatically read the existing OS_ATS.cfg file, and generate a replacement.
Trains using non-standard key assignments will need these to be entered manually.
BVEC_ATS does not currently support a ‘default’ configuration- You will either need to provide a basic configuration file containing one traction type, or an OS_ATS.cfg file to be upgraded.

Design Philosophy

This plugin has been designed as a series of abstract ‘devices’, each representing a different system or set of systems simulated.
Each ‘device’ has a set of unique configuration attributes, which should be placed in the appropriate section of the BVEC_ATS.cfg file.

Different devices may interact with each other, and power and brake interventions are made via the TractionManager.

Safety systems such as the AWS and TPWS may generally be isolated (disabled) if they are not currently in an alarm state.

Failure modes are not currently simulated.

Panel & Sound Indices

As per OS_ATS, this plugin supports a range of fully customizable panel and sound indices, as opposed to using fixed variables.
Each of these may be set to any integer between 0 & 255, or -1 for disabled.

Beacons- Safety & Traction Control

BVEC_ATS supports both the OS_ATS standard beacon set, and most of the extended UKTrainSys beacon set. (Beacons pertaining to the AI guard are not currently supported)
These are described fully on the beacons page:
Alternatively, please see the UKTrainSys documentation:


The most recently compiled version may be found here:

Source Code

The source code for BVEC_ATS is available on Github:
BVEC_ATS has been developed using Visual Studio 2010, but should equally compile with SharpDevelop & MonoDevelop.

Configuring The Plugin

Please see this page for a full description of the configuration file, and all supported attributes:

Leave a Reply

Your email address will not be published. Required fields are marked *