-
Notifications
You must be signed in to change notification settings - Fork 73
Custom Upgrades
Using datapacks, you can declare any item as an upgrade.
An example datapack can be found here: https://github.com/Luke100000/ImmersiveAircraft/raw/1.21.1/wiki/example_data_pack.zip
Generally, the structure is:
- data
- namespace
- aircraft_upgrades
- aircraft
- pack.mcmeta
Where aircraft_upgrades are upgrades applied to the item namespace:file_name. So, for a vanilla item, use the namespace minecraft namespace.
The content of the file is a mapping between stats and a relative improvement, usually between -1 and inf; the eco engine, for example, contains
{
"engineSpeed": -0.2,
"fuel": -0.75
}With following available stats:
-
engineSpeed - In-air thrust scale; affects acceleration and stall susceptibility when climbing. Higher values → faster acceleration.
-
verticalSpeed - Rate of vertical movement (climb/descent) per tick. Lower values give a "heavier" feel.
-
yawSpeed - Turn rate (degrees per tick) around the vertical axis. Lower values make the aircraft feel heavier to steer.
-
pitchSpeed - Pitch up/down rate (degrees per tick). Lower values = slower pitch response, simulating heavier aircraft.
-
pushSpeed - Ground push force when throttle is below 100% and pressing forward/back. Key for takeoff roll length.
-
brakeFactor - Multiplier for braking efficiency. Default 0.95. Lower = stronger braking effect.
-
acceleration - Engine response speed multiplier. Default 1.0. Can make acceleration feel more sluggish or snappy.
-
durability - Vehicle durability multiplier. Default 1.0. Affects how resistant the aircraft is to damage.
-
fuel - Fuel consumption multiplier. Default 1.0. Only used if the engine consumes fuel.
-
friction - Air resistance affecting the aircraft. Default 0.015. Higher = slows aircraft faster when unpowered.
-
glideFactor - Forward speed gained from descent. Higher → easier to stretch glides and maintain speed without engines.
-
lift - Adjusts how quickly the velocity vector aligns with the nose direction. Higher → easier recovery from slips.
-
rollFactor - How sharply the aircraft banks when rolling left/right. Lower → slower roll response.
-
groundPitch - Target nose angle on the ground. Higher values → longer takeoff roll at low speeds.
-
stabilizer - Auto-levels pitch. Default 0.0. Optional.
-
wind - Wind-induced sway effect. Works with mass to determine perturbations.
-
mass - Aircraft mass affecting how it reacts to wind. Default 1.0.
-
hud - HUD display setting. Default -1.0. Optional.
-
dials - Instrument dial display setting. Default -1.0. Optional.
-
groundFriction - Friction applied when on the ground. Default 0.95.
-
waterFriction - Friction applied when on water. Default 0.9.
-
rotationDecay - Rotational inertia decay. Default 0.97.
-
horizontalDecay - Horizontal motion decay. Default 0.97.
-
verticalDecay - Vertical motion decay. Default 0.97.
As a reference, here are the inbuilt ones: https://github.com/Luke100000/ImmersiveAircraft/tree/1.21.1/common/src/main/resources/data/immersive_aircraft/aircraft_upgrades
And the base values for each aircraft: https://github.com/Luke100000/ImmersiveAircraft/tree/1.21.1/common/src/main/resources/data/immersive_aircraft/aircraft