windlink-0.1.2.jar
Curse Maven Snippet
What's new
WindLink 0.1.2 (2026-07-26)
Trees. This release is mostly about canopies: holding them onto their trunks properly, giving them a resting state, and publishing the whole thing through MCWIND so other shader packs can use it too.
Needs PlunderEngine 0.1.2 or newer. That is a hard requirement rather than a preference, because WindLink calls a timing hook that does not exist in 0.1.0. The dependency is declared, so your launcher will tell you before the game starts instead of letting it fail later.
No shader pack update is needed. PlunderPixels Shader users get the new canopy behaviour with the pack they already have.
Trees bend off their trunks instead of sliding off them
Minecraft tells a shader how far each leaf block sits from the nearest log: 1, 2, 3 and so on. That sounds like exactly what you want for holding a canopy onto its tree, and it is what the shader used. The problem is that it is a whole number per block. Two leaf blocks pressed against each other can carry different numbers, so they move by different amounts, so they slide apart. On a thin canopy the first moving ring sits right against the trunk, so the result was a canopy splitting open down the middle and baring the wood it was supposed to be hanging from.
A shader cannot fix that on its own. A vertex only knows about the block it belongs to, and has no way to ask its neighbour anything.
So WindLink works it out instead. It reads where the wood actually is and publishes distance-to-wood as a smooth field spread across the world, rather than a number per block. Two leaves at the same point in space always read the same value, so no gap can open between them, and because the value changes slightly from one side of a block to the other, a leaf block now bends where it used to slide.
Leaves touching wood are held as still as the wood itself. Further out they get freer, so a branch curves away from the trunk with its tips trailing furthest, which is what a tree in wind actually does.
The canopy has a resting state
A still tree used to be a frozen tree. Now it keeps a slow drift in dead calm, not a wave, just enough that it reads as alive. The crown holds a deep lean in strong wind and breathes in and out rather than sitting rigid. When a gust lets go the crown springs back through its resting position and settles, harder the harder it was pushed. It used to simply ease off, which made wind feel like a switch.
Bushy-leaf resource packs get bending fronds
If you use a pack like Motschen's Better Leaves, the leaf fronds that stick out past the block now bend along their length and hang a little at rest, lifting as the wind takes them. Each frond answers the wind according to which way it faces, so the windward and leeward sides of a tree move differently.
Plain vanilla leaves are not affected by any of this. The effect only touches geometry sitting outside the block, so there is nothing to turn off if you do not use such a pack.
Shelter, canopies and blowing debris, in other people's shader packs
Terrain shelter used to be something only the PlunderPixels shader could see. WindLink works out what the wind does around the world: it slows in the lee of a wall or a hill, speeds up over an exposed crest, funnels along a valley, becalms a forest floor, bends around a bluff rather than blowing through it. That whole picture was published under a PlunderPixels-specific name.
It is now also published under the MCWIND standard, along with the canopy anchoring above. Any shader pack that has vendored mcwind.glsl picks both up. The pack author changes nothing for the shelter, because it is folded into the standard's own grass response. The canopy is two lines.
The particle wash goes out too. Debris the mod is blowing about, torn leaves and grass flecks, drafts the grass it skims past, so a blade kicks as a leaf shoots by. Particles and grass have always shared the same wind and so always agreed about which way the world was blowing, and they could still look unrelated to each other, because nothing tied one passing object to the blade it passed. The PlunderPixels shader has done this from the start, so it is not new behaviour, just newly available to anyone. It is one line per pass rather than free, because it needs the camera position, and the standard is not allowed to declare a uniform the pack owns.
None of it costs anything extra to run, since these are textures the shader already had registered, now answering to a second name as well: one allocation, one upload, two keys.
The canopy motion itself needs no mod at all. It is worked out from the wind field and the geometry, so a pack that adopts it moves its trees correctly even for players who do not have WindLink installed.
Fixes
The wind used to blow two directions at once after about an hour of play. WindLink's own particles and blowing smoke ran on one clock, the MCWIND standard ran on another, and the two reset at different points. For the first hour of a session they agreed. After that, smoke drifted one way while a third-party pack's foliage leaned another, and nothing ever brought them back into step. They now share one clock. This only ever affected third-party packs, since the PlunderPixels shader happened to use the same clock as the particles.
Foliage sheared for no findable reason in packs using bushy leaves. The MCWIND documentation told pack authors to clamp a block-centre value to 1 block, but bushy-leaf packs put leaf geometry as far as 1.3 blocks out, so the value was silently truncated, and truncated by different amounts for different corners of the same block, which is exactly what produces a shear. Nothing failed loudly, plants just went subtly wrong. If you have vendored mcwind.glsl into a pack before 2026-07-26, take a fresh copy: two normative constants changed and neither breaks loudly.
The wind field used to advertise columns it had not actually worked out. The field is solved in a window around you but published as a 512-block repeating tile, and every column claimed it held real data, so anything reading it outside that window got the previous solve's results from somewhere else entirely. Our own shader hid this behind a distance check. A third-party pack had no such protection and would have seen shelter sitting in open ground. Unsolved columns now say so, and the flow eases back to open-field wind over the last 16 blocks of the window rather than stopping dead at the edge.
The canopy weld used to snap into place. The field is rebuilt as you move, and it used to swap in over a single frame, which showed as a small skip. It now eases from the old field to the new over about a second.
Fronds touching a trunk used to take a share of the wind push, which at storm strength was enough to drag one clear of the wood and show the corner of the log behind it. Wind now respects the anchor completely. Gravity still does not, because a frond hangs under its own weight whether or not its block is pinned, and that droop does not grow with wind so it cannot pull anything clear.
Known limits
The very top of a tall tree is stiffer than it should be. The distance-to-wood field is worked out per column, so a leaf high above the top of a trunk still counts as sitting over wood. Fixing it needs a second field, and the obvious way to build one creates a visible crease between neighbouring trees, so it is deliberately not done yet rather than done badly.
Minecraft 26.1.x only, Java 25 or newer, Fabric. No Forge or NeoForge. Client-side only and vanilla-server safe: it adds nothing to the world and talks to no server.
This mod has no additional files