WorldJS is a clientside KubeJS addon for modpack developers who want full control over the Minecraft world's atmosphere: sky color, fog, sun, moon, and rain textures, all in real time.
Built for personal use, but feel free to use it in your own packs.
WorldJSEvents) for one time setup and a direct API (WorldJS) for runtime changesUse WorldJSEvents to define your defaults when the game loads:
// Set custom sky and fog colors
WorldJSEvents.skyColor(event => {
event.setSkyColor(0xFF4400)
event.setFogColor(0x221100)
})
// Set custom textures for the sun, moon, and rain
WorldJSEvents.skyTexture(event => {
event.setSunTexture("kubejs:textures/environment/custom_sun.png")
event.setMoonTexture("kubejs:textures/environment/custom_moon.png")
event.setRainTexture("kubejs:textures/environment/custom_rain.png")
})
Use WorldJS directly inside tick events, item use events, dimension change handlers, or anywhere else to change things on the fly:
// Switch the sky to red
WorldJS.setSkyColor(0xFF0000)
// Switch the fog to blue
WorldJS.setFogColor(0x0000FF)
// Swap textures
WorldJS.setSunTexture("kubejs:textures/environment/custom_sun.png")
WorldJS.setMoonTexture("kubejs:textures/environment/custom_moon.png")
WorldJS.setRainTexture("kubejs:textures/environment/custom_rain.png")
Each setter has a matching clear. Color clears fade smoothly back to the biome color over three seconds; texture clears are instant.
WorldJS.clearSkyColor()
WorldJS.clearFogColor()
WorldJS.clearSunTexture()
WorldJS.clearMoonTexture()
WorldJS.clearRainTexture()
// Or revert everything at once
WorldJS.reset()
For quick testing without writing scripts:
/worldjs sky set <hex> e.g. /worldjs sky set FF0000
/worldjs sky clear
/worldjs sky status
/worldjs fog set <hex>
/worldjs fog clear
/worldjs sun set <texture>
/worldjs sun clear
/worldjs moon set <texture>
/worldjs moon clear
/worldjs rain set <texture>
/worldjs rain clear
/worldjs reset
Hex values accept either FF0000 or #FF0000.
Thanks to Project8gbDeRam for helping out with the mod!