Transport & ownership
Vehicles
Persistent configurable cars, planes, helicopters, boats, garages, crafting, ownership, fuel, and damage.
01
What it handles
Four vehicle classes
Cars, boats, airplanes, and helicopters have distinct server-authoritative control and physics models.
Persistent ownership
Fuel, durability, drivers, plates, wreck count, and title redemption remain trustworthy across restarts.
Garages
Typed garage signs handle title redemption, vehicle storage, deployment, and nearby despawning.
Driving controls
Acceleration, braking, steering, flight axes, horns, headlights, sirens, safe exit rules, and locking.
Crafting & repair
Configurable recipes, exact custom ingredients, parts pools, mechanic diagnosis, and bounded repair values.
Region rules
WorldGuard flags separately govern entry, spawning, damage, hijacking, horns, and sirens.
Visual integrations
Oraxen, ModelEngine, ProtocolLib, and native display fallbacks support custom vehicle presentation.
Justice bridge
Officers can securely seat and remove cuffed suspects without breaking custody.
02
Detailed guide
Paper 1.21.11 vehicle system for cars, planes, helicopters, and boats. Vehicle definitions live in separate plugins/Vehicles/vehicles/*.yml files and use meters/blocks, seconds, kilograms, liters, m/s, and m/s².
First setup
- Install WorldGuard. Justice, Property, Oraxen, ModelEngine, and ProtocolLib are optional integrations.
- Put
MCSkylines-Vehicles-1.5.10.jarin the server'spluginsdirectory and start the server once. - Configure vehicle definitions,
recipes.yml, andparts.yml, or use/vehicle adminfor physics and repair-part editing. - Place a sign with
[garage]on the first line. EnterCAR,PLANE,HELICOPTER, orBOATin chat when prompted. - Craft a vehicle registration title, hold it at a matching garage, and redeem it through the garage GUI. The title is only a serialized, one-use database token; a complete vehicle is never carried or placed as an item.
After registration, owners deploy stored vehicles only through a matching garage. Administrators can use /vehicle admin spawn <definition> [owner] to create a persistent registration and deploy it at their feet, /vehicle admin grant <definition> <owner> to create one directly in an owner's garage storage, and /vehicle admin store to force a nearby deployed vehicle back into storage. These commands never create physical vehicle items.
Vehicles can only be despawned near a matching garage. Physical vehicles serialize across chunk unloads and reappear when the chunk loads. On a full server restart, deployed vehicles return to storage while ownership, fuel, durability, drivers, license plate, and lifetime wreck count remain persistent.
Controls
- Cars and boats: W accelerates, S brakes/reverses, A/D gradually steer, Jump holds the horn, and Sneak exits.
- Planes: W/S adjust throttle, A/D roll and bank the aircraft, Jump pitches up above stall/control speed, and Sneak pitches down. Sneak exits only when landed and nearly stopped.
- Helicopters: W/S pitch forward/back, A/D bank/turn, Jump ascends, and Sneak descends. Sneak exits only when landed.
Use /vehicle on and /vehicle off from the driver seat. Other commands include lock, unlock, info, drivers, transfer, headlights, siren, admin, and reload. /car, /plane, /helicopter, and /boat are aliases.
Configuration layout
config.yml: database, limits, garage behavior, hijacking, protection, sounds, and global physics workload.vehicles/*.yml: one definition per model, including seats, model provider, dimensions, physics, durability, fuel, sounds, and features.recipes.yml: shaped, shapeless, furnace, blasting, smoking, campfire, and stonecutting recipes. Exact Oraxen ingredients are supported.parts.yml: easy and expensive repair pools, item providers, and repair percentages capped at 25%.
SQLite is the default. Set database.type: MYSQL for a network database. Craft results are database-serialized, and title redemption is transactional so copied titles cannot create duplicate vehicles.
The bundled default fleet is seeded only when config.yml is created for the first time. Once a data folder has a config, missing or deliberately deleted vehicles/*.yml files are not regenerated. Delete or move the entire Vehicles data folder when you intentionally want a clean set of current defaults.
Integrations
- WorldGuard flags:
vehicles-entry,vehicles-spawn,vehicles-damage,vehicles-hijack,vehicles-horn, andvehicles-siren. - Property tenants inherit normal WorldGuard region membership behavior.
- Oraxen vehicle items, fuel, ingredients, and repair parts are resolved by ID.
- ModelEngine models are attached by configured model ID, with native item-display fallbacks.
- Justice registers a custody bridge. Police can right-click a cuffed suspect to use the nearest free passenger seat and right-click again to remove them while keeping them cuffed.
VehiclesApi is registered through Bukkit's services manager. It exposes vehicle snapshots, restrained-passenger seating, model adapters, and the persistence foundation for WorldGuard-region impounds and parked-vehicle tickets. Damage, ownership-change, and permanent-destruction events are public Bukkit events.
Fleet runtime 1.5.10
Use this JAR with the matching complete MC Skylines Oraxen pack. The stock audio now uses that pack's original overlapping motor beds and electronic siren; explicit custom sound settings are preserved. Water-cannon status uses a boss bar. Vehicle cleanup also removes invalid unloaded references and purges stale owned entities on chunk load. Multi-part assemblies wait for their complete chunk coverage before respawning, with a two-vehicle-per-tick restore budget. Display lighting is sampled above the road. Stationary transforms are not resent.
The larger stock layouts, American seating, animated wheel/rotor/articulation pivots and slab/stair descent fixes from the previous fleet builds are retained.
Alderwood audio and helicopter revision (1.5.10)
The matching full Oraxen pack recolors the public buses purple and seals the shared helicopter canopy, with higher-resolution police/EMS lettering. Engine routing now separates motorcycles from cars and selects diesel audio for heavy vehicles including tankers and tractors. The pack provides distinct combustion/exhaust rhythms, a lower siren sweep and reduced siren playback volume. Existing custom sound settings continue to take precedence.
Ownership and garage lifecycle
A craft recipe produces a serialized registration title, not a drivable vehicle item. Redeeming the title at a matching garage consumes the one-use database token and creates the persistent vehicle registration. The owner deploys and stores that registration through garages of the correct type.
Only stored vehicles can be deployed. Normal storage requires the matching garage and the vehicle to be close enough under the configured policy. Chunk unload serializes a deployed vehicle and restores it when its complete multi-chunk assembly can be loaded safely. A full server restart returns deployed registrations to storage while retaining ownership, fuel, durability, authorized drivers, plate, and wreck history.
Driver access and controls
Owners can lock/unlock, manage authorized drivers, transfer ownership, inspect status, and use definition-supported headlights, horns, sirens, and other equipment. A locked vehicle refuses unauthorized drivers; ownership transfer should be tested with the vehicle safely stored.
Cars and boats use forward/reverse throttle and gradual steering. Planes require sufficient speed for pitch authority and restrict exit until landed and nearly stopped. Helicopters use pitch/bank plus ascend/descend controls and likewise restrict airborne exit. /vehicle on and /vehicle off control the powered state from the driver's seat.
All movement is server-authoritative. Definitions specify mass, acceleration, drag, steering, dimensions, seats, durability, fuel, rendering provider, sounds, and features. Changing a definition affects behavior; it does not turn existing title copies into separate registrations.
Fuel, damage, wrecks, and repair
Fuel and durability are persistent registration state. Damage respects the vehicles-damage WorldGuard flag and configured protections. When durability reaches zero, the vehicle becomes a wreck and emits the public destruction event; Fire may create a fuel-scaled logical fire if that integration is enabled.
Repair parts are chosen from the configured easy/expensive pools and apply their configured percentages, each capped at 25%. Exact Oraxen or native identities are resolved by the item provider. Test repair at several durability levels and make sure the intended economy/crafting path controls part supply.
Hijacking and police use
Hijacking is governed by configuration, permissions, ownership/lock state, and the vehicles-hijack region flag. Horns, sirens, entry, spawning, and damage each have independent WorldGuard flags, allowing garages, dealerships, quiet zones, restricted airfields, and government compounds to use different policies.
With Justice active, police can place a cuffed suspect into the nearest free passenger seat and remove them while preserving custody state. This is a custody bridge, not a grant of vehicle ownership or driver access.
Definitions, models, and recipes
Each file under vehicles/ is one independently configurable model. The stock fleet is seeded only for a brand-new data folder; deleting one definition later is treated as an intentional removal and it is not silently regenerated. ModelEngine and Oraxen visuals use configured IDs, while native item-display assemblies remain the fallback.
Recipes support shaped, shapeless, furnace, blasting, smoking, campfire, and stonecutting forms. Recipe output is a secure registration title. Copied title items cannot redeem the same database token twice.
Vehicle testing checklist
- Build one garage of each enabled type and test title redemption, deployment, storage range, and type mismatch.
- Test owner, authorized driver, unauthorized player, lock state, transfer, and server restart.
- Drive representative car, boat, plane, and helicopter definitions through stop, reverse, turning, exit restrictions, and chunk boundaries.
- Test each WorldGuard flag in allow and deny regions.
- Consume fuel, apply damage, repair with each pool, and destroy a vehicle with and without Fire installed.
- Test native, Oraxen, and ModelEngine definitions actually used in production.
- With Justice active, load/unload a cuffed passenger and confirm custody remains intact.
- Use the administrative spawn, grant, and force-store actions only on staging before granting their permissions to staff.
03
Commands
| Command | Usage | Description | Permission |
|---|---|---|---|
/vehicleAliases: car, plane, helicopter, boat | /vehicle <on|off|lock|unlock|info|drivers|transfer|headlights|siren|admin|reload> | Control and manage vehicles. | Subcommand-based |
04
Permissions
| Node | Default | Description / children |
|---|---|---|
vehicles.use | No additional description. | |
vehicles.craft | No additional description. | |
vehicles.garage.use | No additional description. | |
vehicles.garage.create | No additional description. | |
vehicles.driver.manage | No additional description. | |
vehicles.transfer | No additional description. | |
vehicles.hijack | No additional description. | |
vehicles.mechanic | No additional description.Includes vehicles.repair, vehicles.diagnose | |
vehicles.repair | No additional description. | |
vehicles.diagnose | No additional description. | |
vehicles.police | No additional description. | |
vehicles.admin | Full Vehicles access. Operators receive this parent automatically.Includes vehicles.use, vehicles.craft, vehicles.garage.use, vehicles.driver.manage, vehicles.transfer, vehicles.hijack, vehicles.mechanic, vehicles.police, vehicles.reload, vehicles.edit, vehicles.admin.spawn, vehicles.admin.grant, vehicles.admin.store, vehicles.admin.despawn, vehicles.admin.delete, vehicles.garage.create, vehicles.bypass | |
vehicles.reload | No additional description. | |
vehicles.edit | No additional description. | |
vehicles.admin.spawn | No additional description. | |
vehicles.admin.grant | No additional description. | |
vehicles.admin.store | No additional description. | |
vehicles.admin.despawn | No additional description. | |
vehicles.admin.delete | No additional description. | |
vehicles.bypass | No additional description. |
Command and permission references reflect the current plugin.yml manifests in this workspace.