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.
What you need
Section titled “What you need”- Minecraft 1.21.1 with NeoForge, and inside the
modsfolder:- Nav’s Motors (and what it needs: Navaronee Core and GeckoLib);
- Nav’s Motors: Creator Kit.
- Blockbench (https://www.blockbench.net), to make the model and the texture. It’s free and doesn’t need a plugin.
- A text editor to work on the
.jsonand.txtfiles. 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.
Where everything is
Section titled “Where everything is”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). |
How the mod thinks: category and model
Section titled “How the mod thinks: category and model”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.
Step 1: create the pack
Section titled “Step 1: create the pack”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 joaoMusclesSwap 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 specWhoever 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 selectpackand pressTabto 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.
Step 2: create the vehicle
Section titled “Step 2: create the vehicle”With the pack selected:
/navcriador novo opalao muscleopalao 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.
Step 3: make the model in Blockbench
Section titled “Step 3: make the model in Blockbench”- In Blockbench:
File>New>Bedrock Entity. Put the vehicle’s name in the name field. - 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.
- The front of the vehicle faces Blockbench’s north (the side marked
- 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. - Save with
File>Export>Export Bedrock Geometry, to the model path the command showed:assets\joaomuscles\geo\vehicle\opalao\opalao.geo.json. - Also save the project (
File>Save Project, which makes a.bbmodel) so you can open it again later. You can leave the.bbmodelin the same folder: it doesn’t go into the pack.
Bones the category moves by itself
Section titled “Bones the category moves by itself”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.
- In Blockbench, go to the
Painttab. In the color panel, import the palette: thepaleta\cores-veiculos.gplfile in your pack. - 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.
- 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.
- Save the texture to the path the command showed:
assets\joaomuscles\textures\vehicle\opalao\opalao.png. In Blockbench, right-click the texture and useSave 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.
Step 5: see it in the game
Section titled “Step 5: see it 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.
Step 6: the paint command
Section titled “Step 6: the paint command”With the flat texture in place:
/navcriador pintura opalaoIt does four things:
- Keeps your flat texture as
opalao_flat.png. - Writes the final texture to
opalao.png: with grain, seat stitching and the chrome pushed toward lighter. - Creates
opalao_paint.pngandopalao_paint_grain.png, which tell the Paint Gun where to paint and how to keep the grain on top of the color. - 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 contornoThis 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, + rightjoaomuscles:opalao.wheel.0.y=-1.0 # height (px): + up, − downjoaomuscles:opalao.wheel.0.z=15.0 # front/back (px): + forward, − back- Open the file in the text editor, with the game open.
- Change a number and save (
Ctrl + S). - 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.
Step 8: save what you adjusted
Section titled “Step 8: save what you adjusted”navmotors_criador.txt only counts while you’re creating. For the numbers to go into the pack, save the spec:
/navcriador exportar opalaoThe 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.
Step 9: the dashboard picture
Section titled “Step 9: the dashboard picture”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 opalaoPress F3 + T and get in the vehicle to see it. Run it again whenever you change the model’s shape or the texture.
Step 10: the spec (speed, power, weight)
Section titled “Step 10: the spec (speed, power, weight)”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.
For all categories
Section titled “For all categories”| 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. |
Part that opens with the O key
Section titled “Part that opens with the O key”It’s what the Kombosa’s side door uses. You need:
- A bone with the part in the model (on the Kombosa, the
portabone). - 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. - 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.
Light cargo
Section titled “Light cargo”| 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.
Motorcycles
Section titled “Motorcycles”| Field | What it does |
|---|---|
"fits_pickup": false |
The motorcycle doesn’t go up into the pickup’s bed. |
"saddlebag": false |
Cruisers only: no Saddlebag. |
Full example
Section titled “Full example”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 capoparalama_dianteiro_esquerdo paralama_dianteiro_direitoparalama_traseiro_esquerdo paralama_traseiro_direitoretrovisor_esquerdo retrovisor_direito porta_esquerda porta_direitatampa_traseira escapamento farol_esquerdo farol_direitolanterna_esquerda lanterna_direitaLeft and right are from the point of view of someone sitting inside, looking forward.
To use them:
- 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. - Copy
modelo_batidas.jsontoassets\joaomuscles\batidas\opalao.json. - Copy
modelo_batidas.animation.jsontoassets\joaomuscles\animations\vehicle\opalao\opalao_batidas.animation.json. - In both files, delete the lines for the bones your vehicle doesn’t have.
In the opalao.json in the batidas folder:
vidais how much crashing the part can take before it falls off, from 0 to 100. Above 100 it never falls off.quebraare the windows that crack, each one with the damage at which it breaks ("vidro_lat_esq": 60).lanternasandfiosare the list of lights that end up hanging by the wire.apagaare the headlights that go out, each one with the damage at which it goes out ("farol_esquerdo": 70).so_pra_forais 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.
Hood that opens
Section titled “Hood that opens”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.
Step 13: name, sound and your own parts
Section titled “Step 13: name, sound and your own parts”The vehicle’s name
Section titled “The vehicle’s name”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.
Your own engine sound
Section titled “Your own engine sound”First the sounds, which are the same for both ways below:
- The files in mono
.ogg(stereo sound doesn’t get quieter with distance in Minecraft), in a folder likeassets\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.
- The
assets\joaomuscles\sounds.jsongiving 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.rpm1and 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:
- 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’smotor_boxer.jsonand change it. - 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. - In the vehicle,
"engines": ["joaomuscles:v8"]in"features", so it accepts that engine.
If the vehicle has both, the sound from the spec wins.
Steering wheel and rim
Section titled “Steering wheel and rim”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.jsonand the.jsonin thesteering_wheelsfolder 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.jsonin therimsfolder 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 iswheel.joaomuscles.rim.<nome>.
Every pack with its own items (engine, steering wheel) gets its own tab in creative mode.
Step 14: package it
Section titled “Step 14: package it”When everything is ready:
/navcriador empacotarThe 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
.jarin your own game, first take the pack folder out ofnavmotors\criador\. With both, the pack loads twice. - When you release a new version of the pack, bump the
versionin bothMETA-INFfiles (from1.0.0to1.0.1, for example). That way whoever downloads it knows it’s the new one.
Something went wrong?
Section titled “Something went wrong?”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. |
The commands
Section titled “The commands”| 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 deal
Section titled “The deal”- 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.mdinside the pack, like the Kombosa’s does.