BeamNG uses the collada, or .dae, filetype when it comes to models. Other than the way parts are separated, and the added details especially mechanical components, making models for beamNG isn’t that different from making cars models for most other video games. Here are a few guidelines which should help you avoid any issues.
Keep in mind that this isn’t a modelling guide. If you have no experience in modelling, there are plenty of great tutorials out there. You do not need to use car specific tutorials when getting the hang of Blender for the first time.
Some recommended tutorials include blender guru’s modeling guides series on youtube :
Polygon density needs to be balanced between quality and performance, with the added factor of beamNG recalculating the position of each vertex based on chassis deformation. This makes high-polycount models computationally expensive to run, thus it’s good to save polygons whenever possible and use normal maps instead for things like panel gap bevels and underbody details like cutouts, structural members, and bolts. Using vanilla models as reference can be very useful.
As with any 3D model, having good poly flow is required to ensure that you get good looking reflections around curved surfaces. However, for beamNG, polyflow is doubly important due to how the deformation system works. A model with bad polyflow might end up having issues related to deformation, usually visible in the form of spiking.
Every component needs a material assigned. It is also heavily recommended to add a prefix to your materials containing your username or the name of your mod. This is to make sure your materials won’t cause issues with generic materials defined in the common folder.
There isn’t really a hard rule on what should be modeled separately from what, other than making sure that components that can be detached or move separately from other components should be their own mesh in your file. Components where you might use deform groups, like lights and windows, should also be separated into multiple components each with their own material.
As with materials, adding a prefix of the mod’s name or a shortened version of your username to all parts is good practice, in order to avoid overwriting anything within the common folder.
The game supports the use of multiple dae files for the same vehicle. As long as they are located inside the vehicle’s folder, or the common folder, the game will be able to load meshes from multiple files.
One of the more common issues people run into is part origins. You can see a part’s origin in blender by clicking on the component and looking for the orange dot.
For flexbodies , which are components whose position and shape will be affected by the jbeam (chassis, suspension components, etc), the position of the part’s origin must be at 0,0,0. If the origin of one of your component’s origin is offset like in the image bellow, the part will show up offset in beamNG.
If you have this issue, the fix is pretty simple. Within blender press “Ctrl-A”, and choose “All transforms."
“Props” are components whose position is dictated by a “function”, either in rotation or translation. This includes things like radiator fans, steering wheels, pedals, shifters, engine pulleys, etc. For more information you can look at the props article. When it comes to the part origin, it should be aligned with the axis of rotation, and have one of the direction vectors point along the axis of rotation (which you can see with the “local” transform orientations).
To export your model, start by making sure you are in “Object mode” and aren’t editing the geometry of any object. Then go into File -> Export -> Collada
In the export window, make sure to go under “Geom” and tick the “Apply Modifiers” box and set it to “Render”. This will make sure that any modifiers like mirrors and edge split gets applied to the exported model.
If you have beamNG open with your car loaded in another window, this will cause the vehicle’s model to get updated immediately, which can be useful to see how it looks in game after small changes.
A first step in a lot of modding projects is to import parts from vanilla models. Go to “C:\Program Files (x86)\Steam\steamapps\common\BeamNG.drive\content\vehicles”, or the vehicle folder of your beamNG install folder. You should see the zip files of all the vehicles and props in the game. It includes a folder for each car/prop, along with a “common” folder which contains all assets that are shared between vehicles; this includes wheels, tires, components shared between the D/H-Series, etc.
Take note however that all those names are the “internal” names of vehicles. Some are fairly obvious, like “etk800” is the ETK 800 series. However in many cases, especially older cars, the internal name is referring to the car’s body style. For example the 200BX’s folder is “coupe”.
Open the folder until you see .dae file you want. For cars it should be in the same folder as the jbeam files.
We only want the model file, which is the “.dae” file The first step is to copy it somewhere outside of the zip file, like on your desktop, so blender can access it.
In blender then select “File” -> “Import” -> “Collada”, and select the file you just moved out of the zip file.
The model should then appear in Blender.
Do note that the model usually includes every single option component available for the car; this means that there can be multiple versions of bumpers and other components included. The model files for vehicles won’t include wheels, tires, and shared components like the engine and suspension on the pickup/van. If you need to import those components, their model files are located in the “common” folder.
Some models might appear with shading issues when imported into blender, most visible around the doors.
This is because those models were exported using 3DSMax, which uses a different method to define which edges should be made sharp. To fix this issue, you can apply an autosmooth of around 45-60 degrees.
While this won’t give you the exact same results as the original model, it should be close enough for modding purposes.