GD has a lot of hardcoded colors. In addition, mods may very well also use hardcoded colors in their UIs, for example for CCLayerColors. This makes it hard for texture packs to reliably change colors, since they’d have to manually deal with every mod.
To help with this, Geode provides the [ColorProvider](/classes/geode/ColorProvider)
class, which is just an index of colors with associated IDs. Mods should use this to define their hardcoded colors for their UIs, and texture packs can then change the color dynamically.
Mods are not expected to handle in-game color changes, since in nearly all cases the texture pack will be applied far from the mod’s UI and as such just getting the defined color on layer enter will be more than enough. However, if the mod does add some static UI that won’t be naturally refreshed after a texture pack is applied, it should listen for [ColorProvidedEvent](/classes/geode/ColorProvidedEvent)
s to react accordingly.