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
Opening the editor
- Open the World Editor.
- 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.
- 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:
Deletes the vehicle from the scene (disabled while logging).
Moves the orbit camera onto that vehicle.
Opens the available-signals list for that vehicle.
Starts or stops CSV logging for the currently selected signals.
Exports the signal selection and logging settings to a config CSV.
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:
Pose, velocity, acceleration, and related rigid-body quantities.
Driver-level controls (throttle, brake, steering, and similar).
Per-wheel speeds, torques, and related data.
Selected vehicle electrics values (lights, indicators, temperatures, and similar).
Selected powertrain device outputs and ratios.
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
Click to include or exclude that signal.
Included signals show a running index; that order is the column order in the output CSV.
Narrows visible rows by partial match on group, name, description, or type. Indices still count every included signal, including ones hidden by the filter.
Includes every row in the current category filter (not the text filter).
Clears inclusion for every row in the current category filter (not the text filter).
Re-requests vehicle signal metadata (useful after changing parts or sensor configs).
Logging settings
At the bottom of the signals window:
Output path as seen by the vehicle Lua VM (for example vsl_signals_log.csv or a path under the user folder).
Sampling period (seconds)
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:
One included channel (groupName + name, plus description and type).
Logging defaults (filename, frequencySteps).
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
- Spawn or load the vehicle(s) you care about.
- Optionally attach IMU / GPS / Ideal RADAR / Roads sensors with the ADAS Sensor Configuration Editor.
- Open Vehicle Signal Logger, select the vehicle, open the signals window.
- Enable the needed categories, filter if useful, and tick the signals to log.
- Set the log filename and sampling period.
- Optionally Save configuration so the selection can be reused.
- 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