Skip to content
Navaronee

How to make your own vehicle

This guide shows, from scratch, how to put a car, motorcycle, truck, helicopter or speedboat you made into Nav’s Motors. You don’t need to know how to code. You draw the model in Blockbench, paint the texture, and the rest is done with the Creator Kit commands and a few text files.

Take it easy and go in order. Every step ends with you seeing the result in the game, so if something goes wrong you know exactly which step it was.

If you want to see a whole pack working before you start, download the Kombosa pack. It uses almost everything this guide explains, and you can open its files and compare them with yours.

  1. Minecraft 1.21.1 with NeoForge, and inside the mods folder:
    • Nav’s Motors (and what it needs: Navaronee Core and GeckoLib);
    • Nav’s Motors: Creator Kit.
  2. Blockbench (https://www.blockbench.net), to make the model and the texture. It’s free and doesn’t need a plugin.
  3. A text editor to work on the .json and .txt files. Notepad works, but Notepad++ (https://notepad-plus-plus.org) colors the text and really helps you not miss a comma.

The Kit is only for you, the one creating. Whoever plays with your vehicle doesn’t need it: the pack you make runs with just Nav’s Motors, and it runs on both 1.21.1 and 1.20.1.

Everything happens inside the Minecraft folder, the one with the mods folder. In the official launcher it’s .minecraft: press Windows + R, type %appdata%\.minecraft and hit Enter. In CurseForge, Prism and similar, it’s the instance folder.

Inside it, the Kit uses:

Where What it is
navmotors\criador\ Your packs, each one in its own folder. The game reads from here directly, no packaging needed.
navmotors_criador.txt The file where you adjust wheels, seats, steering wheel and everything else with the game open (step 7).
navmotors\criador\export\ Where /navcriador exportar saves the adjusted spec (step 8).
navmotors\prontos\ Where your pack’s .jar ends up when you package it (step 14).

Every Nav’s Motors vehicle belongs to a category. The category decides what it does: whether it’s a car, motorcycle or helicopter, whether it has a bed, whether it pulls a trailer, how it drives.

Your vehicle is a new model inside a category. It drives and works just like the others in the category, only with the design, texture, sound and numbers you choose. At the Vehicle Lift, the player picks the category and then flips through the models with the little arrows until they get to yours.

For now you can make vehicles in these categories:

In the command In the game Mod vehicle in this category
comum Regular cars Regular car (the everyday kind: a Beetle, Gol or Uno fits here)
cargas_leves Light cargo Pickup
esportivo Sports cars Convertible
muscle Muscle cars Naverick
offroad Off-road Jeep
hotrod Hot rods Rat Rod
caminhao Trucks Truck
cruiser Cruisers Rarley Navidson
sportbike Sportbikes Navasaki
trail Trail/motocross Tornado
helicoptero Helicopters Helicopter
lancha Speedboats Motor Boat

Tow trucks, machines, planes, ultralights, cargo helicopters, steamboats and trailers aren’t open to packs yet.

A pack is the folder that holds your vehicles. A pack can have as many vehicles as you want, and you can have several packs, for example one just for muscle cars and another just for pickups.

Join a world and type in chat:

/navcriador criarpack joaoMuscles

Swap joaoMuscles for your pack’s name. Use only letters, numbers and _, no spaces and no accents. In the mods menu the name shows up the way you wrote it (“Nav’s Motors: joaoMuscles”); in the folders it’s all lowercase (joaomuscles), because Minecraft doesn’t accept uppercase there.

The command creates the navmotors\criador\joaomuscles\ folder with this inside:

joaomuscles\
├─ META-INF\ the pack data (name, version, author), in two files: one for 1.21.1 and one for 1.20.1
├─ pack.mcmeta tells Minecraft the folder has textures and data
├─ logo.png the pack logo (it's a placeholder: swap it for a square image of yours, 128x128 looks good)
├─ paleta\ the colors the bodywork can use (step 4)
├─ LEIA-ME.txt a summary of this guide
├─ assets\joaomuscles\ will get the model, the texture, the animation and the sounds
└─ data\joaomuscles\ will get each vehicle's spec

Whoever creates the pack already has it selected. The commands in the next steps always apply to the selected pack.

  • To see which one is selected: /navcriador packatual
  • To switch packs: /navcriador selectpack and press Tab to see your packs.

Want to change the author, version or description? Open the two files in META-INF in the text editor (the neoforge.mods.toml and the mods.toml) and change the authors, version and description lines in both. The author shows up at the lift, under the vehicle’s name.

With the pack selected:

/navcriador novo opalao muscle

opalao is the vehicle’s name (same rules as the pack name) and muscle is the category (press Tab to see the list). The game replies with three paths: where to save the model, the texture and the animation. Write them down or leave the chat open.

The command doesn’t create any design. It sets up the folders and the vehicle’s spec, which lives in data\joaomuscles\navmotors\models\opalao.json:

{
"category": "navsmotorsinc:naverick",
"geo": "joaomuscles:geo/vehicle/opalao/opalao.geo.json",
"texture": "joaomuscles:textures/vehicle/opalao/opalao.png",
"animation": "joaomuscles:animations/vehicle/opalao/opalao.animation.json"
}

These paths start with the pack name and follow the folders in assets\joaomuscles\. For example, joaomuscles:textures/vehicle/opalao/opalao.png is the file assets\joaomuscles\textures\vehicle\opalao\opalao.png.

Now close the game and open it again. A new vehicle only shows up after you reopen once; after that almost everything changes with the game open.

Set up a Vehicle Lift, pick the Muscle cars category and flip through the models until “Opalao” shows up. It’ll look like the Naverick: while your model and texture don’t exist, the game shows the category’s vehicle in their place. That’s normal.

  1. In Blockbench: File > New > Bedrock Entity. Put the vehicle’s name in the name field.
  2. Build the vehicle out of cubes. A few rules that make everything fit:
    • The front of the vehicle faces Blockbench’s north (the side marked N, which is negative Z).
    • 16 pixels are 1 block. The ground is at height 0.
    • Don’t draw the wheels or the steering wheel. The player puts both on at the lift and the game draws them by itself. Draw only the wheel well (the fender).
    • You don’t need to get the size and position perfect here: in step 7 you move and scale the whole body with the game open. But the closer it is to the size of the category’s vehicle, the less work later. You can compare in the game, with the category’s vehicle next to it.
  3. Organize the parts into bones (the folders in the element list, Add Group). The bone name matters in two cases: a part that moves by itself (table right below) and a part that dents in a crash (step 12). The rest can be named whatever you want.
  4. Save with File > Export > Export Bedrock Geometry, to the model path the command showed: assets\joaomuscles\geo\vehicle\opalao\opalao.geo.json.
  5. Also save the project (File > Save Project, which makes a .bbmodel) so you can open it again later. You can leave the .bbmodel in the same folder: it doesn’t go into the pack.

If your vehicle has one of these parts and you want it to work like the one on the category’s vehicle, use the same bone name:

Category Bone What happens
Sportbikes Fork The handlebar and the front wheel turn together when you steer.
Trail/motocross fork Same thing.
Cruisers volante Same thing.
Cruisers mala Only shows up when the player installs the Saddlebag.
Motorcycles pezinho The kickstand, which drops when the bike is stopped.
Light cargo back The tailgate, which opens and closes.
Light cargo grade and back2 Only show up when the player installs the Wooden Rack.
Hot rods capota The roof, which shows up and disappears with the O key.
Trucks escapamento_esquerdo and escapamento_direito The smoke comes out of their top end.

The helicopter draws its rotors by itself, so you don’t need bones for them.

A part that opens and closes your own way (door, roof, lid) can also be done, with an animation and a key: that’s step 11.

Step 4: paint the texture with the palette

Section titled “Step 4: paint the texture with the palette”

The Nav’s Motors texture is painted flat, no shading and no noise detail, using only the palette colors. The grain, the seat stitching and the chrome shine are done later by the paint command (step 6), and that way your vehicle ends up with the same look as the mod’s vehicles.

  1. In Blockbench, go to the Paint tab. In the color panel, import the palette: the paleta\cores-veiculos.gpl file in your pack.
  2. Paint each part with its color, flat:
Color Code Where to use it
Body (Lataria) f3eee2 The whole body: hood, doors, roof, fenders, lid. It’s the color the Paint Gun paints.
Body trim (Friso da lataria) e6ddc9 Crease lines, door or lid outlines and grilles drawn on the body. It gets painted along with Body, but comes out darker, so the line doesn’t disappear.
Chrome (Cromado) c0c0c0 Bumper, grille, trim, door handle. It gets pushed toward lighter.
White (Branco) ffffff Lettering, license plate, glass reflection. Gets no grain.
Mirror (Espelho) c8eee9 Rearview mirror glass.
Seat (Banco) 71675f Seat and backrest. The command draws the stitching on top.
Interior (Interior) 4c4c4c Dashboard, inside of the doors, floor.
Graphite (Grafite) 323232 Rear window, dark parts.
Black (Preto) 1a1a1a Rubber, black stripe, wheel well.
Gray (Cinza) 838383 Plastic, bolts, wipers.
Taillight (Lanterna traseira) a22b2b The red of the taillight.
Headlight and turn signal (Farol e pisca) f8af00 The yellow of the headlight and turn signal.

The palette has a few more colors; each one’s name shows up when you hover the mouse over it in Blockbench.

  1. You can use colors that aren’t in the palette. They get grain like the others, they just don’t get painted by the Paint Gun.
  2. Save the texture to the path the command showed: assets\joaomuscles\textures\vehicle\opalao\opalao.png. In Blockbench, right-click the texture and use Save As.

Window glass is transparent, with the reflection in two spots (two little white squares on the diagonal in each). Avoid pixel checkerboards: they look ugly in the game.

Saved the model or the texture? In the game, press F3 + T. The game reloads and your vehicle shows up with the new design. It works for model, texture, animation, sound and name.

Changed the spec (the .json in data)? Then you have to close and open the game.

If the vehicle still looks like the category’s vehicle after F3 + T, the file isn’t in the right path or it has a different name. Check it letter by letter against what /navcriador novo showed.

With the flat texture in place:

/navcriador pintura opalao

It does four things:

  1. Keeps your flat texture as opalao_flat.png.
  2. Writes the final texture to opalao.png: with grain, seat stitching and the chrome pushed toward lighter.
  3. Creates opalao_paint.png and opalao_paint_grain.png, which tell the Paint Gun where to paint and how to keep the grain on top of the color.
  4. Adds those two images to the vehicle’s spec (the "paint" line).

Press F3 + T to see the new texture. For the Paint Gun to work on the vehicle, close and open the game once (because the spec changed).

The seat stitching comes in three styles. The default is costuras; you can ask for the others at the end of the command:

/navcriador pintura opalao gomos
/navcriador pintura opalao contorno

This is the most important part of the step: after the first time, the file you edit is opalao_flat.png, the flat texture. opalao.png became the final texture and the command writes over it every time. Changed something in the paint? Open opalao_flat.png, paint, save and run /navcriador pintura opalao again.

The command warns you in chat if there’s a color outside the palette and if it didn’t find any Body pixel (then the Paint Gun has nothing to paint).

Step 7: adjust wheels, seats and everything else with the game open

Section titled “Step 7: adjust wheels, seats and everything else with the game open”

With the Kit installed, as soon as you join a world the navmotors_criador.txt file shows up in the Minecraft folder. It has every number for every vehicle in your packs, split by vehicle and by topic, with an explanation at the end of each line. Like this:

# ============================================================
# OPALAO (joaomuscles:opalao)
# ============================================================
# ---------- Rodas ----------
# > Rodas · eixo 1 (o primeiro do arquivo)
joaomuscles:opalao.wheel.0.x=8.5 # side (px): − left, + right
joaomuscles:opalao.wheel.0.y=-1.0 # height (px): + up, − down
joaomuscles:opalao.wheel.0.z=15.0 # front/back (px): + forward, − back
  1. Open the file in the text editor, with the game open.
  2. Change a number and save (Ctrl + S).
  3. Within half a second the game changes, and “[criador] valores aplicados” shows up on screen.

Change one number at a time and look at what happened. The explanation after the # is just for you; you can keep it or delete it.

Measurements are in model pixels: 16 pixels are 1 block. x is sideways, y is up and z is forward.

The K key shows the vehicle’s boxes in the game, each type in a color: the crash one, the green one (where you click to get in), the click ones (hood, door, cargo boxes). When you change a box number in the file, they light up by themselves for a few seconds, even with K off.

The topics in the file, in order:

Topic What it adjusts
Body (Lataria) Where the design sits and its size (body), and the overall size (chassis_scale), which scales body, wheels, seats and engine together. Start here.
Wheels (Rodas) The position of each axle and the size of the wheels. The right side copies the left by itself.
Seats (Bancos) Where each one sits. Seat 1 is the driver’s.
Steering wheel (Volante) Position, rotation and size of the steering wheel.
Cargo boxes (Caixas de carga) Only in Light cargo: where each box shows up and where the player clicks to put things in and take them out.
Door (Porta) Where the player clicks to open the part that opens (step 11).
Get in (Entrar) The green box, where the player clicks to get in. You can move it forward and back and make it taller (the bottom stays on the ground).
Engine bay (Cofre) The engine that shows up with the hood open, the kit parts around it and where you click to open the hood.
Exhaust (Escapamento) Where the smoke comes out.
Lights (Luzes) The headlights and where the light comes from.
Crash (Batida) The boxes that hit blocks and other vehicles.
Refueling (Abastecimento) Where the Gas Pump nozzle and the Fuel Can touch, and the fuel door.
Driving (Dirigir) Grip in corners, how much the rear slides, donuts and the weight when running things over.
Lift and JEI (Elevador e JEI) How the vehicle shows up in the lift preview and in JEI.
Category parts (Peças da categoria) What only the category has: the rider on motorcycles, the helicopter’s rotor and tail, the animal ramp on the pickup and the rest.

If you changed a number and nothing happened, check that you saved and that the line’s name is still exactly the same. A line with the wrong name is ignored without a warning. If you want to start the file from scratch, delete it and join the world again: it comes back with the current values.

navmotors_criador.txt only counts while you’re creating. For the numbers to go into the pack, save the spec:

/navcriador exportar opalao

The game saves the whole spec, with everything you adjusted, to navmotors\criador\export\joaomuscles\opalao.json. It never deletes a previous export: if one already exists, the new one comes out as opalao_2.json, opalao_3.json and so on.

Copy that file over data\joaomuscles\navmotors\models\opalao.json in your pack, and close and open the game. Now the numbers are in the pack.

When you drive, the dashboard shows the vehicle seen from above, with the health of each piece of the body. For that picture to be of your vehicle, and not the category’s:

/navcriador silhueta opalao

Press F3 + T and get in the vehicle to see it. Run it again whenever you change the model’s shape or the texture.

Inside the vehicle’s spec you can add a "spec" block with the numbers for how it drives. For example:

"spec": {
"power": 30,
"time_to_max": 15,
"drivetrain": "rwd",
"health": 150
}
Field What it changes
power The top speed.
time_to_max How many seconds it takes to reach top speed. Lower means it pulls harder off the line.
drivetrain Which wheels drive: rwd (rear), fwd (front) or awd (all four).
health How much crashing it can take.
grip How well it holds in corners.
breakaway How much the rear slides. Higher slides more.
impact_mass The weight when crashing and running things over.
fuel_capacity The size of the tank.
steer_angle How far the wheels turn in a corner.
camera_distance How far away the camera sits.
horn The horn sound.

Each category has a minimum and a maximum for these numbers. If you go past them, the game uses the limit and warns you in the log (see “Something went wrong?” at the end).

The Kombosa, for example, is a lot slower than the pickup and has rear-wheel drive: "power": 15.3, "time_to_max": 100, "drivetrain": "rwd".

Step 11: what your vehicle has and doesn’t have

Section titled “Step 11: what your vehicle has and doesn’t have”

The category already comes with everything its vehicles do. In the "features" block of the spec you turn those things on, off and change them. Whatever you don’t put in stays the same as the category.

Field What it does
"upgrades": false The vehicle doesn’t accept any upgrade. Or a list of items it refuses: "upgrades": ["navsmotorsinc:wooden_rack"] (the Wooden Rack).
"open_top": true The passenger can shoot standing up, like in a convertible.
"dual_exhaust": true Smoke coming out of two pipes.
"towable": false The tow truck can’t tow it.
"steering_wheel" The steering wheel it comes off the lift with, for example "navmotors_kombosa:volante_utilitario".
"wheel" The wheel it comes off with: {"rim": "car_orbital_kombosa", "tire": "regular_car_tire"} (the rim and the tire).
"engines" The engines it accepts at the lift, for example ["navmotors_kombosa:motor_boxer"].
"animations" Animations that play by themselves: {"loop": "ventoinha"} always plays, {"moving": "balanco"} only while moving. The name is the animation’s name in Blockbench.
"part" A part that opens and closes with the O key (door, roof, lid). Explained right below.

It’s what the Kombosa’s side door uses. You need:

  1. A bone with the part in the model (on the Kombosa, the porta bone).
  2. Two animations in Blockbench, saved in the vehicle’s animation file (assets\joaomuscles\animations\vehicle\opalao\opalao.animation.json): one that opens and one that closes. The opening one ends with the part open and stays still there.
  3. In the spec’s "features":
"part": {
"open": "open_sidedoor",
"close": "close_sidedoor",
"hud_open": "hud.navmotors_kombosa.abrir_porta",
"hud_close": "hud.navmotors_kombosa.fechar_porta",
"sound_open": "navmotors_kombosa:kombosa.porta_abre",
"sound_close": "navmotors_kombosa:kombosa.porta_fecha",
"box": [-10.0, 12.7, 0.6, 3.0, 14.7, 13.5]
}
Field What it is
open, close The names of the two animations.
hud_open, hud_close The text that shows up on screen (the lines go in the language file, step 13).
sound_open, sound_close The opening and closing sound (optional, step 13).
box Where the player clicks, from outside, to open it: center x, y, z and then width, height and length, in pixels. Adjust it live in the “Door” topic of step 7 and export.

To turn off a part the category has and your vehicle doesn’t: "part": false.

Field What it does
"tailgate": false No tailgate.
"animals": false Doesn’t carry animals.
"motorcycle": false Doesn’t carry a motorcycle.
"boxes" The cargo boxes (up to 8): how many, where you put things in and where they sit.

The Kombosa’s boxes look like this: 7 boxes, 3 inside (only with the door open) and 4 on the roof rack (always reachable):

"boxes": {
"count": 7,
"access": "part",
"open": [3, 4, 5, 6]
}

access says how you get to the boxes: "part" is through the part that opens (the door), "tailgate" through the tailgate. open is the list of boxes you can always reach, counting from 0. Where each box shows up and where you click on it, you adjust live (the “Cargo boxes” topic) and exporting saves it.

Field What it does
"fits_pickup": false The motorcycle doesn’t go up into the pickup’s bed.
"saddlebag": false Cruisers only: no Saddlebag.

The Kombosa’s spec (data\navmotors_kombosa\navmotors\models\kombosa.json in its pack) has almost all of this together. Open it and compare it with yours.

Step 12: parts that dent and a hood that opens

Section titled “Step 12: parts that dent and a hood that opens”

In a crash, the bumper bends, the headlight breaks, the mirror falls off. For that to work on your vehicle, it needs bones with the names the crash system knows, and two files saying how much each part can take and how it bends.

The modelo folder comes with this guide. Inside it:

  • modelo.geo.json: a car made of boxes, with the right bones. Open it in Blockbench to see the names and where each one goes. The boxes are just markers.
  • modelo_batidas.json: how much crashing each part can take.
  • modelo_batidas.animation.json: how each part bends.

The bone names:

parachoque_dianteiro parachoque_traseiro grade_frontal capo
paralama_dianteiro_esquerdo paralama_dianteiro_direito
paralama_traseiro_esquerdo paralama_traseiro_direito
retrovisor_esquerdo retrovisor_direito porta_esquerda porta_direita
tampa_traseira escapamento farol_esquerdo farol_direito
lanterna_esquerda lanterna_direita

Left and right are from the point of view of someone sitting inside, looking forward.

To use them:

  1. In your model, put each part inside the bone with its name (the front bumper inside parachoque_dianteiro, and so on). A part you don’t have, you don’t need.
  2. Copy modelo_batidas.json to assets\joaomuscles\batidas\opalao.json.
  3. Copy modelo_batidas.animation.json to assets\joaomuscles\animations\vehicle\opalao\opalao_batidas.animation.json.
  4. In both files, delete the lines for the bones your vehicle doesn’t have.

In the opalao.json in the batidas folder:

  • vida is how much crashing the part can take before it falls off, from 0 to 100. Above 100 it never falls off.
  • quebra are the windows that crack, each one with the damage at which it breaks ("vidro_lat_esq": 60).
  • lanternas and fios are the list of lights that end up hanging by the wire.
  • apaga are the headlights that go out, each one with the damage at which it goes out ("farol_esquerdo": 70).
  • so_pra_fora is the list of parts that only come loose outward.

Notice that vida, quebra and apaga are { "osso": número }, with curly braces, and lanternas, fios and so_pra_fora are [ "osso", "osso" ], with square brackets. If you mix one up with the other, crashes on that vehicle don’t work.

In opalao_batidas.animation.json, each crash (batida_frente, batida_traseira, batida_esquerda, batida_direita) has two frames: the first is the part dented and the second is it wrecked. batida_solto is how much the loose part swings. You can open and edit this file in Blockbench, in the Animate tab.

If your vehicle has the capo bone, the capo_aberto animation (which already comes in the crash file) shows it fully open, and the game opens and closes it smoothly. Change the rotation in that animation so your hood opens right; on the Kombosa, which has the engine in the back, the “hood” is the rear lid and it opens the other way.

Where the player clicks to open the hood, you adjust live, in the “Engine bay” topic of step 7.

It goes in the language files, which /navcriador novo already created:

  • assets\joaomuscles\lang\pt_br.json (Portuguese)
  • assets\joaomuscles\lang\en_us.json (English)
{
"model.joaomuscles.opalao": "Opalão"
}

The texts for the part that opens (the hud_open and hud_close from step 11) go here too. Changed it? F3 + T.

First the sounds, which are the same for both ways below:

  1. The files in mono .ogg (stereo sound doesn’t get quieter with distance in Minecraft), in a folder like assets\joaomuscles\sounds\engine\opalao\:
    • start.ogg: the startup;
    • stop.ogg: shutting off;
    • rpm1.ogg, rpm2.ogg, rpm3.ogg…: the engine at each RPM, from lowest to highest. Each one is a loop, a sound whose end joins its beginning without a click.
  2. The assets\joaomuscles\sounds.json giving a name to each file. Copy the Kombosa’s and change the names: each name is whatever prefix you choose plus .start, .stop, .rpm1… (on the Kombosa, engine.boxer.rpm1 and so on).

Now, the easiest way: a "sound" block in the vehicle’s spec. With it the vehicle has that sound with any engine:

"sound": {
"prefix": "joaomuscles:engine.opalao",
"rpm": [930, 1350, 1750, 2200, 2593],
"pitch": [1.0, 1.25],
"startup": 4.0
}
Field What it is
prefix The start of the sound names in sounds.json, with the pack name in front.
rpm The RPM of each rpm1, rpm2… in order.
pitch How much the sound pitches up: the first number always stays 1.0, the second is the maximum.
startup How many seconds start.ogg lasts.

The other way is to make a new engine, with an item, model and recipe, and have the sound come with it. That’s what the Kombosa does with the Boxer Engine:

  1. The engine in data\joaomuscles\navmotors\engines\v8.json: the same "sound" block from above, plus "base" (the mod engine it’s based on, where the power and the fuel come from, for example "inline_4"), "geo" and "texture" (the engine model, which shows up with the hood open and in your hand). Copy the Kombosa’s motor_boxer.json and change it.
  2. Its recipe at the Upgrade Workbench (data\joaomuscles\recipe\workbench\v8.json), the name in the language file and the item model. You can copy the Kombosa’s for these too.
  3. In the vehicle, "engines": ["joaomuscles:v8"] in "features", so it accepts that engine.

If the vehicle has both, the sound from the spec wins.

A steering wheel goes in data\joaomuscles\navmotors\steering_wheels\ and a rim in data\joaomuscles\navmotors\rims\. The Kombosa pack has one of each (the Utility Steering Wheel and the Orbital Rim); copy them and change them.

  • Steering wheel: the model in assets\joaomuscles\geo\item\steering\<nome>.geo.json and the .json in the steering_wheels folder pointing to it ("geo") and to the texture ("texture"). Plus the item model (assets\joaomuscles\models\item\<nome>.json), the name in the language file and the recipe at the Upgrade Workbench (data\joaomuscles\recipe\workbench\<nome>.json). Start the model from a steering wheel that already exists: its pivot is already in the center, where the wheel turns, and yours turns right.
  • Rim: the model in assets\joaomuscles\geo\wheel\rim\<nome>.geo.json. The game finds the model by the file name, so the .json in the rims folder has the SAME name and doesn’t point to the model: only "texture", "paint" (the mask for where the paint sticks), "classes" (which vehicles it fits, for example ["car"]), "iron" (how much iron the Tire Mounter uses) and "order" (its position in the Tire Mounter; higher than the last rim). The name in the language file is wheel.joaomuscles.rim.<nome>.

Every pack with its own items (engine, steering wheel) gets its own tab in creative mode.

When everything is ready:

/navcriador empacotar

The command checks the pack first. If something is broken (a spec that doesn’t open, a model or a texture that isn’t in place), it stops and shows what it is. If the paint or the dashboard picture is missing, it just warns you.

The .jar comes out in navmotors\prontos\, with the pack’s name and version (joaomuscles-1.0.0.jar). That’s the file you publish. Whoever uses it puts it in the mods folder, along with Nav’s Motors. It works on 1.21.1 and 1.20.1, and on a server it goes on the server and on the players, like any mod.

The .jar doesn’t include the flat texture (_flat.png), the Blockbench project (.bbmodel), the palette or the LEIA-ME. Those stay only in your folder.

Two more things:

  • To test the .jar in your own game, first take the pack folder out of navmotors\criador\. With both, the pack loads twice.
  • When you release a new version of the pack, bump the version in both META-INF files (from 1.0.0 to 1.0.1, for example). That way whoever downloads it knows it’s the new one.

Almost every problem shows up in the game log. Open logs\latest.log (in the Minecraft folder) in the text editor and search (Ctrl + F) for [Nav's Motors]. That’s where it shows what went wrong and in which file.

In the log What to do
falta 'category' The spec doesn’t have the "category" line.
categoria '...' não existe The category name is misspelled.
faltam 'geo' e/ou 'texture' One of these lines is missing from the spec.
End of input or Expected Typo in the .json: a missing comma, quote or } brace. Paste the file into https://jsonlint.com and it shows you the line.
nenhum banco com "driver": true In the seat list (seats), one of them needs to have "driver": true.
fora da faixa da categoria A number in spec went past the limit. The game used the limit.
Arquivo do modelo não encontrado The geo, texture or animation path doesn’t match the file. The game shows the category’s one instead.
Linha do tuning ignorada A line in navmotors_criador.txt has something that isn’t a number.

Other common problems:

What happens What to do
The vehicle doesn’t show up at the lift Did you reopen the game after /navcriador novo? Did you pick the right category and flip through the models with the little arrows?
The vehicle looks like the category’s The model or the texture isn’t in the right path (step 5).
The vehicle is purple and black The texture exists but has a problem: save it again as .png in Blockbench.
The Paint Gun doesn’t paint Did you run /navcriador pintura and reopen the game? Is the bodywork in the Body color (f3eee2)?
The paint disappeared after I edited the texture You edited opalao.png, and the command writes over it. Edit opalao_flat.png (step 6).
The pack doesn’t show up in the mod list Does the META-INF folder have both .toml files? Is pack.mcmeta in the pack folder?
The command says no pack is selected /navcriador selectpack and pick with Tab.
Command What it’s for
/navcriador criarpack <nome> Creates a pack and selects it.
/navcriador selectpack <pack> Switches the selected pack.
/navcriador packatual Shows the selected pack and its vehicles.
/navcriador novo <veículo> <categoria> Creates a vehicle in the selected pack.
/navcriador pintura <veículo> [costuras/gomos/contorno] Makes the final texture and the paint from the flat texture.
/navcriador silhueta <veículo> Makes the dashboard picture.
/navcriador exportar <veículo> Saves the spec with what you adjusted live.
/navcriador empacotar [pack] Checks the pack and builds the .jar.

In all of them, Tab completes the name. In the vehicle commands you can use just the name (opalao) when the vehicle is in the selected pack, or the full name (joaomuscles:opalao) for any pack.

  • The Kit and Nav’s Motors belong to Navaronee. Your vehicle is yours: your name goes in the pack’s authors.
  • Don’t put models, textures or sounds from Nav’s Motors vehicles, or from another mod, in your pack as if they were yours.
  • Sounds or models you got from someone else go with credit in a CREDITS.md inside the pack, like the Kombosa’s does.