Wavey Elytra makes elytra behave like thin hardened wing cases instead of a cloth cape. The wings stay rigid and hinge-driven, shiver at high speed, sweep tight when you dive, roll differentially when you turn, and lag slightly at the tips — like something with real mass and spring. Optionally, flapping gives you an actual boost when the mod is installed on the server.
Features
- 🪲 Beetle-shell physics — rigid hinge poses instead of cape-style soft waving. Fast, stiff, small flutter with a hint of elastic tip lag.
- 🌀 Dual-frequency flutter — a 10 Hz micro-shiver layered over a 2.2 Hz visible wave, both scaling with airspeed. Speed feel, not noise.
- 🫁 Breathing spread — a slow 0.9 Hz open-and-close while gliding, so the silhouette itself moves.
- 🏹 Speed-driven tightening — the faster you fly, the tighter the wings sweep, up to 12°.
- ✈️ Aileron roll — turning tilts the two wings opposite ways (up to 11°), like a real aileron pair.
- 🪂 Stall nose-up — the wings pitch up when you get too slow (up to 9°).
- 🛑 Rigid dives — vanilla retracts the wings in a vertical dive, and the mod deliberately goes quiet there. No fake shuddering on folded wings.
- 🌬️ Idle life — while standing the wings breathe slowly, and every few seconds they twitch once, like a beetle that just got poked.
- 🥷 Crouch hunker-down — sneaking tucks the wings flat against your back (25°) and stops all motion.
- 👏 Flap pulse — press jump while gliding for a sharp 45° wing beat with an elastic rebound.
- ⚡ Server-side flap boost (optional) — with the mod on the server, that flap actually pushes you forward. Toggle it with a gamerule, on by default.
- ⚙️ Fully configurable — every amplitude, frequency and gain is exposed in a JSON config.
How it works
The mod only changes wing poses — it never takes over rendering. It adds relative rotations to the left/right wing parts at the end of ElytraModel.setupAnim.
That design choice is what makes it broadly compatible: mods like 3D Cape read those wing poses when they build their meshes, so they inherit this mod's physics automatically — and this mod never overwrites their output. It also means the mod doesn't touch meshes, UVs, or the rotation axes other elytra mods rely on.
The physics core is deliberately zero-Minecraft-dependency pure math (filters, sines, envelopes), timed from the partially-interpolated ageInTicks, so the effect is frame-rate independent.
Dependencies
Required
- Fabric API — used for game rule registration, networking and server events.
Optional (integration / coexistence)
- 3D Cape — the 3D elytra inherits this mod's physics automatically.
- WaveyCapes — it handles capes, this mod handles elytra; they don't interfere.
- Elytra Physics — works alongside; that mod changes the spread target, this one adds a delta on top.
- elytraslot — elytra worn in the dedicated slot get the same physics.
- 3D Skin Layers — coexists (this mod doesn't call its API).
Installation
- Install Fabric Loader for Minecraft 1.21.1.
- Install Fabric API (required).
- Drop
waveyelytra-1.0.0.jarinto yourmodsfolder. - Optional: install the same jar on the server if you want the flap boost in multiplayer.
Server side (optional)
This is a both-sides mod:
| Server | Client | Result |
|---|---|---|
| ✔ | ✔ | Full: flaps boost you, and everyone with the client mod sees the flap animation. |
| ✔ | ✘ | The boost still applies, but nobody sees the animation. |
| ✘ | ✔ | Animation only — purely visual, no boost. |
Game rule
| Rule | Default | Description |
|---|---|---|
waveyElytraFlapBoost |
true |
Master switch for the flap boost. Setting it to false disables both the boost and the flap animation. |
/gamerule waveyElytraFlapBoost false
⚠️ This is a gameplay change. With it enabled, elytra can stay airborne by flapping instead of spending fireworks. Server owners who don't want that can turn it off with the command above.
Configuration
Edit config/waveyelytra.json. A waveyelytra-README.txt is generated next to it describing every key. Restart the game after editing.
Gliding
| Key | Default | Description |
|---|---|---|
sweepMaxDeg |
12.0 |
Maximum tightening angle at full speed (degrees). |
breatheHz / breatheDeg |
0.9 / 1.5 |
Glide breathing frequency (Hz) and amplitude (degrees). |
flutterHz / flutterAmpDeg |
10.0 / 2.0 |
Fast flutter frequency and amplitude. |
flutterSlowHz / flutterSlowAmpDeg |
2.2 / 2.4 |
Slow flutter frequency and amplitude. |
flutterSpeedRef |
0.6 |
Horizontal speed (blocks/tick) needed for full flutter. |
dihedral |
1.0 |
Dihedral gain (base 3°). |
aileronGain |
1.0 |
Aileron gain (base 11°). |
stallNoseUp |
1.0 |
Stall nose-up gain (base 9°). |
tipLag |
1.0 |
Tip lag strength. |
Flap
| Key | Default | Description |
|---|---|---|
flapDeg |
45.0 |
Peak flap amplitude (degrees). The envelope is normalized, so this is the real maximum. |
flapDurationSec |
0.28 |
Length of one flap (seconds). |
flapDecay |
7.0 |
Damping — higher means less ringing. |
flapHz |
3.5 |
Ringing frequency. |
flapPitchDeg |
5.0 |
Extra nose-up angle during a flap. |
Idle / crouch
| Key | Default | Description |
|---|---|---|
idleBreatheHz / idleBreatheDeg |
0.29 / 2.0 |
Idle breathing frequency and amplitude. |
idleTwitchMinSec / idleTwitchMaxSec |
2.0 / 6.0 |
Random twitch interval range (seconds). |
idleTwitchDeg |
3.0 |
Twitch amplitude. |
walkBobDeg |
1.5 |
Walk bob amplitude. |
crouchIdleScale |
0.0 |
Idle effect scale while sneaking (0 = completely still). |
crouchTuckDeg |
25.0 |
Tuck angle while sneaking. |
Server only
| Key | Default | Description |
|---|---|---|
boostStrength |
0.28 |
Flap boost along your look direction (blocks/tick). A vanilla firework is roughly 0.6–0.7. |
boostLift |
0.06 |
Vertical component of the boost. |
General
| Key | Default | Description |
|---|---|---|
enabled |
true |
Master switch. |
masterGain |
1.0 |
Global gain — scales everything at once (0 = exactly vanilla). |
FAQ
Do I need it on the server? No. Without it the mod is purely visual. Install it server-side only if you want the flap boost in multiplayer.
Will other players see my flapping? Players who have the mod installed will. Everyone else sees vanilla elytra.
How do I turn the boost off?
/gamerule waveyElytraFlapBoost false. That also stops the flap animation, since the flap exists to express the boost.
Will it conflict with other elytra mods? It's designed not to. The mod never takes over rendering, never touches meshes, and only adds to the wing rotations other mods also write — so 3D Cape, WaveyCapes, Elytra Physics and elytraslot can all be installed together.
Why doesn't it shiver when I dive straight down? Deliberate. Vanilla retracts the wings in a vertical dive, and adding motion to folded wings looks obviously fake.
I changed the config but nothing happened. The config is read at startup — restart the game.
Credits
- Inspired by the "elytra = hardened beetle shell, not cloth" idea, and built to coexist with the existing elytra/cape ecosystem rather than replace it.
- Special thanks to the authors of 3D Cape, WaveyCapes, Elytra Physics, elytraslot and 3D Skin Layers for a compatibility surface worth designing against.

