Skip to main content
Vehicle MC wiki

Wiki

Vehicle MC Wiki

Vehicle configuration, rig backends, service systems, terrain handling, and combat-ready admin workflows.

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.

Service and World

Handle vehicle servicing, repair tools, fuel tanks, spawnpoints, and station behavior.

Vehicle Content

Surfaces, FX, and Terrain Response

Use surfaces.yml, fx.yml, and the audio and VFX budget files to make terrain, engine feedback, and tire FX feel deliberate.

Vehicle MC does not only decide how a vehicle drives in a vacuum. It also lets the world change how that vehicle feels.

The most important files for that layer are:

  • surfaces.yml
  • fx.yml
  • audio_limits.yml
  • vfx_limits.yml

Together they decide how terrain changes handling, how movement reads visually, and how far you can push those effects before they become noisy.

surfaces.yml

surfaces.yml is where terrain starts to matter.

This file controls:

  • how wheel contact is sampled
  • how surface profiles are matched
  • how speed, accel, traction, and slip are modified
  • how tire or terrain particles are emitted

Sampling mode

The sampling block decides how the plugin figures out what the vehicle is driving on.

YAML
sampling:
  everyTicks: 5
  mode: WEIGHTED_AVERAGE
  hysteresisTicks: 8
  yOffset: 0.15
  wheelMode: AUTO_FROM_HITBOX
  anchorsPrefix: "wheel_"

Important choices:

  • WEIGHTED_AVERAGE feels smoother on mixed terrain
  • MAJORITY gives stronger dominant-surface behavior
  • AUTO_FROM_HITBOX is the easiest baseline
  • anchor or explicit offset modes are better when the rig has deliberate wheel points

Surface profiles

Surface profiles are the real handling modifiers.

Example:

YAML
surfaces:
  sand:
    priority: 2
    match:
      materials:
        - SAND
        - RED_SAND
    multipliers:
      maxSpeedMul: 0.85
      accelMul: 0.80
      tractionMul: 0.75
      slipMul: 1.25

This is where you teach the world to feel different:

  • roads can feel clean and fast
  • gravel can feel loose
  • sand can feel bogged down
  • ice can feel slippery and dangerous

Surface particles

The particle layer is not just decoration. It is part of player feedback.

YAML
particles:
  enabled: true
  mode: EVENT
  everyTicks: 4
  minSpeed: 0.05
  emitOnSurfaces:
    - sand
    - gravel
    - grass
    - roads

Use this to reinforce terrain feel:

  • dust on sand
  • cleaner motion on roads
  • skid feedback on looser terrain

fx.yml

fx.yml is the broader motion-and-feedback library.

It already covers:

  • engine event cadence
  • collision and skid event thresholds
  • pitch curves for vehicle audio
  • sound profiles
  • exhaust and tire particles
  • projectile impact feedback

Example profile shape:

YAML
profiles:
  dirtbike:
    sounds:
      start:
        id: minecraft:vehicles.bike.start
      loop:
        id: minecraft:vehicles.bike.loop
      skid:
        id: minecraft:vehicles.skid
    particles:
      exhaust:
        enabled: true
        type: CLOUD
      tires:
        enabled: true
        type: SMOKE

This means each vehicle family can have its own:

  • engine personality
  • startup feel
  • skid feel
  • collision feel
  • exhaust character

Audio and VFX budgets

The support limit files matter when a server becomes busy.

audio_limits.yml

This file controls budgets like:

  • sounds per player per second
  • sounds per chunk per second
  • priority classes

vfx_limits.yml

This file controls budgets like:

  • particles per player per tick
  • tracers per tick
  • casings per vehicle
  • near, mid, and far distance thresholds

These files are what keep a polished server from turning into a wall of spam.

Suggested order

  1. Create one road profile and one bad-terrain profile first.
  2. Make sure the driver can feel the difference before adding more surfaces.
  3. Build one strong FX profile per vehicle family.
  4. Add limits only after the feedback library is working.
  5. Keep effects readable, not just loud.