Real-Time Vehicle Editor Guide
This page is dedicated to the BeamNG.drive Real-Time Vehicle Editor and is intended to summarize all the features the tool provides and how describes how to use them. As a complement you will also find tutorial videos on my YouTube channel.
If there is anything you didn't understand completely or if you would like to suggest new features or tutorials please do not hesitate to post them on the official forum thread.
|NOTE: this page is still under development|
First here is a list of different terms I will use on this page so that you know what I mean when I use them.
- Vehicle: when I talk about a vehicle of course you can take it as the Civetta Bolide or the Gavril D-15. But in here it will also eventually relate to the root folder of the vehicle such as super or pickup in the previous examples. Thus I could refer to a vehicle either with its name (like Civetta Bolide) or via its folder name (super in this case).
- Vehicle file: most of the time I will probably talk about .jbeam files. But I can also use this term instead in some circumstances. This thus refers to one jbeam file defined inside a vehicle folder.
- Vehicle part: a vehicle part is what you can select using the Ctrl+E menu in-game. For example it can be hatch_door_L which is a part defined into the vehicle file hatch_doors.jbeam from the hatch / Ibishu Covet vehicle.
- Vehicle section: a vehicle section is what I use to refer to the different groups of a vehicle part. For example Nodes, Beams, Flexbodies, ...
- Vehicle element: this will be what you can define inside a vehicle section. For example for the Nodes section the elements are Nodes.
- Element property: I'll use this term to talk about the properties you use to configure the vehicle elements. Like for example frictionCoef, selfCollision, beamType, group, ...
- Grouping property: this relates to the properties that are defined in a way that they can apply to multiple elements. For example if you define a selfCollision property above 3 nodes without changing it in-between it will apply to those 3 nodes hence a group of nodes.
- Inline property: relates to a property that is defined together with an element. JBeam files allow you to defined such by including properties inside an element next to its values.
- Splitter: a splitter refers to a separator in a control divided into two sections. However the splitter is not fixed. It can be moved with the mouse to enlarge either of the two sections of the control. It also has two arrow buttons and one central button. The central button can be used to either set both sections sizes to the same value so that you can see them both side by side or in some cases to use predefined sizes for them. The arrow buttons are used to fully enlarge either of the sections. Sometimes they can have a maximum size so that both always remain visible. Such splitters can be seen at many different places in the tool, either with a gradient gray or black / orange.
More words will probably come as I write this page.
This section describes the basic features of the tool that you have to be able to play with to use it correctly.
Installing the tool
To install the tool simply extract the contents of the zip file you can find on the official forum thread to your favourite location. If you already have the latest .NET Framework then no further action is required. Otherwise you can download it from the link surrouding it in the previous sentence.
Opening the tool
When you start the tool it will first present a web-browser with the dedicated forum page. This allows you to keep track of potential new updates and discussions without having to start a separate application. You can toggle that at any time by pressing the Toggle website button on the top-right section. You can also click the Go to forum button to get back to the Real-Time Vehicle Editor forum page.
For those of you that would feel generous and would like to contribute to supporting this tool you will find a PayPal donation button on the top-right section too. If you click it it will open the dedicated donation page in your default browser (externally). Please use this button as you want to.
Application header - Top-right section
The top-right section of the tool contains the following elements:
- A close button in red to close the editor
- A maximize button with a black square to maximize the editor
- A minimize button with an underscore symbol to minimize the editor
- A help button in blue to open this page (version Alpha 12 and above)
- A plus button to maximize the working area of the editor by hiding some parts of it
- A PayPal donation button for those feeling like supporting this tool
- A Go to forum button to display the official thread about the BeamNG.drive Real-Time Vehicle Editor
- A Toggle website button to show or hide the forums or open website
Application header - Top-left section
The top-left section of the tool contains the following elements:
- The title (unless the working area is maximized)
- A Vehicle button used to open the vehicle menu (no need to click to open, just hover)
- A Parts button used to open the vehicle part menu (currently not used)
- A Preferences' button used to open the preferences menu in which you can configure some features from the tool to your liking
Right below the application header is the vehicle bar. That bar contains icons for each vehicle you have opened. You can switch between them by left-clicking the icon or close them by right-clicking it.
Vehicle files & parts section
Once you open a vehicle the vehicle files & parts section will open. It has a grid for the files and a grid for the parts. There you can add and edit files and parts and select a part to open for edition.
The main section can be opened either by selecting a part in the vehicles & files section and clicking Open next to a part or by using the vertical splitter. It is not advised to use the main section without a part open unless you simply want to have a look around. But anything you do without a part will not be saved anywhere.
To the right you can open the game section with another vertical splitter. That section lets you run the game within the editor and update the vehicule on demand.
The big Vehicle button on the top-left section is the key feature to managing your vehicles. From there you can open, save, create and duplicate.
First things first
The first thing to do is check that the tool could successfully find your game. To do so move your mouse over the Vehicle button to open the vehicle menu and check whether the vehicle list is already filled or not. If not you must manually select your game folder. Move your mouse to the Preferences button and in the window that opens click the button to the right of the Game path text box. Then navigate to your game folder and select it. After doing that the vehicle list should be fliled.
Opening an existing vehicle
To open an existing vehicle first move your mouse above the Vehicle button to open the menu. Select a vehicle in the vehicle list by clicking it and click Open to open it.
Saving a vehicle
To save the vehicle you're currently working on first move your mouse over the Vehicle button to open the menu then simply click Save. If you select another vehicle in the list before clicking the Save button you will be asked to overwrite the contents of the selected vehicle with the contents of the vehicle you are currently working on.
Closing a vehicle
To close an open vehicle simply right-click the car icon with its name displayed below in the vehicle bar. You will be asked whether you want to save your changes or not before closing.
Creating a new vehicle
To create a new vehicle you first need to close any open vehicle. Refer to the previous point to do so. Then open the Vehicle menu as explained in above points. Enter a name and description (the name is the vehicle folder name which will also be the name of the base .jbeam file and the description is the display name). Then click the Save button. You will be asked whether you want to create a new vehicle or not.
After this another window will open to ask you if you want to copy the resources from an existing vehicle into the folder of your new vehicle. You can skip this if you want. If you want to do it then check the Copy resources from ... box and select the desired vehicle from the list. Click Ok to complete the process.
Vehicle (jbeam) files and vehicle parts management
Once you open or create a vehicle you will be shown two grids. The left grid contains all the different .jbeam files defined for the currently open vehicle. The right grid displays the different parts defined in the selected .jbeam file.
Create a new vehicle file
First if you didn't just open a vehicle you must know how to show the two grids described above. To the left of the screen and to the right of the buttons saying Configuration and Data you'll see a vertical slider bar. Drag it or click one of its arrows to fully open it in either direction. Open it to the right to access the vehicle files / parts grids.
To add a new file click the first blank cell (at the bottom) of the left grid. A popup will ask you to enter a vehicle file name. This will be the .jbeam file name so choose a name accordingly. Click ok then validate the new row by clicking the button with no text in the Delete column. On every line this button has an X and can be used to delete a row. On the empty line its used to validate a new row. Remember this a sthe same behaviour is used in all the grids in the application.
Creating a new vehicle part
Select a vehicle file by clicking a row from the left grid. Then create a new row in the right grid. For that click the blank cell in the Name column and enter a name in the window that pops up. Enter a description in the Description cell and this will also validate the new row.
Open a vehicle part for edition
To edit a vehicle part open the vehicle files / parts window, select a file in the Vehicle files grid and click Open button (with => as text) to open it. You now can access everything related to that vehicle part.
Edit vehicle parts
After opening a vehicle part you will be in the main section of the application. That section essentially contains tabs that are used to configure each section of the part.
- General information: this is where you define the global part settings such as its name, description, authors together with the different slots for descendant parts to be plugged and global scales and values that should apply to the entire part.
- Props: This is where you define the props. See props wiki section for more information about props.
- Nodes: This is where you define the nodes. See nodes wiki section for more information about nodes.
- Beams: This is where you define the beams. See beams wiki section for more information about beams.
- Flexbodies: This is where you define the flexbodies. See flexbodies wiki section for more information about flexbodies.
- Cameras: This is where you define the cameras. You can set one external camera with which you can orbit around the vehicle and zoom in and out. And you can define multiple internal cameras (even if you can set them outside of the vehicle). Those must be linked to 6 nodes defining its 3D axes of rotation.
- Engine: This is where you configure the engine.
- Differentials: This is where you setup the differentials.
- Hub wheels: This is where you define the hub-wheels. See hub-wheels wiki section for more information about hub-wheels.
- Triangles: This is where you define the triangles.
- Hydros: This is where you define the hydros. See hydros wiki section for more information about hydros.
- Thrusters: This is where you define the thrusters. Thrusters can be bound to a keyboard key and used to simulate something you can assimilate to a plante reactor. It will push what it is attached to in the direction defined by its nodes.
- Glow map: This is where you define the glow map. The glow map is basically used to define lights that can be swiched on and off based on some specific input. See glow map wiki section for more information about glow map.
- Ties: Currently not used. But if you get some information about them you can already use this tab to prepare them.
- 3D Editor: This is where you can define your nodes / beams / triangles in a 3D fashion. The 3D editor makes it easy to define your general structure and has plenty of special functionalities to help you even more. See the related section for more information.
All these tabs (except for General information and 3D editor) are presented in a very similar way: a grid to define the elements and a section dedicated to the element properties. Here are the different things you can do with those controls:
Create an element:
Most grids allow you to create new elements. To do so simply click one of the empty cells on the blank line (at the bottom of the grid) and enter the required information. To validate a new row you must click the button in the Delete column which in the case of the blank row will have no text (others have an X as text). You can also validate a row by editing a second cell. It will automatically trigger the validation as well. In some cases like beams you will have to select nodes for the element (as a beam is a link between two nodes). In such cases clicking the cell will open a popup displaying nodes to choose from. By default you'll get a list of the vehicle parts in the vehicle that you can separately open to see their nodes (by clicking the little orange +). Selecting a node and clicking outside of the popup window is as good as selecting a node and clicking Close. The nodes window can be restricted to the nodes of the current vehicle part only if you prefer. You can toggle this by going to the Preferences menu and changing Select nodes from current part only.
Edit an element:
To edit an element simply click a cell from its row in the grid and change the value. Or select a node where you need to provide a node ID.
Delete an element:
To delete an element simply hit the X button in the Delete column.
Define properties for multiple elements at once:
To define some properties for multiple elements at once first select an element by clicking its row in the grid. Then go to the lower section of the window and ensure Group properties is checked. Than change the values of the properties you want to include. If you don't repeat this process for any other element the properties you chose will apply to all of them. If you want to change it after a few elements simply do the same with another element. If you want to set a property separately for a single element and let the next one use the group property define an inline property for that element (as described below).
Note that properties set to NULL will not be written in the .jbeam file. You can also specify a value of MAX for numeric values to set it to a positive infinity.
Define properties for a single element:
To define an inline property (which applies to a specific element only) select the element in the grid by clicking its row. Then in the properties section ensure Inline properties is checked and change the values of the properties you want to apply to that element only.
Note that you can set both inline and group properties on a same element. Simply set some using Group properties and some others with Inline properties checked.
This section describes the more advanced functionalities of the editor. This doesn't include the Game control nor 3D editor which are discussed later.
This section describes how to run the game within the editor and give some meaning to its name: Real-Time Vehicle Editor. To access the game control open the right section of the tool using the vertical splitter. To get the best dimensions click the button at the center of the splitter.
Running the game within the editor
The game control is pretty simple. To run the game you simply have to click the blue Run button. You can also close the game by clicking the red X button.
When you run the game it will open in the area available for it in the control. The default map will be opened automatically and the vehicle you're working on will be loaded. A few commands are also available from the menu. The Input > Press ESCAPE feature will be useful if you want to see your vehicle when you come back to the tool. This is because you'll have to press escape to get your mouse cursor in the game and be able to use the editor again. But when you press escape in-game the exit menu opens. Thus the Input > Press ESCAPE menu item can be used to simulate a push on the escape key and close the exit menu so that your vehicle can be seen again.
More input features will come in the future.
Well this is gonna be pretty straightforward. After editing Nodes / Beams / Whatever you can click the Update button in the game control to auto-save your vehicle and reload it in game in one single click. Thus you will immediately see your changes applied to the vehicle.
|NOTE: the update button currently saves your .jbeam files in a non-compressed format so that it can remain readable but this could be changed in the future to maximize performance.|
This section is entirely dedicated to the 3D editor. To open it click the last tab of the main tool section which says 3D Editor (next to Ties).
Basic functionalities and quick overview
Before you can create nodes, beams & triangles you need to know how to use the editor. This section describes the basic features that are prerequisites to 3D jbeam-ing.
The 3D editor is mainly composed of four views. Three of them let you edit things in a 2D manner and the fourth one is in 3D. Those views can easily be maximized by simply clicking on their name in their top-left corner. That makes it easier to see what you are doing especially in the Perspective view.
To know how to use the view please have a look at the shortcuts section further on this page. It will tell you how to use the views.
In addition to the mouse cursor (which serves only as a helper in the Perspective view) the 3D editor offers 3 cursors:
- The Grid cursor which lets you interact directly with the grids and is probably the most useful in many cases
- The 3D cursor which is not often used but can be very useful in some specific situations when you need for instance to hit a triangle or mesh to create a node directly on it
- The Node cursor which lets you easily pick a node without any chance of miss because it won't ever position itself anywhere else than on a node
TIP: Combining the uses of those cursors can be very useful in some situations. That's why a shortcut (see the shortcuts list further on this page) has been given to them. You can use that shortcut to switch from a cursor to another at any time. For example you can use the Node cursor to select a node and while holding the mouse switch to Grid cursor to trace a beam from the selected node to the grid.
The options panel
The options panel allows you to configure different features from the 3D editor. To open the options panel click on the small gray arrow in a circle on the left side of the 3D editor (directly next to the name of the Top view, which you click to maximize the view). Clicking the arrow opens or closes the panel.
Here's the list of what it lets you do:
- specify a node prefix to use for the ID of the newly created nodes
- change the colors of pretty much everything. You can even specify different colors for different parts (that you would have selected in the Vehicle parts panel, see below)
- change the sizes of different things like the nodes or thickness of beams
- display or hide node IDs
The vehicle parts panel
The vehicle parts panel allows you to select which parts you want to display in addition to the one you're currently working on. Use the options panel to define different colors for the additional parts.
To open the vehicle parts panel click on the small gray arrow in a circle on the right side of the 3D editor (directly next to the name of the Top view, which you click to maximize the view). Clicking the arrow opens or closes the panel.
Basic 3D jbeam-ing
When you open the 3D editor by default Add node and Add beam are checked. This means that when interacting with the views using your left mouse button will let you create nodes and beams where applicable. You can also toggle Add triangle. Those three functionalities can be combined or used separately depending on what you need.
Note that before reading this section and the next one you should already be familiar with the interface and especially with using the different cursors.
Creating nodes & beams
So lets see how to use the functionalities that are enabled by default. To create a new node simply click somewhere in any of the four views while Add node is checked.
|NOTE: use snapping to snap to either the grid or the 3D world based on which cursor you are using|
|NOTE: you can't create two nodes at the exact same position. However if you don't use snapping you could think you created only one and actually create two very close to each other.|
You can create two nodes at once if you click and drag to another position. One node will be created at the clicked position and another one at the position you released the mouse. This is what you use to create a beam directly when Add beam is checked. As all nodes must be at distinct positions you can keep creating new beams starting from the last node you created.
|NOTE: again you should preferably use snapping when creating multiple linked beams with this technique|
|TIP: when additional parts are visible you can use their nodes to create beams in the current part.|
Therefore you could see some beams without an ending node if you don't display the other part.
You can create a triangle by either clicking 3 nodes one after the other or if Add node is checked you can do it on the fly while creating the actual nodes like for the beams. If you have already created the nodes you can easily pick them with the Node cursor.
|NOTE: remember that triangles must be created counter-clockwise for them to face the camera|
Deletion of nodes & beams
To delete a node simply hold left-alt and click it. To delete a beam you must currently delete its nodes. A better solution will be given in a future version of the tool.
|NOTE: when deleting a node all the linked beams and triangles will be deleted as well|
Deleting a triangle is even easier. As you will see when you move your mouse over a triangle it will highlight it. Hold left-alt and click it to delete it.
Moving a single node
You can move nodes individually by holding left-shift and dragging it. Linked beams and triangles will be updated accordingly.
Advanced 3D jbeam-ing
In this section I describe the features that allows you to go even further in the 3D creation of .jbeam files. It covers selections, manipulation, mirroring, grid transforms, ...
Selections & manipulations
I already told you how to move a single node. But you can also select multiple of them and transform them together. To select multiple nodes you just need to hold left-ctrl and click the desired nodes until you've got your selection ready. The selected nodes will be displayed in a different color to make it easier to distinguish them from the other.
Once you have selected some nodes a manipulator will appear. It will allow you to move and rotate your selection. Move the arrows to move your selection and use the circles to rotate it.
|NOTE: when you transform some nodes all linked beams and triangles will be transformed in the same manner|
First select the nodes you need. Then open the radial menu (spacebar by default) and go to Edit > Operations > Mirror and click any of the available options. You can mirror relative to any axis or a combination of different axes.
|NOTE: mirroring nodes will also mirror the linked beams and triangles. If you selected one node from a beam and not the other one the beam will still be mirrored. Its starting point will be the node you did not select.|
Transforming the grid
If you toggle Move grid (in the bar above the views or from the radial menu or by pressing G) the grid will start to follow your cursor. Left-click somewhere to place it. If you hold left-shift and move your cursor over a triangle the grid will rotate according to the surface of the triangle. Use the Grid cursor to place it directly onto the triangle.
- you can use the node cursor to place the grid directly on a node
- to place the grid correctly onto a triangle use the 3D cursor
- use snapping with a value of 1 preferably when transforming the grid to ensure snapping still works correctly afterwards
- the grid transform will be taken into account when using the mirroring feature
- transform the grid from an orthographic view to easily move it along one of its 3 axes
You can also reset the grid to its original position and with its original rotation from the menu bar or radial menu. A shortcut can also be used (Shift + G by default).
The radial menu is a circular menu that lets you easily access the most common features and work quicker. To open it press spacebar while your mouse is inside a view.
|NOTE: for the moment the radial menu will be cut and not display entirely if you open it while the view is too small. To make sure you see the menu entirely maximize the working area (green + button at the top-right of the tool) and / or maximize the view by clicking its name.|
Working with 3D models
It's possible to load a 3D model into the 3D editor. However it has to be in the .obj or .3ds format or it will not load. I'm still working on Collada import but can't guarantee this will succeed.
To get the model to load inside the 3D editor simply drop it into your vehicle folder next to the .dae file. Then open the editor and load your vehicle. Once inside the 3D editor you should see your 3D model. However I can't predict if the position, rotation and scales will be correct. It's up to you to define them correctly when you convert it. Online converters usually don't let you choose things such as up axis or scales but Blender does.
Once the model loaded you may need to manually transform it. To do so you'll have a little manipulator close to its origin. It will allow you to move and rotate it. To scale it change the value of Model scale.
|TIP: Note that collisions with the 3D cursors are working with the 3D model. That's where the 3D cursor becomes pretty useful. You can place nodes and create beams / triangles directly onto the model.|
To use keyboard shortcuts in the 3D editor you first need to move your mouse over one of the four views. Note that many of them can only be used within the Perspective view. Here's a full list of the available shortcuts and why and when to use them:
- Right mouse button: rotate the camera around pivot point in Perspective view or pan in orthographic views
- Alt + Right mouse button: change the field of view in the Perspective view
- Ctrl + Right mouse button: zoom in or out in any view
- Shift + Right mouse button: pan in Perspective view
- V: switch between the different cursors
- E: freeze 3D cursor
- G: toggle Move grid functionality
- Shift + G: reset grid to default position and rotation
- C: increase grid snapping by 0.1
- X: decrease grid snapping by 0.1
- 1: toggle Add node functionality
- 2: toggle Add beam functionality
- 3: toggle Add triangle' functionality
- Alt + Left mouse button: delete something (node, beam, triangle)
- Shift + Left mouse button: move a single node (linked beams and triangles will be updated accordingly)
- Enter: clear selection and get out of selection mode
- L: toggle Move light functionality
- Shift + L: reset light to default location