Building
Vehicles
A vehicle is a model that has been given a job. The model is still a model — the same cubes, textures and animations, edited in the same editor, listed in the same place — and converting it changes nothing about it. What you add is everything a model can't say on its own: where people sit, how it handles, which of its animations plays when, what it sounds like, and what comes out of its exhaust.
One model, one job
A model is geometry; a vehicle is that geometry plus a definition the editor keeps beside it. Convert a model and the model page gains a Vehicle card; revert it and the page loses the card but keeps the settings, so converting it again picks up where you left off. Nothing about the cubes is touched either way.
Making one#
- Make the model. Generate it, upload it or build it, exactly as on the Models page: a go-kart, a rowing boat, a biplane. Build it facing the front of the block (+Z), because that is the way it drives and the way its driver looks. Land, water and air all start life as an ordinary model.
- Convert it. On the model's page, the Vehicle button in the header opens the same dialog as right-clicking the model's card and choosing Convert to…. Converting drops you straight into the vehicle editor, because a vehicle with no driver seat does nothing at all in game.
- Give it a driver, then as much of the rest as it needs.
One click bones the bodywork and every rider and writes an animation for each state. Most vehicles are made this way.
The vehicle editor#
The model sits in the viewport with its seats, hitbox and effects drawn over it; everything else is in the panels beside it.
Moves through#
Land, water or air. The choice decides the physics:
| Medium | In game |
|---|---|
| Land | Falls, drives on blocks, steps up one like a player |
| Water | Floats on water; on land it drags |
| Air | Flies once it is going fast enough, sinks when it slows |
Handling#
| Setting | What it is |
|---|---|
| Speed | Top speed, in blocks a second. A kayak is about 6, a car 18, a plane 30 |
| Acceleration | How quickly it gets there, and how quickly it stops |
| Turning speed | Degrees a second at full lock |
| Weight | 1 to 100. Feel rather than physics: how it shoves mobs and how it settles |
| Jumps | A land vehicle that jumps on Space instead of braking — a dirt bike, a skateboard |
| Turns on the spot | Pivots where it stands without moving, for tracked things, hovercraft and diggers. Off for anything with wheels, a hull or wings |
| Size | How big the model stands, as a multiplier |
| Hitbox | Width, height and length in blocks: what you click to get in, and what stops it at a wall |
An air vehicle also has Flight: the speed it takes off at, how fast it climbs and dives, and how fast it sinks when it has stalled.
Crash damage#
The Vehicle status section is for servers that install the official
vehicle-status RP Engine addon. Turn it on to give each placed vehicle
persistent health and GTA-style crash behaviour. The calibration is automatic:
small knocks are free, damage in the lower half of health progressively reduces
performance, and a destroyed vehicle stops answering its driver. Weight and the
engine's resolved collision physics already make a lorry and a kart react
differently, so there is no second page of damage sliders to balance.
Durability controls structural toughness: 1 is standard, 2 halves damage to health, regions and parts, and 0.5 doubles it. It does not change mass or the physical shove from a collision — and it does not protect the passengers, who are hurt by the crash rather than by what the bodywork lost.
Detachable model parts come from the model. Named bones that RP Engine already builds as separate rig parts appear as checkboxes; there is no generic list of doors and bumpers. Only the checked bones may come off. While the detach picker is open, every checked bone is highlighted on the 3D model, including all geometry below a grouping bone. Mark any selected bone that is an actual wheel in the Wheel column: losing one then drops that corner and sharply reduces speed and steering. Wheel loss takes a harder impact than ordinary bodywork, and detached displays are cleaned up automatically.
A direct severe hit can tear off a wheel or panel immediately; damaged attachments can fail on a smaller follow-up impact. Loose parts keep the momentum of the crash and leave along the line from the contact out through the part, so two things lost in one shunt do not fly off as a pair, and then they tumble, fall and collide with the ground.
Where a crash landed decides what it broke, in fractions of the vehicle rather than in blocks — so "the front took it" means the same thing on a kart and on a lorry, and a hit on a lorry's nose does not reach its back axle. A collision with another vehicle is a real point, and a wall is a face: a car scraped along a wall damages its whole left flank rather than whatever happens to sit at the middle of it, because where along the wall it touched is not something the server can know.
Scrapes leave persistent marks on the collision shell, from a light graze to a black gouge, and the same place hit twice deepens the mark that is there. Fit the hitbox closely to the model: these are shell marks rather than a repaint of its texture, so a hitbox that is much bigger than the bodywork leaves them hanging beside it. They are hidden after part loss so they cannot float across missing bodywork.
What a crash costs#
Five switches, and each is a question about your server rather than about physics:
| Sparks, dust and metal on impact | At the exact point the physics resolved the hit. This is most of what makes a crash read as one |
| Smoke and fire from a wreck | Steam, then smoke, then flame — out of the quarter of the body in the worst state, so a driver can see which end to be careful with |
| Crashes injure the people aboard | Scaled to the crash rather than to what the bodywork lost, so a tough vehicle protects its paint and not its passengers. A crash twice as bad as one that rips the wheels off throws everybody through the windscreen |
| Water writes it off | A vehicle that is not a boat cannot drive in water whatever this says — the engine floods and it wallows to a stop. This is whether it is being destroyed while that happens: about three seconds in deep water, and nothing in a ford |
| Destroyed vehicles explode | It burns for a couple of seconds, throws everybody clear and goes up. No blocks are broken and nothing is set alight, but whoever is standing next to it gets hurt — which is why this is the one that starts off |
The optional status line is shown to every occupant. Leave it off for the GTA style, or turn it on while testing to see health above the hotbar. A server without the addon simply ignores this section; the resource pack itself cannot run vehicle health logic.
On the server, /vehiclestatus reads the damage on the vehicle you are in or
nearest — health, each quarter of the body, and every part that is damaged or
gone — and /vehiclestatus repair puts it right. Operators only.
Above about 20 blocks a second, look before you ship
A passenger's position is broadcast twenty times a second and their client fills in the gaps, which stops looking right above that. The driver holds up better, because steering is their own camera.
Riders#
One driver and up to seven passengers. Each seat has:
- Where it is, dragged in the viewport or typed as an exact position in the model's own pixels, so a saddle lands on the saddle.
- A pose, sitting or standing. A sitting seat's point is where the rider's backside goes; a standing one's is where their feet go.
- Which way it faces. Front is the default; a passenger can face backwards, and a skater stands side-on.
- Hide the rider, for a seat somebody occupies without being drawn.
- What they hold: a paddle, a wheel, handlebars. Name a part of the model and it follows the rider's hands through every animation, so the paddle is wherever the arms put it.
The driver steers; passengers ride. Anybody can get in by right-clicking the vehicle and out by sneaking.
Animations#
A vehicle's animations are the model's own, made in the editor's Animate mode or by AI, and the state map says which one plays when. Each state has a slot for the vehicle's animation and a slot for each rider, and the rider's is an emote: pose it on the vehicle from here, or make one for the state and come back.
| State | When |
|---|---|
| Airborne | Off the ground with nothing holding it up: a jump, a fall, an aircraft in flight |
| Turning | Swinging round faster than a nudge. Beats Moving, so a cornering vehicle plays this |
| Reversing | Travelling backwards |
| Moving | Travelling forwards |
| Idle | Stationary, or near enough that nobody can tell |
| In water | Its base is in the water and nothing above it applies. A moored boat is Idle, not this |
The list is in order of precedence: the first state that is true and has an animation is the one that plays. A state you leave blank falls through to the next one, so a vehicle with only Moving filled in plays its drive cycle while cornering too. Idle is the floor: leave it blank and a still vehicle plays nothing.
Changes of state are smooth. The engine crossfades from whatever the rig is showing into the next cycle and joins that cycle where the rig already is, so a wheel keeps its angle across moving, turning and reversing, and stays where it stopped when the vehicle does.
Animate with AI#
Rather than keyframing each state by hand, Animate with AI does the lot: it groups the model's cubes into bones (wheels, steering, rotor, paddle), puts a rider in every seat, and writes one looping animation per state for the bodywork and the people together — wheels rolling, a driver's hands on the wheel, a passenger holding on. Pick which states to animate, and tick Set it up too to have it plan the handling and the seats from the model as well. Run it again for one state to redo just that one; the others are kept.
Generation is a starting position
Look at it in game, then fix what is wrong. A head that turns too far, a wheel that rolls the wrong way: open the animation, move the keyframe.
Sounds#
A sound per state, so an engine can tick over at idle and work harder moving. Pick one from the pack or make a new one in the sound editor. In game the sound follows the vehicle rather than playing from the spot it was in when the state changed.
Effects#
Exhaust smoke, spray off a hull, a rotor's downwash. Each emitter has a particle effect, where on the model it is drawn, which states it plays in, and how much: count, spread, speed, how often, colour and size. Add as many as the vehicle needs.
Capes#
Riders' capes are put away while they are in the vehicle, or not — a cloak trailing off a motorbike is right, and off a go-kart it is a cape stuck through the seat.
Seeing it in game#
A vehicle reaches a server the way a model does, and needs RP Engine on that server:
- Push the pack to a server you have paired, or get the item with the model page's Give in-game button on the test server. See The plugin.
- Use the item to park the vehicle where you are looking. It stays where you left it.
- Right-click to get in. On Paper 1.21.4 and up, W and S drive, A and D steer, and Space is the handbrake — or the jump, for a vehicle that jumps. In the air, Space climbs and S descends. On older servers, right-click speeds up, left-click slows and reverses, and you steer by looking.
- Fix it from the game.
/rp editopens the vehicle in this editor from the server's own copy; Send writes it back. See Editing from the server.
What the plugin does with one: the chassis and seats it builds, driving on each server version, and the same vehicle written by hand as YAML.
What it becomes#
A resource pack can carry a model, but it has no way to say that the model is a vehicle: there is no field in a model for a seat. So the vehicle rides in the content manifest that goes with a pushed pack, alongside its sounds and screens, and RP Engine reads it from there. On the server it becomes an invisible chassis wearing your model, with an invisible seat for each rider, and the model's animations are played on the chassis by state.
That is also why a vehicle is a Studio-and-RP-Engine thing. The plain pack download, the Bedrock pack and the ItemsAdder and ModelEngine exports all carry the model, because it is a model; none of them carries the job.