This is a drop-in RenderJS fork for Minecraft 1.20.1 (Forge).
It keeps the original KubeJS client rendering APIs (world/GUI overlays, item decorations,living-entity render events, KubeJS block-entity renderers) and adds the fork-only work below.
Custom moon rendering KubeJS can restyle the vanilla moon from one client event, RenderJSEvents.renderMoon. Texture, size, and color are applied together in the same sky pass.
- setTexture(...) replaces the moon quad texture
- setSize(...) changes moon size (vanilla is 20)
- setColor(r, g, b) tints the moon and keeps vanilla rain fade
- setColor(r, g, b, a) also overrides alpha
- getMoonPhase() is vanilla 0–7, plus getLevel() / getPartialTick()
RenderJSEvents.renderMoon(event => {
event.setTexture('mypack:textures/environment/custom_moon.png')
event.setSize(28)
if (event.moonPhase === 0) {
event.setColor(1.0, 0.75, 0.45)
}
})
Older split events (changeMoonColor, bindCustomMoonTexture, modifyMoonSize) were folded into this single renderMoon event. Use the unified API.
Colored world outlines
renderBlockOutLine1 / renderBlockOutLine2 now take a hex color string (for example "#FFAA00") instead of a hardcoded dark outline.
Client-only registration
Item-decoration registration runs only on the physical client, so a dedicated server no longer tries to register client render callbacks.
Extra script bindings
Client scripts also get vanilla RenderSystem, plus RenderJSUtils helpers for rotatable/scalable blits and extra fill drawing.

