
Wiki
Vehicle MC Wiki
Vehicle configuration, rig backends, service systems, terrain handling, and combat-ready admin workflows.
Getting Started
Start here for the real first-boot checks, module setup, and the runtime surfaces that affect every server.
Vehicle Authoring
Learn the top-down YAML flow so you know what belongs in config.yml, vehicles.yml, service files, and player-side UI files.
YML File Guides
Jump straight into the exact YAML file guide you need when you already know the filename and want the public explanation fast.
Vehicle Content
Build readable vehicle families, terrain behavior, browse layers, and driver feedback.
Service and World
Handle vehicle servicing, repair tools, fuel tanks, spawnpoints, and station behavior.
Combat and Ecosystem
Connect Vehicle MC to Duck Shot and the combat stack without losing control of performance or readability.
config.yml decides how Vehicle MC behaves as a plugin across the whole server.
If every vehicle feels wrong in the same way, start here before touching vehicles.yml.
What belongs in config.yml
Use config.yml for plugin-wide behavior:
- module toggles
- runtime cadence
- collision and landing thresholds
- water rules
- entity cleanup
- default rig backend
- seat switching
- pickup and anti-dupe rules
- permissions and safety
Use vehicles.yml when the change belongs to one vehicle family, one controller, or one variant.
Good editing order for this file
Do not try to tune every section at once.
A clean order is:
- modules
- runtime cadence
- rig backend defaults
- pickup and storage safety
- input and seat switching
- combat and bridge toggles only if you are ready for them
That order keeps your first pass readable and stops you from solving rig polish before the server rules are even stable.
Module toggles come first
The first global question is which systems are even live:
modules:
storage:
enabled: true
ui:
enabled: true
fx:
enabled: true
surfaces:
enabled: true
fuel:
enabled: true
combat:
enabled: false
weapons:
enabled: falseThis matters because many other files depend on these toggles:
surfaces.ymldoes nothing useful if surfaces are disabled- armed-vehicle files do not matter if combat or weapons are off
- UI tuning is not urgent if the UI module is disabled
Runtime cadence
The runtime cadence lives under runtime.tick.pipeline.
Those values decide how often the plugin updates:
- controllers
- collisions
- FX
- UI
- autosave
Useful baseline snippet:
runtime:
tick:
enabled: true
targetTps: 20
pipeline:
controllerEveryTicks: 1
collisionEveryTicks: 1
fxEveryTicks: 3
uiEveryTicks: 2
storageAutosaveEverySeconds: 30
storageAutosaveSkipWhileOccupied: trueInterpretation:
- controller and collision stay fast for feel
- FX and UI can be a little slower without ruining control
- autosave can stay active without constantly fighting occupied vehicles
Rig backend defaults
Vehicle MC deliberately separates:
- vehicle physics
- how the rig is rendered
The global rig backend lives here:
entities:
rig:
backend: DISPLAYThe current global options are:
DISPLAYARMOR_STANDMODELENGINE
For most public setups, DISPLAY is the clean starting point.
The main Display tuning lives here:
entities:
rig:
backend: DISPLAY
display:
baseScale: 0.625
viewRange: 128.0
teleportDurationTicks: 3
interpolationDurationTicks: 3Use that block to fix:
- rigs looking too large or too small
- long-range visibility
- visible jitter
- correction timing
If you are building custom wheels, offsets, and hybrid rigs, continue into:
- rig Backends, Display Parts, Wheels, and ModelEngine
- native Wheels, Suspension, Axles, and Hybrid ModelEngine Rigs
Cleanup, pickup, and anti-dupe safety
The server-safety side of Vehicle MC lives under:
entities.cleanupsafety.antiDupepickup
These settings matter just as much as movement if your players are supposed to store and redeploy vehicles safely.
pickup:
enabled: true
maxSpeed: 0.10
requireEmptyVehicle: true
preserveTrunkContents: true
preserveHealth: true
preserveFuel: trueInterpretation:
- vehicles cannot be scooped up at speed
- occupied vehicles do not disappear into storage
- the stored item keeps the state you actually care about
Input and seat switching
The global input surface is small, but important:
input:
provider: PACKETEVENTS
packetEvents:
useSteerVehicle: true
useRotationPackets: true
useEntityActionSneak: true
Â
seats:
switchSeat:
enabled: true
maxSpeed: 0.12If players report wrong seat behavior, rubberbanding, or control weirdness across every vehicle, start here before editing an individual base vehicle.

