Menu Shaders

mat
,
rooot
,
ConfiG

Menu Shaders

Replaces the background of the main menu with a customizable shader.

This is a port of mat's Menu Shaders mod.

Usage

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:

  1. Find a shader you want to use on Shadertoy
  2. Copy/paste the code on the right into your menu-shader.fsh
  3. If you see the default GD background and errors from Menu Shaders in the console, that likely means that the shader you want to use is incompatible.

Advanced Usage

New shader locations

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.

Sprites

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.

Nodes

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 space
  • float node0Rot - node rotation in degrees in world space
  • vec2 node0Scale - node scale in world space
  • vec2 node0Size - node content size in cocos points in world space
  • bool node0Visible - node visibility (whether it's drawn or not)

v1.4.2

  • updated to 2.2074

v1.4.1

  • fixed crash in menus without a background that normally have one
  • potentially improved compatibility with other mods changing the main menu background

v1.4.0

  • made hiding corners, input backgrounds, etc. configurable
    • tho it Will Not look good unless you use happy textures or smth to change the colors i guess
  • added menu shaders to more layers
    • only ones that had node ids tho, sorry
  • updated mod description slightly

v1.3.0

  • improved logging
  • added built-in shadertoy compatibility
  • built-in fix for issue #5
  • now recommends texture loader
  • updated documentation (hoping to see shader devs make use of these features !!)

v1.2.1

  • updated to 2.206

v1.2.0

  • updated to 2.2 (rooot did a huge part in this thanks !!!)
  • added android support
  • probably some other fixes i forgot about

v1.1.0

  • fixed mac crash
  • added ability to add menu shaders to other menus
  • fixed compatibility issues with some shaders on amd gpus

v1.0.0

  • initial release
The recommended way to install mods is through the in-game mod loader. You will have to manually install the .geode files you get from this page.

Some mods also require other mods as dependencies; you will need to find and install them yourself.

Site made by HJfod . Thank you to Nekit for the domain!

Geode Team 2024