Skip to content

Custom Upgrades

Luke100000 edited this page Feb 5, 2026 · 5 revisions

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

Clone this wiki locally