I was brought on to this project to add decorations to further sell the idea that this truly is a one of a kind party. To accomplish this I worked on 2 decorations. Both heavily depend on GLSL shaders added to the resource pack (which gets loaded by the Minecraft client) and a server-side Spigot plugin written in Java.
In modern versions of Minecraft (26.2 being the latest when writing this) many decorations are almost trivially achievable but unfortunately this wasn't the case for Minecraft 1.18.2. Additionally this event needed to be readily accessible. Therefore client-side requirements needed to be minimized and various popular client configurations needed to be considered such as Optifine, Sodium and Apple silicon to name a few.
Lasers
Clips from @JellyBean and @TalonMC.
The lasers, as simple as they may look, are actually quite feature packed;
- 2 formations: a line formation and a disco formation,
- 3 animations,
- 4 color presets,
- Can be toggled on or off,
- Can be seen from afar (from much further than the maximum entity render distance),
- Switching between color presets is smooth (does not reset the animation).
Execution
The most straightforward solution, using a block shader (rendertype_solid), wasn't viable as clients using Sodium will not load this shader. Using entities wasn't viable either because the maximum entity render distance is prohibitively small for this purpose. The solution that was chosen involved using a very unconventional item / shader combination which fit all the requirements.
Sky
Clips from @TalonMC.
The sky is composed of multiple layers of effects;
- Base layer with a subtle gradient,
- Multiple layers of low frequency noise to simulate nebulae,
- Layer of high frequency noise to simulate distant stars,
- Layer of textured stars to simulate bright twinkling stars,
- Layer of a textured Earth with a glow behind it.
The layers move at different speeds to give the illusion of distance by simulating parallax. (Though in reality parallax wouldn't take place here the effect looks good nonetheless.)
Execution
It started off with attempts to incrementally improve the default night sky for the event but this lead to a dead end as only so much can be achieved with this approach. In search for more customization I discovered a way to gain control over the entire sky.

A debug shader demonstrating the full control of the sky.
From this point onwards adding the rest of the effects was relatively straightforward. Out of all the effects the twinkling stars were the most difficult to implement since it required me to UV map a sphere (the sky) procedurally.

All possible positions for the twinkling stars in the sky.
There were also performance issues in the initial implementation which were addressed by switching out an expensive noise function to a cheaper, though slightly lower quality, alternative and using a texture to draw the twinkling stars instead of procedurally generating it in the shader.
