BeamNG.tech v0.38 puts vehicle prototyping front and center with a significantly expanded Template Car workflow. The Template Car itself has been improved to serve as a more practical starting point for custom builds, with additional body styles (Coupe, Wagon, Pickup), more configuration options across suspensions and hubs, better material/color support, working powertrain sound/torque reactions, and general fixes that make it behave more predictably during development. On top of that, v0.38 introduces the new Template Car Generator, a simple tool for generating parameterized template vehicles by selecting body dimensions, body styles, and suspension layouts and iteratively dialing in mass and center of gravity. It’s designed to give you a solid, editable baseline you can quickly adapt for sensors, custom powertrains, AI/controller testing, and experimental setups.

BeamNGpy updates land in the same release, focusing on more reliable automation and easier deployment. Deterministic mode gains a speed_factor option for faster-than-realtime stepping, connection/reconnection handling has been improved (including better behavior when BeamNG.tech is closed), and new vehicle queries expose mass properties and node/reference-node information. BeamNGpy can also launch BeamNG.tech with more control (headless mode, null-graphics/no-GPU mode, selectable rendering APIs), and can report the effective launch arguments for reproducibility. Complementing this, headless deployments can now run without a GPU via -gfx null and the release includes a no-GPU Docker Compose template, while editor tooling improves sensor iteration with simultaneous multi-sensor live previews.

In addition, v0.38 extends the BeamNG-ROS2 bridge with drone controller support, introducing a ROS2-based keyboard teleoperation system for controlling drone vehicles in BeamNG.tech. The controller translates messages on the /drone_control topic into Lua commands for the simulator’s droneInput controller, enabling real-time flight control (takeoff/land, movement, and orientation) through a modular four-node architecture consisting of the bridge, scenario loader, controller, and teleop nodes.

Here’s a quick look at what’s new:


BeamNGpy

  • Added the speed_factor argument to BeamNGpy.settings.set_deterministic.
    Can be used for faster-than-realtime simulation, as explained in the documentation and in the examples/faster_than_realtime.py BeamNGpy example.
  • Added an error log on BeamNG.tech side if BeamNGpy protocol versions mismatch.
  • Fixed crashes which happened when using the JBeam Editor Visual Studio Code extension and BeamNGpy at the same time.
  • Fixed the -tcom-capture argument not automatically loading the techCore extension.
  • Added ESC control functions
  • Fixed Vehicle.deflatetire(wheelid: int) deflating all tires instead of the chosen one
  • Added annotation support for procedural objects.
    You can check the updated example for the usage.
  • Added TemplateCarGenerator class for programmatic use of the new Template Car Generator
  • Made examples overview page available in BeamNGpy documenation
  • Added new functions get_mass_properties, get_ref_nodes and get_node_info to the Vehicle class
    These functions allow the user to get a vehicle’s current mass properties, including total mass, center of gravity and inertias, get information about the vehicle’s reference nodes as well as the mass and current position of every desired node.
  • Improve connection and reconnection to BeamNG.tech
    • We now detect if BeamNG.tech was closed and stop doing further connection attempts in this case, for a more responsive user experience
    • Fixed some bugs in the connection/reconnection code
    • Lowered connection attempt time intervals for faster response time
  • Added more launch arguments to the BeamNGpy object.
    • BeamNGpy(..., headless=True) - Will start BeamNG.tech in headless mode (server mode, no window is used, GPU is required).
    • BeamNGpy(..., nogfx=True) - Will start BeamNG.tech with the null graphics mode (does not require a GPU, camera-based sensors are unavailable).
    • BeamNGpy(..., gfx=GFX) - Will start with the specified rendering API. Possible values are dx11 (only on Windows), vk, and null.
  • Added the BeamNGpy.get_launch_arguments() function to return a command-line string which would be or was used to launch BeamNG.tech.

Lua API

  • Reduced overhead by calling tech_techCore.refreshScenarioList only when needed.

Headless Mode

  • Implemented support for running without a GPU.
    Use the -gfx null argument, which can be combined with headless mode.
  • Added a no-gpu Docker template.
    It can be found in the BeamNG.tech release archive in the /tech/docker/docker-compose-nogpu.yml. Documentation available on the Headless Mode page.

Vehicles

  • Template Car

    • Adjusted jbeam to simplify scaling needed for DAE meshes
    • Added different body styles (Coupe, Wagon, Pickup)
    • Added more hub options for all suspension types
    • Added colorable material to main shape and added predefined colors
    • Added working engine sounds and engine torque reactions
    • Fixed some issues with certain suspensions
    • Fixed body deforming too easily
  • Template Car Generator

    • Added ability for parametrizeable template cars to be generated.
    • Different body dimensions, body styles, and suspensions can be selected. Mass, and center of gravity position can be adjusted via an iterative loop due to interdependence of these properties.
    • Simple user interface used to generate the cars
    • These are a good basis for more advanced user to build on top of and modify to suit their requirements (such as adding sensors, testing custom powertrains, testing custom AI, etc.)
    • For more detailed information, check out the documentation for usage instructions, and BeamNGpy for more details on using this tool programmatically via Python scripts.

World Editor

  • Added live previews for Advanced IMU and Ultrasonic sensors in the Sensor Configuration Editor
  • Multiple live previews can be viewed simultaneously in the Sensor Configuration Editor

ROS2

Drone controller is added to BeamNG-ROS2 bridge: ROS2-based keyboard teleop system that controls a BeamNG.tech drone vehicle by translating ROS2 /drone_control topic messages into Lua commands for the simulator’s droneInput controller, enabling real-time flight control (takeoff/land, movement, orientation) through a 4-node architecture (bridge, scenario loader, controller, teleop)

Limitations

While the ROS2 drone support introduces real-time control and a streamlined teleoperation pipeline, there are a few current limitations in drone mod itself and it’s control:

  • The drone is highly sensitive to disturbances; minor impacts or abrupt descents can cause unrecoverable instability.
  • Lack of a fixed camera option can make the flight experience disorienting.
  • Default keyboard controls do not yet support digital input for roll and pitch, limiting usability without analog devices.
  • The drone’s total available thrust is disproportionately high for its size and may require tuning for more realistic behavior.
  • Visual artifacts such as camera shake and zoom inconsistency may occur during unstable flight.

Future updates will aim to address these areas.