Justwaves

Realistic waves and beaches for vanilla water.
Back to Files

JustWaves-0.3_1.zip

File nameJustWaves-0.3_1.zip
Uploader
Arapatoc288Arapatoc288
Uploaded
Sep 20, 2026
Downloads
255
Size
10.9 KB
File ID
8933801
Type
R
Release
Supported game versions
  • 1.21.1
  • Iris

What's new

0.3 — the shore one
ok so the README for 0.2 had a "known limits" section that basically said sometimes the
water pulls away from the shore and you see a gap, turn stuff down if that happens. which
is a polite way of saying i knew it was broken and shipped it anyway.
turns out that was two completely different bugs wearing one coat.
bug one: shallow water was tearing itself apart
the shader has to decide which bits of a water block are "the surface" and should move.
the old rule was is this vertex more than 0.7 of the way up its block.
that works great for the ocean, because ocean water is full blocks and sits at 0.875.
it does not work at all for water that isn't full. a river edge, the thin end of a stream,
a puddle — those sit at 0.5, or 0.375, or 0.25. below 0.7. so the top face moved,
because that's picked by having an upward normal, and the sides didn't, because 0.5
isn't more than 0.7.
the surface floated off its own block and left a hole in the side. every stream. the whole
time.
new rule is: anything that isn't the very bottom of the block is surface. the bottom edge
stays pinned, everything above it moves together, the side face just stretches. works at
any water height because it never asks what the height is.
bug two: you cannot find the beach
my first plan for the shoreline was to detect shallow water and calm the waves down there.
i got about ten lines in before realising it does nothing, because minecraft's ocean is
full water blocks right up to the sand. there is no shallow. a shader looking at a block
at the beach sees exactly what it sees a thousand blocks out to sea. there's no depth
information anywhere in the program. you cannot find the shore.
so the fix isn't finding the shore, it's not needing to.
the gap happens when the trough goes down. the seabed and the beach sit at the water's
resting height, so the moment the surface dips below that, you're looking through the side
of the water at whatever's behind it. that's the hole.
water that only ever goes up physically cannot expose anything, because the side faces
stretch upward to follow it.
so there's a new setting, Lift Troughs, that squashes the wave so the bottom of it sits
at the normal water level instead of under it. default 0.75. the cost is real and i'm not
going to pretend otherwise — the troughs get flatter and the sea rides a bit high. set it
to 0 and you get the old deep troughs back, and the old gaps with them.
shallow water still gets a smaller wave too, because part-filled blocks genuinely have less
room to make one. that one's just physics, it's not the shore fix.
the presets have been broken since 0.2
i wrote a checker that reads the settings menu and the shaders and makes sure they agree.
first run, it found four things. all of them mine, all of them in 0.2:
preset    setting    was    allowed values
LOW    Wave Height    0.05    0.0 0.02 0.04 0.06 0.09 …
HIGH    Wave Height    0.13    … 0.09 0.12 0.16 …
HIGH    Crest Foam    0.8    … 0.7 0.9 1.0
HIGH    Sun Glint    0.9    … 0.8 1.2 1.6
every one of those sets a value the option isn't allowed to take. so LOW and HIGH never
fully applied. if you picked a preset and thought "huh, that didn't do much", it wasn't
you.
snapped them all to real values.
and it looks better
backlit glow — crests light up green when the sun is behind them. real water does
this because green is the wavelength that gets through, and it's honestly the single
biggest difference in the whole update. it's the thing that stops water reading as
"blue surface with a shine on it".
foam breakup — foam used to draw a clean contour line along every crest, which is a
dead giveaway that it's a maths function. now it tears into patches and streaks.
sparkle — the sun glint shatters into moving glitter instead of sitting there as one
smooth blob.
dusk — the glint used to snap from sun to moon on a single tick at 12700. now it
crossfades. (blending the two directions would've been the obvious move and it's
wrong — they point opposite ways, so halfway through the fade they cancel out and the
highlight disappears entirely for a minute either side of sunset. it blends the two
answers instead.)

if the green glow is too much, it's Backlit Glow on the Surface page. 

This mod has no additional files