-
Notifications
You must be signed in to change notification settings - Fork 0
26.2 Kinetic Physics and Drag
This page details the aerodynamic physics model, dynamic drag floor scaling equations, and bytecode integration powering Elytra fall-flying mechanics in Max Elytra Fly Speed (MC 26.2).
| Parameter | Technical Details |
|---|---|
| Subsystem Name | Aerodynamic Drag Floor Scaling & Velocity Limiting |
| Java Implementation | net.instantgratification.maxelytraflyspeed.util.ElytraDragHelper |
| Bytecode Mixin | net.instantgratification.maxelytraflyspeed.mixin.LivingEntityMixin |
| Target Methods |
LivingEntity.updateFallFlyingMovement, LivingEntity.travelFallFlying
|
| Controlling GameRule |
max-elytra-fly-speed:max_elytra_fly_speed (Default: 50) |
| Algorithmic Complexity |
|
| Parity Standard | Exact Vanilla |
In vanilla Minecraft, players attempting high-speed Elytra flight experience an artificial "velocity wall": vanilla hardcoded drag factors (
With Max Elytra Fly Speed:
-
Takeoff & Fall-Flying: The player deploys Elytra wings by pressing
Jumpmid-air. - Diving for Acceleration: Pitching the camera downward converts gravitational potential energy into kinetic velocity.
-
Dynamic Drag Relaxation: As server administrators increase
max_elytra_fly_speedabove$50\text{ BPS}$ , the aerodynamic drag loss smoothly decreases in inverse proportion. - Sustained High-Speed Glide: Pulling up into a horizontal glide preserves momentum across thousands of blocks without sudden velocity drops.
- Hard Velocity Clamping: If external explosions, external mods, or extreme dives accelerate the player beyond the configured ceiling, the velocity vector is smoothly scaled down without altering flight direction.
The dynamic scaling factor
- When
$\text{maxSpeedBps} \le 50$ :$\text{speedRatio} = 1.0$ (100% vanilla physics parity). - When
$\text{maxSpeedBps} > 50$ :$\text{speedRatio}$ scales linearly with the configured limit (e.g.$2.0$ at$100\text{ BPS}$ ,$4.0$ at$200\text{ BPS}$ ).
Drag loss per tick is computed by relaxing the baseline vanilla drag loss (
Every game tick (
If the magnitude
Drag Loss (%)
2.0% | * (Vertical Vanilla Baseline: 0.98x)
| \
1.0% | * (Horizontal Vanilla Baseline: 0.99x)
| \
0.5% | *---* (100 BPS: 0.995x / 0.990x)
| \
0.25% | *---*---* (200 BPS: 0.9975x / 0.9950x)
+----------------------------------------------------> Configured Max Speed (BPS)
0 30 50 100 200 300 400 500
| Max Speed Setting | Horizontal Drag Loss ( |
Vertical Drag Loss ( |
Horizontal Multiplier | Vertical Multiplier | Velocity Ceiling (Blocks/Tick) | |
|---|---|---|---|---|---|---|
| 30 BPS |
|
|
||||
| 50 BPS (Default) |
|
|
||||
| 100 BPS |
|
|
||||
| 200 BPS |
|
|
||||
| 500 BPS |
|
|
package net.instantgratification.maxelytraflyspeed.util;
import net.minecraft.world.phys.Vec3;
public final class ElytraDragHelper {
public static Vec3 calculateFallFlyingDrag(Vec3 movement, int maxSpeedBps) {
if (movement == null) return Vec3.ZERO;
double speedRatio = Math.max(1.0, maxSpeedBps / 50.0);
double dragLossH = 0.01 / speedRatio;
double dragLossV = 0.02 / speedRatio;
return movement.multiply(1.0 - dragLossH, 1.0 - dragLossV, 1.0 - dragLossH);
}
}-
Mixin Target:
LivingEntity.class -
Injection 1 (
@Redirect): RedirectsVec3.multiply(DDD)inupdateFallFlyingMovementto apply dynamic drag multipliers instead of hardcoded constants. -
Injection 2 (
@Inject): InterceptsLivingEntity.travelFallFlyingright beforeLivingEntity.move()to enforce hard speed clamping atmaxSpeedTicks.
📌 Repository Source Disclaimer: The documentation in this Wiki reflects the current source code state in the repository, which may include recent unreleased commits or developmental features ahead of public release builds on CurseForge and Modrinth.
Max Elytra Fly Speed is developed and maintained by Dasik (Rifaditya) under the GNU General Public License v3.0 (GPLv3).
- 🇺🇸 English | 🇨🇳 简体中文 | 🇭🇰 繁體中文
- 🇷🇺 Русский | 🇪🇸 Español | 🇩🇪 Deutsch
- 🇫🇷 Français | 🇧🇷 Português | 🇯🇵 日本語
- 🇮🇩 Bahasa Indonesia | 🇰🇷 한국어
🇺🇸 English
- 📖 26.2 Overview
- 🌀 Kinetic Physics & Drag
- 🚀 Rocket Propulsion & Acceleration
- ⚙️ GameRules & Configuration
- 🧩 Architecture & Mixins