Skip to content

magicant/bve-plugin-multiplexer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BVE Trainsim ATS Plugin Multiplexer

Overview

The Plugin Multiplexer is a "DetailManager" clone written in Rust. It allows you to use more than one plugin in a vehicle.

Differences from the original DetailManager

The name of the text file containing the file name of the child plugins is not limited to detailmodules.txt but can be changed in conjunction with the DLL file name. That makes it possible to put the 32-bit and 64-bit versions in the same folder.

If a child plugin fails to load, the Plugin Multiplexer will display an error dialog.

The Plugin Multiplexer calls the child plugin's SetPower, SetBrake, and SetReverser if and only if needed. In DetailManager, there are cases where these are not called or are called excessively right after the scenario starts.

License

Unlicense

How to use

  1. Download bve-plugin-multiplexer-v1.zip from the release page.
  2. Move the pluginmultiplexer32.dll and pluginmultiplexer64.dll into the vehicle data folder.
  3. In the vehicle file (usually named something like Vehicle.txt), enter the relative paths to pluginmultiplexer32.dll and pluginmultiplexer64.dll in Ats32 and Ats64, respectively.
    • If the vehicle file version is older, enter the relative path to pluginmultiplexer32.dll in Ats. You cannot use the 64-bit version in this case.
    • The relative path is based on the vehicle files' folder.
  4. Create a text file named pluginmultiplexer32.txt in the same folder as pluginmultiplexer32.dll and enter the relative paths to 32-bit plugins you want to load, one line for each plugin.
    • The relative path is based on the folder where pluginmultiplexer32.dll is located.
  5. Create a text file named pluginmultiplexer64.txt in the same folder as pluginmultiplexer64.dll and enter the relative paths to 64-bit plugins you want to load, one line for each plugin.
    • The relative path is based on the folder where pluginmultiplexer64.dll is located.

Note

  • If you rename the DLL file, please rename the text file as well. You must align all parts of the file names except for the extension.
  • You can put the 32-bit and 64-bit versions in the same folder or separate them into different folders. Either way, the text file corresponding to the DLL file needs to be in the same folder.
  • If you get an error dialog at the start of a scenario, please read the message carefully and correct any mistakes.
    • Is the file name spelled correctly?
    • Is the file name specified as a relative path?
    • Is the base folder for relative paths correct?
    • Are you using the correct version of the plugin? You cannot use the 32-bit Plugin Multiplexer to load 64-bit plugins or vice versa.

How to build

The following instruction assumes that your computer OS is Windows.

Install Rust

Get and install Rust from the following link:

Install Rust - Rust Programming Language

Add toolchains

Enter the following commands on your command line interface.

rustup target add i686-pc-windows-msvc
rustup target add x86_64-pc-windows-msvc

Build

32bit DLL is generated by entering the following command:

cargo build --release --target="i686-pc-windows-msvc"

64bit DLL is generated by entering the following command:

cargo build --release --target="x86_64-pc-windows-msvc"