Automated tests cover parsing and model loading. Anything involving the game itself is checked by hand with this plan before a pre-release is tagged.
./gradlew build, then copy the jar for the loader under test frombuild/release(mcheli-<loader>-<minecraft>-<version>.jar) into themodsfolder of a profile for that loader and Minecraft version, andMC1.7.10_mcheli_1.0.3.zipinto itsmchelifolder. Fabric also needs Fabric API. Alternatively run./gradlew :<loader>-<minecraft>:runClient, which imports the zip fromMod/.- Use a launcher profile with its own game directory. Mods for other loaders or Minecraft
versions in the same
modsfolder will prevent the game from starting. - Create a creative world with cheats enabled.
The phase checklists below were written on Forge and are run in full there. Every other jar gets the smoke test, which touches each piece of loader glue once.
Run this for each jar in build/release: Forge, NeoForge and Fabric on every Minecraft version.
- The game reaches the title screen. The log has
MCHeli Rework <version> on <loader>and nomchelierrors; on the first start it also hasImported ... filesfrom the zip. - The four MCHeli vehicle tabs list the vehicles with icons and names, after the vanilla tabs.
- Fly a helicopter (
ah-64): it takes off, banks and lands. In first person the view rolls with the hull and the eye sits in the cockpit; the hand is hidden in the pilot seat. - Other players and the rider model tilt with the hull (second player or F5).
- Drive a tank (
m1a2): it moves, the turret follows the view, the gun fires. - Fire a missile from a helicopter or jet: the use key fires without swinging the arm, the pick block key switches weapons, the weapon HUD draws, the missile hits and explodes.
- Right-clicking the hull outside the main hit box boards the vehicle (the arm swings).
- Engine and rotor sounds play. Also a content pack sound: the example pack has none, so give a workshop vehicle an OGG for its engine or a weapon and listen to it.
-
config/mcheli-client.tomlexists; settingnightGlow = falseand restarting removes the glow. - Join a dedicated server running the same jar: the server log has no
mchelierrors, the client downloads the server's content packs,/mcheli statusand/mcheli reloadwork,serverconfig/mcheli-server.tomlis in the world folder. - Crafting: an AH-6X can be crafted from an AH-6 and redstone (the vehicle ingredient), and the recipe book lists MCHeli recipes.
- A world made on Forge 26.3 with vehicles in it opens on NeoForge and Fabric 26.3 with the vehicles and items intact, and back.
- A client on the same loader as the dedicated server joins and downloads its packs. A client on another loader is refused by the loaders themselves, with a message naming the one it needs.
- A
serverconfig/mcheli-server.tomlwritten by 1.1.0-beta.2 (Forge) keeps its values.
- From the built jars on a launcher profile: all three loaders start, and thermal turns on and off.
- In a flight with real turns, banked right, the cockpit stays upright on screen and the horizon's right
side rises, on every heading and all three loaders. Held at a fixed bank in a driver this already
matches 1.21.1 (see
AircraftRotation.rollInXyzOrder); nobody has flown it. - Sight zoom works on all three loaders.
- A vehicle's recipe crafts on each loader, including one with gunpowder or feathers.
- "Respawn all" in the team manager sends a player to their bed, and to world spawn without one.
- From the built jars on a launcher profile: all three loaders start, and thermal turns on and off.
- A vehicle that turns on the spot stays where the server has it, seen from a second client.
- Inventory, cargo and a UAV station's item survive a world reload.
- F3+B outlines the hull boxes next to vanilla's box, and they follow a moving vehicle.
- The vehicle screen, drafting table and workshop textures sit where they should.
- The team manager's PVP button works, and PVP goes back to
server.propertiesafter a restart.
- From the built jars on a launcher profile: all three loaders start, which proves Fabric's remapped jar and its mixins, and thermal turns on and off.
- Vehicle parts are not inside out, from outside and from a seat.
- Sight zoom works on all three loaders, and rider pose and camera roll look right in a banked aircraft.
- A recipe with gunpowder or feathers crafts on Forge, here and on 1.21.1.
- From the built jars on a launcher profile: thermal on and off on all three loaders, and the drafting table places and draws on Fabric (its block entity type comes from Fabric API).
- Tracers and flares are hidden by a block between them and the camera, and show in front of one.
- Rider pose and the camera roll look right in a banked aircraft on all three loaders.
- The team manager lists the chat colours, and a new team takes the one picked.
- From the built jars on a launcher profile, not a dev run: the thermal view turns on and off on Forge (its setter is opened by an access transformer, which a dev run applies differently), NeoForge and Fabric.
- Rider pose and the camera roll look right in a banked aircraft on all three loaders.
- With Sodium and Iris for 26.2, tracers, flares and smoke look right (or note how they look).
- Vehicle icons show in the creative tabs and the hand (the kind model picks them by
custom_model_data); a pack vehicle shows the barrier. -
mcheli/imported/item_icons.propertiesexists, and the AH-6X recipe crafts an AH-6X with its icon. - Glow halos, tracers and the glow particle are additive and do not hide smoke behind them.
- A vehicle hit by a weapon wobbles (hurt time) and takes damage only once per hit.
- Smoke grenades show their own icons, in the hand and in the drafting table's result slot.
- The workshop's model turns, zooms and pans with its gizmos staying on the right parts.
- The team manager's PVP button works, and PVP goes back to
server.propertiesafter a restart. - With Sodium and Iris for 1.21.1, tracers, flares and smoke look right (or note how they look).
- The game reaches the title screen; the log contains
Loaded 33 helicoptersand nomchelierrors or warnings. - The MCHeli Helicopters creative tab lists 33 helicopters with icons and names.
- Switching the game language to Japanese shows the Japanese item names.
- Right-clicking a block with a helicopter places it facing the player's direction.
- The model is textured and the rotors are in the right place for:
ah-64,ah-6,uh-1c,ch47(tandem rotors),ka-52(coaxial rotors) andec665(OBJ model). - Right-clicking the helicopter seats the player on the pilot seat. A second player (or a second right-click from another account) takes the next seat.
- Shift leaves the helicopter.
- Punching in creative removes it. In survival it takes damage, flashes red, and drops its item when the HP runs out.
- Holding W spools the rotors up; the helicopter lifts off at roughly half throttle.
- S lowers the throttle and the helicopter descends.
- Moving the mouse forward pitches the nose down and the helicopter accelerates; back slows it.
- Moving the mouse sideways turns and banks; the camera rolls with the helicopter.
- A and D bank in the air and the bank levels out on release.
- Space toggles hover: the helicopter levels out and holds altitude, and W/A/S/D slide it.
- Holding Left Alt lets the player look around without steering; releasing it returns the view to the nose.
- Third person (F5) shows the helicopter from behind with matching roll and rotor spin.
- Landing on uneven ground does not bounce or sink into blocks.
- Leaving the helicopter in the air: the throttle winds down slowly, so it keeps climbing for about ten seconds, then sinks and comes to rest. This matches the original mod.
- Saving and reloading the world keeps the helicopter type, paint, HP and position.
- On a LAN or dedicated server, a second player sees the helicopter move smoothly, with the correct roll and rotor speed, while someone else flies it.
- The server log has no "moved too quickly" or "moved wrongly" warnings during normal flight.
- The log contains
Loaded 33 helicopters, 51 planes, 12 tanks and 16 vehiclesand nomchelierrors or warnings. A dedicated server (./gradlew :forge-26.3:runServer) starts as well. - Four creative tabs: helicopters (33), planes (51), tanks and cars (12), ground vehicles (16).
- The new key bindings show under Controls, category MCHeli, without conflicts.
-
f-35b,a-10,cessna172(propeller) andc5(OBJ, racks) place, render and take off at full throttle. Propellers spin with the throttle. - Mouse pitches, rolls and turns; A/D roll in the air and steer on the ground.
- Canopy on
f-35b: first click opens it, second boards, it closes after boarding. - B raises the gear above ten blocks and lowers it; it drops by itself on low throttle near the ground.
- V on
f-35btilts nozzle and rotors; the plane hovers and climbs vertically. - Z folds wings on a carrier plane (
fa18forf14dsweep) and sweeps them in flight. - Space twice ejects from
f-35b; the player floats down with slow falling. - A float plane (
us-2orh8k) lands and taxis on water.
-
m1a2drives with W/S, turns on the spot with A/D, reverses after braking with S, and stops with Space. - The hull tilts to follow slopes and steps up blocks; tracks and road wheels move, the track runs the other way when reversing.
- The turret and gun follow the view; the pilot views from the commander position.
- Left Alt swaps between looking around and looking along the hull.
- A car (
m1129orcentauro) needs to roll before it turns; wheels steer and spin.
-
mk15andbofors40mml60(OBJ) turn and elevate with the view, within their pitch limits. - The view sits at the gun's camera position.
- A second player boarding takes the next seat; R moves between free seats.
- A gunner seat (
ah-64front seat) views through its sight and keeps its pitch limits. - H cycles the pilot's camera positions on
bnr32, the one vehicle with several. - Seats survive a world reload with the same players in them.
-
m1a2next to thec5ramp: J drives it onto the rack, U drives it off. From thec5pilot seat, J loads nearby vehicles and U unloads them. - Engine sound plays for each kind, rises with throttle, and fades with distance.
- On a server a second player sees parts, wheels, tracks and turrets move.
- The log contains
Loaded 33 helicopters, 51 planes, 12 tanks, 16 vehicles and 229 weaponsand nomcheliwarnings. - Bank and loop a plane in third person (F5): the pilot tilts with the hull and stays inside the canopy. In first person the view stays in the cockpit while rolled.
-
ah-6: right mouse fires the M134 in a stream with muzzle flashes, ejected cases and its sound; middle mouse (or G) switches to the Hydra rockets, which leave a smoke trail and explode on impact. Shift with G goes back. - Survival: the readout counts ammunition down and reloads; when the reserve is empty, landed, Reload in the vehicle screen (I) with iron, gunpowder (and redstone where listed) in the inventory buys one resupply.
- Creative: ammunition shows as infinite.
-
f-35b: selecting the AIM-9X opens its weapon bay. Holding right mouse at a flying mob or a second aircraft shows "Locking" and fires once locked; the missile chases the target. -
ah-64gunner seat: Hellfire AT missiles lock on ground targets; X switches to top attack, which climbs and dives. -
ah-64gunner seat, AGM-114 TV: in [TV] mode the view rides the missile and steers it. - Bombs (
mk82ona-10orf-35b) fall from the aircraft with its speed and explode. -
m1a2: the main gun kicks the barrel back and rocks the hull; the turret gun follows the view. - The CBU-87 on
a-10splits into bomblets; a proximity fused round bursts near a target. - Machine gun rounds shoot through glass panes and tall grass.
- Shooting a parked vehicle reduces its hit points by the armour rules; it smokes below half and, at zero, explodes, burns, spins down (helicopters) and disappears after 25 seconds.
- A destroyed aircraft hitting the ground goes up in a fireball, with smoke columns, thrown up dust and burning debris; shot down while you fly it, it still crashes and explodes.
- Flying a plane into a hillside at speed, or two vehicles ramming each other fast, destroys them; a gentle bump does nothing. Landing a helicopter on its side damages it.
- Looking out of a canopy (
ah-6,f-35b) over water: the water shows through the glass. - Right-clicking any part of a long hull (
ac-130tail,ah-64boom) or from inside its cockpit boards it. - Punching an empty vehicle in survival gives its item back; with a player aboard it only takes damage.
- Death messages read "shot down by".
- C on a helicopter or plane with
FlareTypereleases flares; a missile locked on it is decoyed while they burn. The crew hears the warning sound while locked.
- A second player sees projectiles, muzzle flashes, turret aim and weapon bays.
- The gunner of a two seat helicopter fires their own weapons; while the gunner seat is empty the pilot can select them.
-
bnr32(Skyline GT-R): once rolling, A and D steer, forwards and in reverse; standing still it does not turn. The same forcentauro,growler,m1129andmxtmv. Tracked tanks (m1a2,t-90) still turn on the spot. -
Bank a helicopter to the right in first person: the view banks right with it and the horizon tilts the way it does from a real cockpit. With free look (Alt) held, looking out of the side while the nose pitches up tilts the view.
-
As a passenger or gunner (
ah-64,uh-1c) and as a tank driver on a slope, the view tilts with the hull. The TV missile camera stays level. -
Walk around and through parked vehicles (
f-35b,ah-64,m1a2,a-10) and look at thin panels (fins, rotor blades, mudguards): no surface flickers between two textures. -
Canopies (
ah-6,f-35b): the glass shows no flicker from either side, and water still shows through it. -
s-75: holding right mouse on a helicopter or plane flying more than 12 blocks up locks the SA-2 and fires it, close targets included. Targets lower than that cannot be locked by AA missiles, as in the original.
-
ac-130in level flight above 60 % throttle: H hands over to the autopilot. The plane levels off, holds its height and circles; the view moves to the side camera with the gunner HUD, and the mouse aims the side guns. A and D still turn the circle. - H again gives back the controls; the view returns to the cockpit.
- H on the ground, banked or at low throttle does nothing.
-
ah-64: H makes the helicopter hover while the pilot uses the gunner view and weapons. - A second player boarding the
ah-64gunner seat ends the pilot's gunner mode (noConcurrentGunnerMode); on theac-130(concurrent) it stays on.
- Shoot down a helicopter and a plane: where the wreck hits the ground it goes up in a big fireball with a climbing plume of smoke and burning debris, well beyond the old explosion.
-
bnr32: driving into a wall at full speed costs roughly a third of the hit points; a bump at walking pace costs nothing. Driving off a cliff of 10 blocks costs a little, 20 blocks most of it, more than 24 blocks wrecks the car with the crash fireball. -
m1a2: the same kind of wall hit costs the tank a far smaller share, because of its armour. - Driving off a cliff into deep water does no damage.
- The first person hand is hidden for the pilot of every vehicle, in gunner mode, on the S-75 and in gunner seats with weapons; a passenger without weapons still sees it.
- A new survival player opens the recipe book and finds the MCHeli vehicles (search "ah-6").
-
ah-6: iron blocks and ingots as in the recipe book craft the helicopter on a crafting table;ah-6xis crafted from anah-6and redstone. - A recipe with a dye (
macchi_mc72,a6m2) accepts the dye of that colour. - The log has no recipe parsing errors (checked on a dedicated server).
- The log contains
Loaded 19 HUD scriptsand noSkipping HUDerrors. -
ah-64pilot, first person: the helicopter HUD shows hit points, the weapon with its ammunition, altitude, the radar with green blips for animals and red ones for monsters, and the control stick moving with the mouse. Bank and pitch: the attitude lines follow. -
ah-64gunner seat: the gunner HUD with the camera frame; the small box follows the view. With the AGM-114 TV fired in [TV] mode, the TV missile HUD replaces it. -
f-35banda-10: the plane HUD with the heading tape and pitch ladder; holding fire on a target with the AIM-9X fills the lock indicator. -
oto76mm: the gun's heat gauge fills while firing. -
m1a2driver and gunner,bnr32driver: their own HUD textures (mbt_hud,mbt_gnr,bnr32_hud) draw at the right size. Thebnr32passenger (none) sees no HUD. - Hit points under 20 % turn the readouts red; reloading turns the ammunition red.
- F5 to third person: the HUD disappears and the plain readout of hit points and ammunition shows instead.
- F3 + T reloads the scripts without errors.
Use the built jar in a launcher profile, not runClient, since only that shows what players get.
- The jar is under 1 MB and holds no models, textures, sounds or definitions (see DEVELOPMENT.md, "Original content").
- Without
mcheli/in the game directory: the game starts, the log says the content was not found, the creative tabs are empty, and joining a world prints where to put the zip. - With the zip in
mcheli/: the first start logsImported 1141 files, 68 sounds, 130 item models and 108 recipes; the second start imports nothing. - Options, Resource Packs: "MCHeli Content" is listed as selected and cannot be removed.
- Vehicles show their textures and English (and, with the language set to 日本語, Japanese) names; the HUD, engine sounds and weapon sounds work.
- A new survival player finds the MCHeli recipes in the recipe book.
- Deleting the zip after the import: the next start still has every vehicle.
- A resource pack replacing
assets/mcheli/textures/helicopters/ah-64.pngwins over the import. - Dedicated server with the zip: clients with the zip join without a registry mismatch.
Run each section in single player and again on a dedicated server (./gradlew :forge-26.3:runServer, a client joining it), unless it says otherwise.
Keep a copy of a 1.0.0 world with vehicles parked in it, items in the hotbar and items in a chest.
- The first start of the beta logs
Importing MCHeli contentonce (importer format 2); the next start imports nothing. Noimported.oldorimported.tmpfolder is left behind. - The parked vehicles load, fly and keep their damage and ammunition.
- Hotbar items keep their icon and name, and within a second turn into the new item (F3 + H
shows
mcheli:helicopterand amcheli:vehiclecomponent). They still place the vehicle. - Items in the chest are the old ones until taken out, then convert. A renamed item keeps its name.
- Each creative tab lists every vehicle of its kind with the right icon and name, in both English and Japanese.
- Placing, packing up (punch an empty vehicle) and pick block (middle click) all give back the same vehicle.
- Crafting: the AH-6 recipe makes an AH-6; the AH-6X recipe from an AH-6 accepts only an AH-6, not another helicopter, and the recipe book shows the AH-6 in that slot.
- Two different helicopters never stack together.
-
/mcheliprints the counts (33 helicopters, 51 planes, 12 tanks, 16 ground vehicles, 229 weapons) and the folder./mcheli list tanklists the 12 tanks. -
/mcheli give @s ah-64 2gives two AH-64s; tab completion suggests vehicle names; an unknown name is refused. A non-operator on the server cannot usegiveorreload.
- Edit
run/mcheli/imported/assets/mcheli/helicopters/ah-64.txt(for exampleMaxHp = 1000), run/mcheli reload: chat confirms, and a placed AH-64 shows the new HP maximum without being replaced, and keeps its loaded ammunition. - Edit the AH-64 texture PNG,
/mcheli reload: the new texture shows without F3 + T. F3 + T afterwards still shows it, loaded the normal way. - Add a copy of a helicopter definition under a new file name,
/mcheli reload: it appears in/mcheli listand/mcheli give(its creative tab entry too, after reopening the inventory). Remove it again and reload: placed copies stay as wrecks of an unknown vehicle and do not crash the game. - A definition with a broken line still reloads; the line is reported in the log.
-
serverconfig/mcheli-server.tomlis created in the world folder with comments. -
explosions.breakBlocks = false: rockets and crashes no longer break blocks, but still hurt.startFires = false: incendiary hits leave no fire. -
vehicles.damageFactor = 0.5: a vehicle takes half the hits to destroy. -
vehicles.disabled = ["ah-64"]: placing an AH-64 fails with a message; other vehicles work. -
weapons.infiniteAmmo = true: a survival player never runs out. - Edits to the file apply without restarting the server.
-
./gradlew buildproducesbuild/release/mcheli-26.3-1.1.0-beta.1.jar; it holds no EMB4 file (DEVELOPMENT.md, "Original content").
Run each section in single player and again on a dedicated server, unless it says otherwise.
Set the time with /time set midnight and compare with /time set noon.
- Machine gun rounds trail a warm tracer at night; at noon only a faint shimmer shows.
- Rockets and missiles show a glowing motor behind them for their whole flight.
- A flare salvo lights up around each flare; smoke grenades do not glow.
- A rocket hit gives a short bright flash and a few embers; the smoke behind stays visible through the flash (no dark square or cut out).
- Shooting down a helicopter: a big flash when it hits the ground, then the wreck glows for several seconds and the embers thrown out glow as they fall.
- The wreck keeps burning (flames, glow, rising embers) for 30 seconds, dies down over the last five and then disappears. A boat wreck that sank does not glow under water.
- In a cave or under a roof at noon, the glow is as bright as at night.
- Nothing glows under water (torpedoes, rounds fired into water).
-
effects.nightGlow = falseinconfig/mcheli-client.toml: no glow at all, the rest of the effects unchanged. Another player on the same server still sees the glow. - Video settings, graphics set to Fabulous: the glow still draws and nothing crashes.
- A vehicle hit by rounds or a rocket no longer flashes red.
- Flying a plane or helicopter while another player (or a turret) shoots it: no jolt or stutter on each hit; the HP still goes down. Same driving a tank.
- A rocket exploding next to an empty parked vehicle rocks it slightly, much less than before.
Copy examples/rework-example-pack into <game dir>/mcheli/packs first.
- Single player: the Rework Scout is in the Helicopters tab (generic icon), places, renders
with its rotors turning and flies.
AddTexturecycles to the red rescue paint. -
/mcheli packslistsrework-example 1.0.0with 1 vehicle;/mchelishows 1 content pack. - Zip the pack folder and replace the folder with the zip: same result after
/mcheli reload. - Edit
rework-scout.txt(for exampleSpeed = 1.2),/mcheli reload: a Scout already in the world flies with the new speed without being picked up. - Break the pack: add a
test.jarat its top,/mcheli reload. The chat names the pack and the file, the Scout is gone, everything else still works. Remove the jar, reload, it is back. - Put
MaxHp = lotsin the definition: the chat names the file and line, the Scout still loads. - Dedicated server with the pack, client without it: on joining, the chat says one pack is
downloading, then ready; the Scout renders and flies for the client.
mcheli/cache/<hash>.zipexists on the client. Rejoin: no download this time. - A second client with the pack in its own
mcheli/packs: no download. - Client with a pack the server does not have: its vehicles are not in the tabs while connected.
- Server
packs.allowList = ["something-else"],/mcheli reload: the Scout disappears for everyone and operators are told why. Empty list again, reload: it is back for everyone. - Server
packs.maxPackSize = 1with a pack over 1 MB: the pack is left out and reported. - Client
packs.cacheSize = 16with a server pack over 16 MB: the chat says it is too large, nothing is downloaded and the game keeps running. - Remove the pack from the server and restart it: a world with a Scout still loads; the Scout stays in place, inert and invisible, and comes back when the pack does.
Forge 26.3 only. Start from a world made by beta.3 with a few vehicles in it.
Install Sodium and Iris for 26.3 with a shader pack (Complementary or BSL).
- Fire tracers and rockets, release flares, blow something up, call in the A-10: the glows sit where they belong, with no purple, pink or teal lines running to the horizon.
- The log has
Iris draws mcheli:pipeline/glow with its EMISSIVE_ENTITIES programat debug level (or no warning about Iris). Without Iris the game starts as before. - Note whether the A-10 still draws as a flat white shape with the shader pack on.
- Shoot down a plane (
f-35b,/mcheli give, then a missile or/kill): it rolls into a nose-down spiral and stops spinning near the ground. A second plane may spin the other way. - Shoot down a helicopter: it spins up faster than in beta.3 and nods and rocks while it falls.
- A second player watching sees the same spin direction.
- A tank or car that is destroyed does not spin.
- A beta.3 vehicle loads with a full tank (helicopter HUD fuel gauge full).
- Fly with the throttle open: the gauge goes down; with
/data mergeor a long flight down to 10% the low fuel warning blinks; at empty the throttle runs down and the engine stops. - Right-click the vehicle with the fuel can: the tank fills by 100 and the can's bar drops. Right-click in the air with coal in the inventory: the coal is used up and the can refills.
- Park next to a fuel truck: the tank fills and does not drop while the throttle is open.
-
vehicles.infiniteFuel = trueand/mcheli reload: the tank stops going down. - A vehicle without
MaxFuel(check the HUD) still flies forever.
- Damage a vehicle, right-click it with the wrench: 10 hit points back per click, once a second, with the wrench sound; the wrench loses durability. A wreck cannot be repaired.
- Shift right-click a vehicle with several paints (
ah-64) with the wrench: the paint changes for everyone. - Jump off a cliff and use the parachute: it opens above you, you float down, W glides you forward, and you land without damage. The parachute is used up.
- Eject from a plane with an ejection seat (Space twice): the seat flies up, the canopy opens once it falls, and you land safely.
- The fuel can, wrench and parachute are in the MCHeli Equipment tab with icons and names, and craft with the original recipes.
- F3+B: cyan boxes (from the definition) and amber boxes (from the model) outline the hull of an
ec665, anf-35b, ans-75and anmd90. The amber ones fill the MD-90's tail fin and nose. Themh-6has amber boxes only. No boxes stand in a rotor disc. - Fire the gun at the tail, the nose and the rotor mast of a parked helicopter: every round stops on the hull (no tracer behind it), and the helicopter takes damage.
- Fire from a helicopter's own guns: no round stops inside the firing helicopter.
- Drive a tank into the side of a parked plane: it stops at the wing or fuselage, not at the plane's feet. At speed both take crash damage.
- Land a helicopter on top of a parked truck: it rests there.
- A vehicle that fits a carrier's rack (a car and a truck with a rack) can still drive onto the
rack, and
Jloads it. - Two vehicles placed into each other can drive apart.
- Shoot the MD-90's tail fin: the rounds stop on it and it takes damage.
- Destroy a parked MD-90 or C-5: three blasts a second or two apart, and the wreck stays on land. A US-2 destroyed on the water sinks after its three blasts. Shoot down an MD-90 in the air: the three blasts come when the wreck hits the ground.
- Gunner seat or gunner mode in an AH-64 (
H): Z zooms 2x, 4x, then back to 1x; the HUD's zoom readout follows. In the pilot seat without a sight, Z still folds the wings or hatch. - K in a vehicle with night vision: the view brightens at night, K again turns it off. Leaving the vehicle turns it off. A night vision potion is not cut short.
- K in a vehicle without night vision plays the "no" sound and does nothing.
Forge 26.3 only. Start from a world made by beta.4 with a few vehicles in it, in survival.
- K in an
ah-64cycles normal, night vision, thermal view (white hot, with outlines) and back to normal. The HUD'scam_modeshows 1 and 2. Night vision stays on through the thermal view. - Leaving the vehicle or switching seat in thermal view goes back to the normal view.
- With an Iris shader pack on, thermal view still shows (or note what it looks like).
- I in any seat opens the vehicle screen, named after the vehicle, with three fuel slots and,
a parachute slot per ejection seat (one in the single seat
f-35b). A helicopter without ejection seats has none. - Only fuel cans go in the fuel slots and only parachutes in the parachute slots. Shift-click from the inventory sends them there.
- Landed with a fuel can in a slot, the fuel percentage and gauge climb by up to 100 units every half second and the can's bar drops; in the air nothing pours.
- Empty a weapon's reserve, land: Reload is active with the items in the inventory, takes them and adds the rounds. In the air it is greyed out with "Land to reload" as its tooltip. Closing the screen loads the magazine. In creative it costs nothing.
-
<and>step through every weapon of the vehicle, including other seats' weapons, with their rounds as the server has them. - Space twice in an
f-35bwithout a parachute in the slots: no ejection, the "no" sound and a message. With a parachute in a slot, the seat ejects and the parachute is used up. - Items in the vehicle screen stay after leaving, saving and reloading the world.
- Sit in a parked helicopter and move the mouse around: it stays level. Throttle up until it lifts off: from then on the mouse tilts it as before.
- A vehicle with an
InventorySize(ch47,c5,centauro) shows a Cargo button in the vehicle screen that opens a chest of the right size. Shift + right-click on the vehicle from outside opens the same chest; walking away closes it. - The
m1129(InventorySize = 10) gets two rows. - Walk far enough for the vehicle's chunk to unload and come back: the cargo is still there.
- Destroy a loaded vehicle (or pack it up by punching it): the fuel cans, parachutes and cargo drop.
- Park next to an
ammo_box: weapons with a low reserve fill up a tenth at a time.
Forge 26.3 only. Start from a world made by beta.5, in survival.
- The equipment tab lists the four M18 grenades with their own icons and names; each recipe (dye next to an iron ingot) makes one.
- A short draw drops the grenade a few blocks away, a full draw throws it far. It bounces off walls and the floor and settles.
- After two seconds it pours out smoke in its colour, which pales as it rises, for about 30 seconds, then the grenade disappears.
- A dispenser with a grenade in it throws it out when powered.
- Placing the GLTD on a block sets it up facing the way you look; right-click sits behind it.
- First person looks out of the sight; the view stops 70 degrees either side and up or down. Z steps the zoom up to x8 and back, K steps night vision, thermal view and back.
- Right-click on terrain: the readout counts down, and three A-10 passes strafe the spot. Clicking again before the countdown ends does nothing.
- Another player sees the head turn with your aim and a faint red laser.
- Shift leaves it; punching it drops the item (creative: it just goes).
- Holding use raises the scope after a moment; Z and X zoom in and out while held, the range
reads in metres, and
----when nothing is in range. - C cycles the modes (in a single player world it skips players and vehicles).
- Left-click on mobs in mobs mode: red markers appear over them, the charge drops by 10%, and the "pi" sound plays. Ten spots empty it; then only the "no" sound. Crafting it with redstone fills it.
- On a server, a spotted vehicle is marked for 15 seconds; a teammate is never marked. Mark point sends the coordinates to you and your team in chat.
- Both launchers and both missiles are in the equipment tab; each missile recipe makes two.
- Stinger raised at a flying helicopter: the lock tone quickens, LOCKED shows with the range, left-click fires, and the missile chases the helicopter. A parked one does not lock.
- Javelin raised at a tank: Z switches 4.2x and 9.2x, X switches direct and top attack. Top attack under 40 blocks shows LOCKED in red and refuses to fire; further away the missile climbs and dives onto the tank.
- After firing the bar shows empty. Lower it with a missile in the inventory: "Reloading", the reload sound, and after two seconds it is loaded and one missile is gone (none in creative).
- Left-click without a lock plays the "no" sound and fires nothing.
- Placing a container sets it on the block; right-click opens a six row chest. Items survive a reload. It floats in water. Punching it a few times breaks it and drops its contents.
- Park a
ch47by a container and press J: it loads. U at height over open ground drops it under a parachute; on the ground it just sets it down. - Chain: right-click a container (or a car), then a truck within 16 blocks. Driving the truck drags the other along at the chain's length. Right-click either end again: the chain comes off. Save and reload while towing: the chain is still there.
- Chain the other way round (truck first, container second): the truck still does the pulling.
Chain a container to a
ch47and lift off: the container hangs below it. Two containers cannot be chained ("One end of the chain must be a vehicle").
- Place a UAV station and right-click it: you sit down and its screen opens. The buttons move
the launch point; put an
mq-9in the slot and it appears there and you fly it at once, from its camera, with its HUD showing the range and link bars. - Shift: you stand beside the station again and the drone stays where it was. Continue takes it back. Fly it past 123 blocks: "link is lost", the drone goes down and you are back.
- While flying, another player sees no body in the drone, and hitting the drone does not hurt you. Breaking the station while flying puts you back beside where it stood.
- The portable controller opens with Shift and right-click, refuses the
mq-9("Small UAVs only") and launches theskylark. - The E-767 can be crafted with a UAV station.
- Stand two villagers next to a
ch47and climb in: they take seats. Hover still and level, press Y: ropes drop and the villagers slide down one by one. Y again pulls the ropes up. A second player in the back presses Y to rappel. - An
an2ormv-22flown high: Y opens the hatch and the villagers jump under parachutes one after another. - The
mi-24psorbnr32at night: K in the pilot or first crew seat switches the beams; a turning light follows the gunner's aim. - An
sh-60(folding blades), landed with the engine stopped: Z folds the blades onto the tail, the throttle does nothing, A and D turn it slowly; Z again unfolds them. - Hovering low raises dust (over water, spray). A Harrier in the hover blows smoke down; a jet rolling fast kicks up the ground; a boat throws spray.
- The
m1129mortar shows the landing distance on the HUD. A block targeting pod marks the point under the view for the team.
- Craft and place the drafting table: it shows the original model, facing you. Shift and right-click switches its lamp on and off.
- Right-click: the five list buttons, << and >> step through the recipes, the grid shows the ingredients cycling through their options, equipment shows its illustrated pages, vehicles their numbers. Create is greyed out without the ingredients; with them it takes them and fills the output slot. Closing the screen hands back what is left in it.
- As an operator press M: the team manager opens; as a non-operator a message says it is for
operators only. Make two teams with colours; they show on the right and in
/team list. - Shuffle puts every player in a team; Switch PvP says on or off; Everyone to spawn moves everybody; Destroy all vehicles removes every vehicle and reports how many.
- Rangefinder spot with two teams on a server: the spotter and their teammates see a red triangle and distance over the targets, a diamond at the screen edge when looking away; the other team sees nothing. Mark point shows a yellow diamond with coordinates for a minute.
Forge 26.3 only, in single player unless it says otherwise. The guide is
docs/content/workshop.md. examples/rework-example-pack has a model to use.
- The drafting table has a Workshop button. It hands back what was in the table and opens the
workshop, which lists the vehicles in
mcheli/packs. - Drop an OBJ on the window: its path and a vehicle name fill in, and the pack id follows the
name. Create opens the editor with the model showing, the right way up, nose towards
+Z. - A PNG next to the OBJ shows as its texture, glass included; without one the model is grey.
- These are refused with a clear message: an
.fbx, a binary file renamed to.obj, an OBJ with a bad vertex number (the line is named), a name with capitals, a pack id already in use. - A model made 16 times too large, or without
$body, opens with a warning at the bottom.
- Left drag turns the view, right drag moves it, the wheel zooms, R resets. Gizmos stay on their parts through all of it, at every GUI scale.
- Add each part type for the kind: it appears in the list and on the model. A wing pylon or propeller blades without a wing or hub ask for one first.
- Drag a seat's square and each of its arrows: it follows the mouse, snaps to 1/16 of a block, moves freely with Shift held, and the numbers on the right follow. An arrow pointing at the viewer does nothing rather than jump.
- Type a position, an axis and a number; a value that is not a number turns red and is not used.
- Rotors spin about the purple line when flown, wheels and gear hinge where placed.
- Mirror adds a copy across the middle. Delete removes a part; deleting a wing takes its pylons.
- Ctrl + Z steps back through all of that, one drag or one typed value at a time; Ctrl + Y goes forward again.
- A part the model has no
$object for is named at the bottom of the screen. - Removing every seat shows that the game would reject the vehicle, and Test flight says so.
- The Tuning tab lists only what the kind has. Defaults show dim; a changed value shows bright and an emptied box goes back to the default. Out of range numbers turn red.
- Test flight saves and seats you in the vehicle. It flies with the tuned values and takes no damage. Getting out puts you back where you started, removes the vehicle and reopens the editor with undo intact.
- Test flight in a LAN world: another player gets the pack sent and sees the vehicle.
- On a dedicated server the button is off with a tooltip saying why; the rest still works.
- Closing with unsaved changes asks to save. Save, restart the game, reopen from the list: all there. Comments added to the definition in a text editor survive another save.
- Export writes
mcheli/workshop/<id>-<version>.zip. Put it in themcheli/packsof another game: the vehicle loads and flies. Opening it there makes<id>-editand leaves the zip alone. - A saved pack on a dedicated server: every joining player downloads it and sees the vehicle.
-
EnginePositionandFuelTankPosition: a wreck burns at the engine, a crash goes up at the tank.
Forge 26.3 only. These were driven through the real client and a real dedicated server with a test class, so what is left is what that cannot check: listening, a real mouse and real players. The guide is docs/content/workshop.md.
- On the Paint tab, drop a PNG on Whole vehicle and on a part: the model changes at once, and the preview on the right shows the picture.
- A cockpit modelled as
$cockpitdraws with the hull and takes its own texture; so do$blade0and a plain object inside$body. Glass in a part's texture still draws as glass. - Clear puts the part back in the paint; Undo and Redo bring the line back. Cycling paint schemes in game leaves a part with its own texture as it is.
- A
.jpg, and a text file renamed to.png, are refused with a clear message. - A vehicle with part textures, seen by another player on a server, looks the same.
- Listen: an engine OGG plays and its pitch follows the throttle along the curve you dragged. The rotor loop plays alongside it at its own volume. Clear goes back to the default.
- Listen: a vehicle with
WeaponSoundfires with that sound, heard by another player nearby. Other vehicles with the same weapon are not affected, and neither is a weapon sound from the import. - Listen: a loop does not click or stutter while the throttle changes.
- An
.mp3, and an OGG holding Opus, are refused with a clear message.
- Packs on the workshop's first screen lists your packs with author, version, size and vehicles, and a broken zip with the reason. On a server, its packs show as from this server.
- Open folder opens
mcheli/packs. Dropping a zip installs it; dropping one you have is refused and changes nothing. - A pack vehicle's item shows its pack and author; an imported vehicle's shows nothing extra.
/mcheli packsshows the author.
Two real players on a dedicated server, one of them an operator.
- With
allowSubmissionsoff, Send to server is refused in chat. Nothing appears inmcheli/pending. - Turn it on and
/mcheli reload. A player sends: they are told it waits, the operator is told, and the vehicle does not exist for anyone yet. An operator joining later is told too. -
/mcheli pendinglists it with the real sender, and what it would replace. A non-operator cannot run any of the three commands. -
/mcheli approve: both players download it and can use the vehicle; it is still there after a server restart. Send a new version and approve it: both get the update without a restart. -
/mcheli reject: the sender is told and the file is gone. - A pack over
maxPackSizeis refused. A second send within half a minute is refused. A pack theallowListleaves out tells the operator so on approval. - Another player sending a pack with an id that is already waiting is refused. A pack over a folder pack cannot be approved, and the folder is untouched.
- With
requireApprovaloff, a new pack goes live at once and a pack with an id in use still waits.
Attach logs/latest.log (and the crash report, if any) with the helicopter name, what you did
and what you expected.