---
title: Vehicle Configuration
description: Configure the base vehicles.
published: true
date: 2024-10-13T18:34:34.478Z
tags: 
editor: markdown
dateCreated: 2023-07-22T14:07:37.924Z
---

# Vehicle Configuration
By default, VehiclesPlus gets shipped with some example vehicles. These are made for testing the plugin and to stimulate your inspiration. You can find the correct resourcepack on the Setup page.

If you want to proceed with VehiclesPlus, it's possible to make or buy your own vehicles, and set them up in the plugin. This creates endless possibilities!

## Creating a new vehicle
### Tabs {.tabset}
#### Text tutorial (EN)
##### Step 1: Purchase your models
The first step is to achieve the models you want to use. Make sure the models are delivered in a Minecraft-compatible `.json` file. This makes it super easy to install!

> You can easily find VehiclesPlus-compatible models [on Polymart](https://vehicles.polymart.org/).
{.is-info}

##### Step 2: Generate the resourcepack
**Generate the resourcepack for your server using the [VehiclesPlus Resourcepack Generator tool](https://vprpgenerator.sbdevelopment.tech/).**

Just fill in your Minecraft version, choose a Namespace (leave it at `vp` to be safe) and select an Item you want to insert the models on.

Then easily upload all the models you want to add to your resourcepack and click on the **Generate** button.

> **NOTE:** The tool overwrites the item configuration for the selected item. Please select an item that you currently do not use in the case you upload your own resourcepack.
{.is-warning}

###### Step 3: Create a configuration file
Now go to your Minecraft server's files.

Copy the example configuration file from the VehiclesPlus plugin folder for the type of vehicle you want to add **(for example `cars/ExampleCar.yml`)**. If you don't have the original example files in your plugin folder anymore, you can [find them here](https://git.sbdevelopment.tech/SBDevelopment/VehiclesPlus/src/branch/master/Vehicle%20Models).

Rename the copied file to the name of your vehicle (for example from `ExampleCar.yml` to `MyCoolCar.yml`). Also make sure to change the name inside the file, like `name: MyCoolCar`

Now go to the skin section, and change the values to the once given by the generator.

**Example:** If your model is called MyCoolCar and has been bound to `custom_model_data: 2` change the value under `meta` to `2`.

```yaml
list0:
  className: me.legofreak107.vehiclesplus.vehicles.vehicles.objects.addons.skins.Skin
  skin:
    ==: org.bukkit.inventory.ItemStack
    v: 3337
    type: LEATHER_BOOTS
    meta:
      ==: ItemMeta
      meta-type: UNSPECIFIC
      custom-model-data: 1
```

> **NOTE:** Do *NOT* copy/paste this configuration part! Only change the `type` and `meta` sections according to your situation.
{.is-warning}

###### Step 4: Change other settings
Now it's time to change the other settings to match your vehicle. Check the "Settings per vehicle" section below to see what each section means.

> This step might take some time. You need to change the settings, restart your server and see if everything is working as expected. You might need to tinker some settings multiple times.
>
> **NOTE: You have to give yourself a new vehicle to see the changes you made!**
{.is-info}

#### YouTube tutorial (NL/BE)
You can find a step-by-step tutorial on YouTube by The BelgiumGames. He explains how to add the models to the resourepack and how to setup the vehicles in the config file.
https://www.youtube.com/watch?v=5CbPg7ld7hw
## Settings per vehicle
This section explains which settings are available per vehicle.
*Per setting will be explained what it means as a comment (`#`).*
```yaml
# DO NOT CHANGE!
className: me.legofreak107.vehiclesplus.vehicles.vehicles.objects.BaseVehicle
# The unique identifier of this base vehicle.
name: ExampleCar
# The type of the vehicle (check out the default for the type to use to get the correct value).
vehicleType: me.legofreak107.vehiclesplus.vehicles.vehicles.objects.types.CarType
# The permissions for this vehicle
permissions:
	# DO NOT CHANGE!
  className: me.legofreak107.vehiclesplus.vehicles.vehicles.objects.VehiclePermissions
  # The permission to buy this vehicle.
  buyPermission: vp.buy.car
  # The permission to drive this vehicle.
  ridePermission: vp.ride.car
  # If true, players can sit in the non-driving seats without the ride permission.
  enterWithoutRidePermission: true
# The list of available colors in the shop (will only work for COLORABLE_ARMOR).
baseColorList:
  # To add a new color, just copy the last one and add 1 to the list value, for example list5.
  list0:
    ==: Color
    ALPHA: 255
    RED: 255
    BLUE: 0
    GREEN: 0
  list1:
    ==: Color
    ALPHA: 255
    RED: 0
    BLUE: 0
    GREEN: 0
  list2:
    ==: Color
    ALPHA: 255
    RED: 255
    BLUE: 255
    GREEN: 255
  list3:
    ==: Color
    ALPHA: 255
    RED: 128
    BLUE: 128
    GREEN: 128
  list4:
    ==: Color
    ALPHA: 255
    RED: 192
    BLUE: 192
    GREEN: 192
# The list of parts for this vehicle. The full list will be explained further below.
partList:
  list0:
    [...]
# The max speed settings.
speedSettings:
	# DO NOT CHANGE
  className: me.legofreak107.vehiclesplus.vehicles.vehicles.objects.base.storage.StorageUpgradeable
  # The base max speed value (given when bought).
  base: 100
  # The maximum max speed value (which can be upgraded to).
  max: 200
  # The steps per upgrade for the max speed value (will be added to the current value at upgrade).
  step: 5
  # The cost to upgrade with the step value.
  upgradeCost: 1000
# The fuel tank settings.
fuelTankSettings:
	# DO NOT CHANGE
  className: me.legofreak107.vehiclesplus.vehicles.vehicles.objects.base.storage.StorageUpgradeable
  # The base fuel tank value (Liters) (given when bought).
  base: 50
  # The maximum fuel tank value (Liters) (which can be upgraded to).
  max: 100
  # The steps per upgrade for the fuel tank value (Liters) (will be added to the current value at upgrade).
  step: 5
  # The cost to upgrade with the step value.
  upgradeCost: 1000
# The turning radius settings.
turningRadiusSettings:
	# DO NOT CHANGE
  className: me.legofreak107.vehiclesplus.vehicles.vehicles.objects.base.storage.StorageUpgradeable
  # The base turning radius value (given when bought).
  base: 7
  # The maximum turning radius value (which can be upgraded to).
  max: 15
  # The steps per upgrade for the turning radius value (will be added to the current value at upgrade).
  step: 1
  # The cost to upgrade with the step value.
  upgradeCost: 1000
# The acceleration settings.
accelerationSettings:
	# DO NOT CHANGE
  className: me.legofreak107.vehiclesplus.vehicles.vehicles.objects.base.storage.StorageUpgradeable
  # The base acceleration value (given when bought).
  base: 50
  # The maximum acceleration value (which can be upgraded to).
  max: 100
  # The steps per upgrade for the acceleration value (will be added to the current value at upgrade).
  step: 5
  # The cost to upgrade with the step value.
  upgradeCost: 1000
# The horn settings (not compatible with drift).
hornSettings:
	# DO NOT CHANGE
  className: me.legofreak107.vehiclesplus.vehicles.vehicles.objects.base.storage.StorageHorn
  # If true, the horn sound will be played at space.
  enabled: true
  # The sound to play for the horn.
  # Full list: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Sound.html#enum-constant-summary
  sound: BASS
 	# The cooldown (seconds) before the horn can be pressed again.
  cooldown: 0
# If true, the vehicle can drift when pressing space (not compatible with the horn).
drift: true
# The exhaust settings.
exhaustSettings:
	# DO NOT CHANGE
  className: me.legofreak107.vehiclesplus.vehicles.vehicles.objects.base.storage.StorageSmoke
  # If true, the exhaust particle will be shown.
  enabled: true
  # The X offset (from the base) for the particle location.
  xOffset: -5.0
  # The Y offset (from the base) for the particle location.
  yOffset: 0.0
  # The Z offset (from the base) for the particle location.
  zOffset: 0.0
  # The particle to show.
  # Full list: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Particle.html#enum-constant-summary
  particleName: SMOKE_LARGE
# If true, players can exit while the vehicle is moving.
# PLEASE NOTE: On Minecraft 1.16.x, setting this value to false will NOT work!
canExitWhileMoving: true
# The price for this base vehicle.
price: 100000.0
# The fuel settings.
fuelSettings:
	# DO NOT CHANGE
  className: me.legofreak107.vehiclesplus.vehicles.vehicles.objects.base.storage.StorageFuel
  # The fuel usage (Liters) of this vehicle.
  usage: 6.0
  # The type of fuel to use. This references the ID of the created fuel type.
  # By default, only GASOLINE is available.
  type: GASOLINE
# The total health available on this vehicle.
health: 100
# The size (slots) available in the trunk.
# Available options: 0, 9, 18, 27, 36, 45, 54
trunkSize: 27
# The hitbox settings.
hitbox:
	# DO NOT CHANGE
  className: me.legofreak107.vehiclesplus.vehicles.vehicles.objects.base.storage.StorageHitbox
  # The length of the hitbox (from to back).
  length: 3.0
  # The width of the hitbox (left to right).
  width: 2.0
  # The height of the hitbox (bottom to top).
  height: 1.0
# If true, realistic steering will be used. How longer you press the steering keys (A-D), how stronger the vehicle will steer to that direction.
steeringType: true
# If true, the skin model will be placed on the hand of the armorstand.
# If false, the skin model will be placed on the head of the armorstand.
handModel: false
```

### Parts
Parts can be added to the vehicle. Some parts are visible (using an item), some are not.

#### Skin
The skin part represents the chassic of the vehicle.
```yaml
    [...]
    # DO NOT CHANGE
    className: me.legofreak107.vehiclesplus.vehicles.vehicles.objects.addons.skins.Skin
    # The skin item to show.
    # For all the available settings, check out: https://www.spigotmc.org/wiki/itemstack-serialization/
    skin:
      ==: org.bukkit.inventory.ItemStack
      v: 3337
      type: LEATHER_BOOTS
      meta:
        ==: ItemMeta
        meta-type: COLORABLE_ARMOR
        Unbreakable: true
        Damage: 1
    # The color of the skin item (will only work for COLORABLE_ARMOR).
    color:
      ==: Color
      ALPHA: 255
      RED: 255
      BLUE: 255
      GREEN: 255
    # The X offset (from the base).
    xOffset: 0.0
    # The Y offset (from the base).
    yOffset: 0.0
    # The Z offset (from the base).
    zOffset: 0.0
    # DO NOT CHANGE
    UID: 83479cdf-55fb-4d75-98f6-312b7b38343f
    # DO NOT CHANGE
    isCustomPlaced: false
```

#### Seat
![carseat.png](/carseat.png =10%x)
*Please note, this part is NOT visible. The visible seat MUST be included in the skin.*

The seat parts represents a seat in the vehicle. Players can sit on each seat.
```yaml
    [...]
    # DO NOT CHANGE
    className: me.legofreak107.vehiclesplus.vehicles.vehicles.objects.addons.seats.Seat
    # If true, the player can drive the vehicle from this seat (will only work for ONE seat!).
    steer: true
    # The X offset (from the base).
    xOffset: 0.0
    # The Y offset (from the base).
    yOffset: 0.0
    # The Z offset (from the base).
    zOffset: 0.0
    # DO NOT CHANGE
    UID: d13eb53e-bfa8-44e1-bc55-c250fb20880b
    # DO NOT CHANGE
    isCustomPlaced: false
```

#### Wheel
The wheel parts represents the wheels of a vehicle. Wheels can rotate when steering.
```yaml
		[...]
    # DO NOT CHANGE
    className: me.legofreak107.vehiclesplus.vehicles.vehicles.objects.addons.Wheel
    # If true, the wheel moves when steering
    steering: true
    # The rotation offset at spawn, depends on the configuration in the model.
    rotationOffset: 180
    # The skin item to show.
    # For all the available settings, check out: https://www.spigotmc.org/wiki/itemstack-serialization/
    skin:
      ==: org.bukkit.inventory.ItemStack
      v: 3337
      type: LEATHER_CHESTPLATE
      meta:
        ==: ItemMeta
        meta-type: COLORABLE_ARMOR
        Unbreakable: true
        Damage: 2
    # The color of the skin item (will only work for COLORABLE_ARMOR).
    color:
      ==: Color
      ALPHA: 255
      RED: 20
      BLUE: 20
      GREEN: 20
    # The X offset (from the base).
    xOffset: 0.0
    # The Y offset (from the base).
    yOffset: 0.0
    # The Z offset (from the base).
    zOffset: 0.0
    # DO NOT CHANGE
    UID: 7b0b9d87-502b-46c7-8b50-9bc285e0a868
    # DO NOT CHANGE
    isCustomPlaced: false
```