Slots2

Slots2 is an improvement to the Slots section, designed and implemented in preparation for a new slots system planned for future updates of the game. As of now, it offers no clear advantages over the standard Slots section. The main difference is separating slot type into the actual slot name and lists of allowed and denied slotTypes for this slot. You can use both Slots and Slots2 in different Jbeam files of the vehicle.

Required arguments

string
type
The internal name of the slot
The same concept as “type” in Slots section.
table
type
List of slotTypes of parts allowed in this slot

In case of direct conversion from slots, the old content of “type” in that section becomes the only element of this table.

Allows applying parts with multiple slotType variations into the same slot.

table
type
List of slotTypes of parts denied from this slot

In case of direct conversion from slots, this table will be empty.

This has a higher priority than allowTypes: If a part contains 2 slotTypes, one allowed and one denied, it will be denied.

string
type
The component that gets loaded by default if no part is defined in the car’s config file

string
type
type
default
The name of the slot in the part selector

Optional arguments

boolean
type
If enabled, the choice to have the part empty is removed from the part selector/garage
dictionary
type
Contains variable names as dictionary keys, and their values as dictionary values

Variable names must start with the $ symbol. Example usage:

["log_trailer_bolsters_R","log_trailer_bolsters_R","Rear Bolsters", {"variables": {"$bolster_offset":-0.39}}],

Commonly passed arguments

These are the same as in Slots section.

dictionary
type
{“x”:0, “y”:0, “z”:0}
default
Offsets all the nodes, flexbodies and props on the YZ axis, and offsets nodes, flexbodies and props in a mirrored fashion on the X axis (m)
dictionary
type
{“x”:0, “y”:0, “z”:0}
default
Offsets all the nodes, flexbodies and props on the XYZ axis (m)

Simple Example

A standard use of slots2, with no difference in behavior from the standard slots section.

"slots2": [
    ["name", "allowTypes", "denyTypes", "default", "description"],
    ["pickup_frame", ["pickup_frame"], [], "pickup_frame", "Frame", {"coreSlot":true}],
    ["paint_design", ["paint_design"], [], "", "Paint Design"],
    ["skin_glass", ["skin_glass"], [], "", "Glass Tint"],
    ["licenseplate_design_2_1", ["licenseplate_design_2_1"], [], "", "License Plate Design"],
    ["pickup_mod", ["pickup_mod"], [], "", "Additional Modification"],
],

Advanced Example

Use of slots2 together with nodeMove and slot variables.

"slots2": [
        ["name", "allowTypes", "denyTypes", "default", "description"],
        ["simple_traffic_suspension_F",["simple_traffic_suspension_F"],[],"simple_traffic_suspension_F","Front Suspension",
        {
            "nodeMove":{"x":0.0, "y":-1.456, "z":0.00},
            "variables": {
                "$suspFUpperMountPosX":0.37,
                "$suspFUpperMountPosZ":0.57,
                "$suspFLowerMountPosX":0.37,
                "$suspFLowerMountPosZ":0.35,
            },
        }
        ],
        ["simple_traffic_suspension_R",["simple_traffic_suspension_R"],[],"simple_traffic_suspension_R","Rear Suspension",
        {
            "nodeMove":{"x":0.0, "y":1.487, "z":0.00},
            "variables": {
                "$suspRUpperMountPosX":0.43,
                "$suspRUpperMountPosZ":0.56,
                "$suspRLowerMountPosX":0.65,
                "$suspRLowerMountPosZ":0.31,
            },
        }
        ],
    ],
Last modified: July 10, 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.