Vehicle Signal Logger

The Vehicle Signal Logger (VSL) is a World Editor tool for selecting vehicle properties and writing them to a CSV file while the simulation runs. It reuses the same signal catalogue as the Co-Simulation Editor (kinematics, driver, wheels, electrics, powertrain, and attached sensors), but is logging-only: there is no UDP coupling and no inbound “from” message.

The Vehicle Signal Logger lets you pick individual signals, save/load that selection as a config CSV, and control sampling from the World Editor (or BeamNGpy).

Vehicle Signal Logger with Scene Vehicles and Available Signals windows Vehicle Signal Logger with Scene Vehicles and Available Signals windows

Opening the editor

  1. Open the World Editor.
  2. In the mode bar, select Vehicle Signal Logger (chart icon). If this icon is not visible, click on the 3 bars icon and select All.
  3. A Scene Vehicles window lists every vehicle currently in the scene.
The mode bar is folded by default, so the Vehicle Signal Logger icon may be hidden. See Showing hidden tools to reveal it via the Editor Modes menu.

Scene Vehicles window

Each row is one loaded vehicle. Actions on the selected vehicle:

Action
Purpose
Action
Remove
Purpose
Deletes the vehicle from the scene (disabled while logging).
Action
Go to vehicle
Purpose
Moves the orbit camera onto that vehicle.
Action
Open signals window
Purpose
Opens the available-signals list for that vehicle.
Action
Start / Stop logging
Purpose
Starts or stops CSV logging for the currently selected signals.
Action
Save configuration
Purpose
Exports the signal selection and logging settings to a config CSV.
Action
Load configuration
Purpose
Imports a previously saved config CSV onto the selected vehicle.

Switching vehicle while logging is blocked. Changing vehicle clears the previous signal selection cache and reloads vehicle-side signal metadata.

Available Signals window

Use the code icon on a vehicle row to open <vehicle> [available signals].

Categories

Checkboxes at the top filter which groups appear in the list:

Category
Description
Category
Kinematics
Description
Pose, velocity, acceleration, and related rigid-body quantities.
Category
Driver
Description
Driver-level controls (throttle, brake, steering, and similar).
Category
Wheels
Description
Per-wheel speeds, torques, and related data.
Category
Electrics
Description
Selected vehicle electrics values (lights, indicators, temperatures, and similar).
Category
Powertrain
Description
Selected powertrain device outputs and ratios.
Category
Sensors
Description
Readings from supported sensors attached with the ADAS Sensor Configuration Editor. Supported for logging: IMU, GPS, Ideal RADAR, and Roads. Large blob sensors (Camera, LiDAR, and similar) are not listed here.

Selections survive category toggles and reloads within the same vehicle session.

Selecting signals

Control
Description
Control
Include checkbox
Description
Click to include or exclude that signal.
Control
Index column
Description
Included signals show a running index; that order is the column order in the output CSV.
Control
Filter signals
Description
Narrows visible rows by partial match on group, name, description, or type. Indices still count every included signal, including ones hidden by the filter.
Control
Select all listed
Description
Includes every row in the current category filter (not the text filter).
Control
Unselect all listed
Description
Clears inclusion for every row in the current category filter (not the text filter).
Control
Deselect all
Description
Clears every inclusion.
Control
Reload
Description
Re-requests vehicle signal metadata (useful after changing parts or sensor configs).

Logging settings

At the bottom of the signals window:

Setting
Description
Setting
Log Filename
Description
Output path as seen by the vehicle Lua VM (for example vsl_signals_log.csv or a path under the user folder).
Setting
Sampling period (seconds)
Description
Target time between CSV rows. The editor converts this to an internal physics-step stride (clamped; minimum period is 0.0001 s).

If you include sensor signals while those sensors are still in Edit mode in the ADAS editor, VSL automatically promotes the needed sensor instances to Live before logging starts so the vehicle controllers exist.

Configuration CSV vs output CSV

VSL uses two different CSV formats:

Configuration CSV (Save / Load in the editor)

Written by Save configuration. Columns:

type, groupName, name, description, dataType, filename, frequencySteps

Row kinds:

Row type
Description
Row type
signal
Description
One included channel (groupName + name, plus description and type).
Row type
settings
Description
Logging defaults (filename, frequencySteps).
Row type
vehicle
Description
Model/config hints for the editor (not enforced at runtime).

This file is a reusable selection contract. It is not the timed log.

Output CSV (runtime log)

Written while logging is active. It contains a timestamp and one column per selected signal, sampled at the configured stride. Stop logging to flush and unload the vehicle-side logger.

Typical workflow

  1. Spawn or load the vehicle(s) you care about.
  2. Optionally attach IMU / GPS / Ideal RADAR / Roads sensors with the ADAS Sensor Configuration Editor.
  3. Open Vehicle Signal Logger, select the vehicle, open the signals window.
  4. Enable the needed categories, filter if useful, and tick the signals to log.
  5. Set the log filename and sampling period.
  6. Optionally Save configuration so the selection can be reused.
  7. Press Start logging, run the scenario, then Stop logging.

BeamNGpy

The same vehicle-side logger is available from BeamNGpy as vehicle.logging. For methods, parameters, and usage details, see the BeamNGpy documentation .

Editor Save configuration CSVs can be passed into that API as the signal selection (configuration CSV, not an output log). See Configuration CSV vs output CSV .

Limitations

  • Currently the VSL does not support logging multiple vehicles simultaneously.

Related tools

Last modified: August 20, 2026

Any further questions?

Join our discord
Our documentation is currently incomplete and undergoing active development. If you have any questions or feedback, please visit this forum thread.