License Plates

There are 3 different components of license plates within jbeam. The licenseplate_path property provides a path to the Json file used to generate the license plate textures. The licenseplateFormat property decides which of the different formats from said Json file is used. The actual model of the license plate, on which the textures are generated, is added in Flexbodies section.

Global modifiers

These are present next to the tables and dictionaries in the root part of Jbeam.

string
type
vehicles/common/licenseplates/default/licensePlate-default.json
default
Path to the Json file with settings to generate the license plate.

This is present in common parts under the License Plate Design slot (internal name: licenseplate_design_2_1).

The property only works when the slotType of the part contains 'licenseplate_design' in the name.

string
type
30-15
default
Selects which of the formats from the Json file will be used.

Values used in official license plates are 30-15 and 52-11, they are the license plate dimension proportions used in game, for the US and EU plates respectively. You can add your own format, which will require defining it in Json.

This is present in the license plate parts of individual vehicles. As 30-15 is the default format, it will usually not be set for US plate variants, and only the EU variants will be changed to 52-11. An exception applies in some cases due to the part loading priority, in which case the 30-15 format needs to be manually set.

The default format of 30-15 will only be applied if the slotType of the part contains '_licenseplate' in the name.

License plate models

3D models of license plates are present in the common folder and can be used on any vehicle. There is 1 variant of a US format license plate present in the “empty.dae” file in the root of the common folder, named just “licenseplate”, and several variants of EU plates that you can find in the “licenseplate-52-11.dae” file in the driver_training sub-folder. The different variants differ in curvature, being curved at a different radius (the smaller the radius the more curved the plate is), allowing to be fitted on various bumpers. The different available variants are:

  • “licenseplate-52-11” - straight
  • “licenseplate-52-11-r4” - curved with a 4m radius
  • “licenseplate-52-11-r2” - curved with a 2m radius
  • “licenseplate-52-11-r1_5” - curved with a 1.5m radius
  • “licenseplate-52-11-r1” - curved with a 1m radius
  • “licenseplate-52-11-r0_5” - curved with a 0.5m radius
  • “licenseplate-52-11-r0_3” - curved with a 0.3m radius
  • “licenseplate-52-11-b45” - bent in the middle at a roughly 90 degree angle

If none of these fit your custom bumper, you can make your own variant by editing one of the existing ones. As long as you keep the material and UV map unchanged, it will work the same way as the original plates.

Making a license plate Jbeam file for a vehicle may seem complex with all of the information here, but in reality it’s very simple. All you need to do is to set the licenseplateFormat property to the correct value, and then add the license plate mesh to the group where the bumper (or another piece the plate is attached to) is, positioning it with the flexbody “pos” modifiers. Remember that rear license plates also need to be rotated by 180 degrees on the Z axis with the “rot” modifier. Also keep in mind that the positions of EU license plates may have to be different than the US ones.

Examples

Some examples of vehicle license plates setup, making use of various license plate model variants and the licenseplateFormat property.

"autobello_licenseplate_F": {
    "information":{
        "authors":"BeamNG",
        "name":"Front License Plate",
        "value":0,
    },
    "slotType" : "autobello_licenseplate_F",
    "flexbodies": [
        ["mesh", "[group]:", "nonFlexMaterials"],
        ["licenseplate", ["bumper_F"],[],{"pos":{"x":0.0, "y":-1.69, "z":0.345}, "rot":{"x":0, "y":0, "z":0}, "scale":{"x":1, "y":1, "z":1}}],
    ],
},
"autobello_licenseplate_F_EU": {
    "information":{
        "authors":"BeamNG",
        "name":"Front EU License Plate",
        "value":0,
    },
    "slotType" : "autobello_licenseplate_F",
    "licenseplateFormat": "52-11",
    "flexbodies": [
        ["mesh", "[group]:", "nonFlexMaterials"],
        ["licenseplate-52-11-r2", ["bumper_F"],[],{"pos":{"x":0.0, "y":-1.690, "z":0.370}, "rot":{"x":5, "y":0, "z":0}, "scale":{"x":1, "y":1, "z":1}}],
    ],
},
"autobello_licenseplate_F_empty": {
    "information":{
        "authors":"BeamNG",
        "name":"Front License Plate",
        "value":0,
    },
    "slotType" : "autobello_bumper_F",
    "licenseplateFormat": "30-15",
    "flexbodies": [
        ["mesh", "[group]:", "nonFlexMaterials"],
        ["licenseplate", ["body"],[],{"pos":{"x":0.0, "y":-1.598, "z":0.355}, "rot":{"x":7, "y":0, "z":0}, "scale":{"x":1, "y":1, "z":1}}],
    ],
},
"autobello_licenseplate_F_EU_empty": {
    "information":{
        "authors":"BeamNG",
        "name":"Front EU License Plate",
        "value":0,
    },
    "slotType" : "autobello_bumper_F",
    "licenseplateFormat": "52-11",
    "flexbodies": [
        ["mesh", "[group]:", "nonFlexMaterials"],
        ["licenseplate-52-11-r4", ["body"],[],{"pos":{"x":0.0, "y":-1.60, "z":0.386}, "rot":{"x":10, "y":0, "z":0}, "scale":{"x":1, "y":1, "z":1}}],
    ],
},
"autobello_licenseplate_R_decklid": {
    "information":{
        "authors":"BeamNG",
        "name":"Rear License Plate",
        "value":0,
    },
    "slotType" : "autobello_licenseplate_R_decklid",
    "flexbodies": [
        ["mesh", "[group]:", "nonFlexMaterials"],
        ["licenseplate", ["decklid"],[],{"pos":{"x":0.0, "y":1.69, "z":0.66}, "rot":{"x":28, "y":0, "z":180}, "scale":{"x":1, "y":1, "z":1}}],
    ],
},
"autobello_licenseplate_R_bumper": {
    "information":{
        "authors":"BeamNG",
        "name":"Rear License Plate",
        "value":0,
    },
    "slotType" : "autobello_licenseplate_R_bumper",
    "flexbodies": [
        ["mesh", "[group]:", "nonFlexMaterials"],
        ["licenseplate", ["bumper_R"],[],{"pos":{"x":0.0, "y":1.835, "z":0.405}, "rot":{"x":0, "y":0, "z":180}, "scale":{"x":1, "y":1, "z":1}}],
    ],
},
"autobello_licenseplate_R_bumper_EU": {
    "information":{
        "authors":"BeamNG",
        "name":"Rear EU License Plate",
        "value":0,
    },
    "slotType" : "autobello_licenseplate_R_bumper",
    "licenseplateFormat": "52-11",
    "flexbodies": [
        ["mesh", "[group]:", "nonFlexMaterials"],
        ["licenseplate-52-11", ["bumper_R"],[],{"pos":{"x":0.0, "y":1.835, "z":0.405}, "rot":{"x":0, "y":0, "z":180}, "scale":{"x":1, "y":1, "z":1}}],
    ],
},

Example of a part in the licenseplate_design_2_1 slot, making use of the licenseplate_path property.

{
"license_plate_nz_1": {
    "information":{
        "authors":"BeamNG",
        "name":"New Zealand Plate Design",
        "value":50,
    },
    "slotType" : "licenseplate_design_2_1",
    "licenseplate_path" : "vehicles/common/licenseplates/automation_test_track/licensePlate-default.json",
    },
}
Last modified: May 6, 2024

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.