Replaces the background of the main menu with a customizable shader.
This is a port of mat's Menu Shaders mod.
To change the shader, create a texture pack with a file called menu-shader.fsh.
For a few already made shaders, check out this Twitter X thread.
This mod also supports some Shadertoy shaders, to use them:
You can also replace shaders in cgytrus.menu-shaders/any-frag.glsl
and any-vert.glsl
for the fragment and vertex shaders respectively,
where any
can be replaced with either main
, level-select
, creator
, level-browser
,
edit-level
, play-level
, search
, garage
, leaderboards
,
gauntlets
, gauntlet
or treasure-room
to override the shader only for the respective menu.
Shadertoy compatibility is disabled in these shaders.
You can use sprites from resources (including custom ones) by adding a comment starting with //@
followed by sprite names separated by commas.
Each sprite in the list will add a sampler2d
uniform called sprite0
,
where 0
is the index of the sprite in the list.
You can get information about nodes in the scene by adding a comment starting with //#
followed by node IDs separated by commas.
Each node in the list will add a few uniforms, where 0
is the index of the sprite in the list:
vec2 node0Pos
- node position in cocos points in world spacefloat node0Rot
- node rotation in degrees in world spacevec2 node0Scale
- node scale in world spacevec2 node0Size
- node content size in cocos points in world spacebool node0Visible
- node visibility (whether it's drawn or not)