Fine Outline

Alphalaneous

Fine Outline

Change the outline color of icons!

Many years ago, RobTop teased a potential new feature that would allow you to customize the outline color of icons. This never made it into the game, and thus we were stuck with a black outline. This mod implements that feature in a way that works across the board with any icon.

This mod uses a shader to isolate the outline from an icon and make it colorable. This means it will work even with icons from a texture pack. Not all icons are the same, and if there are stuff like straight up images being used as an icon, it might not look good, but that's on you.

Using this mod is easy. Simply go to the color palette button in the icon kit, and click on the Line tab on the top right. From there you can choose any default color, or a custom one.

Optional API

Mod developers can set the colors for the icon or change around the player's icon settings if needed.

#include <alphalaneous.fine_outline/include/FineOutline.hpp>

These are all under the alpha::fine_outline namespace.

/// Set the outline color of a PlayerObject or SimplePlayer
void setOutlineColor(T* player, const cocos2d::ccColor3B& color)

/// Get the outline color of a PlayerObject or SimplePlayer
cocos2d::ccColor3B getOutlineColor(T* player)

/// Update the outline color of a PlayerObject or SimplePlayer
/// This is useful if something else changed it for some reason
void updateOutline(T* player)

/// Check if the 2 player icons are separate with the "Separate Dual Icons" mod
bool isSeparate()

/// Check if the second player is being edited in the Garage with the "Separate Dual Icons" mod
bool isEditingP2()

/// Returns true if the player icon type is using a custom color rather than a color index
/// By default, it gets the selected icon's color if Separate dual icons is installed
bool usesCustomColor(alpha::fine_outline::PlayerIcon player)

/// Set if the player icon type is using a custom color rather than a color index
void useCustomColor(alpha::fine_outline::PlayerIcon player, bool use)

/// Returns the custom color set for a player icon type
/// By default, it gets the selected icon's color if Separate dual icons is installed
cocos2d::ccColor3B getCustomColor(alpha::fine_outline::PlayerIcon player)

/// Sets the custom color for a player icon type
void setCustomColor(alpha::fine_outline::PlayerIcon player, const cocos2d::ccColor3B& color)

/// Gets the color index for a player icon type
/// By default, it gets the selected icon's color if Separate dual icons is installed
int getColorIndex(alpha::fine_outline::PlayerIcon player)

/// Sets the color index for a player icon type
void setColorIndex(alpha::fine_outline::PlayerIcon player, int color)

/// Gets the color for a player icon type (returns the custom one if custom, else returns the color for color index)
/// By default, it gets the selected icon's color if Separate dual icons is installed
cocos2d::ccColor3B getColor(alpha::fine_outline::PlayerIcon player)

1.3.3

  • Fixed fine outline affecting icons without an outline color set

1.3.2

  • Tweaked shaders even more
    • Less washed out for real this time
  • Fix a bug where custom colors wouldn't update visually in the Icon Kit
  • Fix a bug where the default outline color was green

1.3.1

  • Tweaked shaders even more
    • Less washed out
    • Less gaps

1.3.0

  • Added Optional API
  • Tweaked shaders some more
  • Code cleanup

1.2.5

  • More shader tweaks
    • Removed UFO dome coloring setting due to internal changes

1.2.4

  • Fix UFO dome being colored
    • Add a setting for it cuz it looks cool

1.2.3

  • RobTop's GJRobotSprite and GJSpiderSprite are cursed
    • Fixed a crash (I hope)

1.2.2

  • Fix a crash

1.2.1

  • Code cleanup
  • Separate Dual Icons
    • Allows for the potential for a future API
    • No more needing to work around colors being set to the overlay sprite
    • Easier to scale if more players exist in the future for any reason
    • Bug fixes (It now works properly again!)
    • Support Separate Dual Icons swap button
    • Fix crash with profile 2P button after refreshing
  • Fix Player 2 sometimes not having an outline color set
  • Remove Alt Shader, main one should work for all cases now
  • Fix choosing a black outline not properly updating the player

1.2.0

  • Better isolation shaders
    • No more thin outline still being visible
  • 2.2081 support

1.1.8

  • One more fix

1.1.7

  • Fix typo

1.1.6

  • Code cleanup and compatibility fixes

1.1.5

  • Fix a crash with More Icons

1.1.4

  • Less invasive code

1.1.2 - 1.1.3

  • iOS support and fixes

1.1.1

  • Fix issue with Custom Gamemode Colors
  • Fix issue where default black outline wasn't being set properly
  • Maybe fix issue where More Icons icons use the wrong outline

1.1.0

  • Revamp custom line colors to have a separate color tab
  • Have optional separate color isolator to try if colors look weird on your icon

1.0.10/11

  • 2.2074 support

1.0.9

  • Fix a typo in the description

1.0.8

  • Changes by @hiimjustin000
    • MacOS support
    • Separate Dual Icons support
    • Fix reloading shaders (no more wonky icons on texture reload)

1.0.7

  • I guess don't try anything, doing anything ever will crash on android

1.0.6

  • Revert 1.0.5 due to issues with android.
  • Remove hacky More Icons fix now that More Icons properly calls onSelect

1.0.5

  • Made color bleeding less apparent.

1.0.4

  • Make outline opacity less convoluted.

1.0.3

  • Fix outline not showing on your icon on comments and leaderboards.
  • Fix bug with xdbot respawn flash.

1.0.2

  • Fix z ordering of outline

1.0.1

  • Tweak the shader's extraction algorithm to not catch normal colors as often.
  • Setting the color to black disables any icon shaders rather than leaving the custom ones with no visual effect (useful for colored icons, as previously it would still affect those).
  • Fixed a bug where dying in the editor removed the outline.
  • Fixed a bug where icons selected using More Icons would show the default icon outline.

1.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 2026