[Script] More Color Shading Options!

I recently made the switch from PyxelEdit to Aseprite, and while I’m loving it, I really miss the shading color options that PE had.

So I wrote a script that recreates the feature. Hope others find it helpful! If anyone can think of improvements let me know :slight_smile:

Download Link
Github - Aseprite Color Shading

Install Instructions:

  1. Right click download link -> Save Link As
  2. Open Aseprite, go to File -> Scripts -> Open Scripts Folder (Keep this open)
  3. Place the Downloaded file above into the Scripts Folder
  4. Restart Aseprite. “Color Shading” can now be accessed in the Scripts menu

Usage Instructions:

  1. Click Get Current Color button to pull in the current foreground color chosen in the Aseprite palette. This will generate all your new shades.
  2. Click on any of the “Set” buttons to set that shade as the new selected foreground color to paint with. Enjoy!

Note : The color pickers in the Color Shading window are not functional (Aseprite plugin limitation), they are merely for reference. Just click the Get Current Color button again to generate new shades with whatever foreground color is current in Aseprite.

(PS - @dacap I wish we had access to events like “On Color Pick Change” in the scripting API, and dialogue color boxes that worked like palette color swatches. Currently everything needs to be manually refreshed and set through buttons, sadly.)


Hi @domjohn! Thanks for creating this, it was always on my mind to create this feature as a script, but I’ve delayed both: the feature itself and the script API to enable a proper implementation of custom color pickers.

I think that this is a good candidate to start #1949. I’ll write down the list of features we need:

  1. Support observing some app events like “foreground color change” (or maybe observing preference changes in general, e.g. app.preferences.color_bar.fg_color is accessible through scripts right now).
  2. We should be able to know if the color was set by the user or by the script itself
  3. New widget to show a set of colors like the color bar
  4. A way to update color values while the dialog is open (all widgets should be modifiable when the dialog is open, but it was not implemented on these early stages yet)
  5. Support extensions with scripts? For this particular feature it’s not required because the dialog can be triggered from the File > Scripts and we could start observing the “foreground color change” event only when the dialog is open

This is so nice, domjohn, thank you very much for creating and sharing it! :smiley:

I’ve added this script to the list of scripts I’m collecting here, I hope you don’t mind.


Very awesome! So happy this could be of some help. Those listed features would be perfect to improve user experience. If there’s any possible way I can be of assistance or testing please don’t hesitate to ask :grinning:

Thanks for all the hard work you’ve put into this program, and the active support and passion you have for the project. This community sees it all and really appreciates it!


No problem JJ, I’m so glad it’s useful! Of course, feel free to add it anywhere you think would help out.



I can’t seem to get the script working. I get this error :

[string "internal"]:1: stack trackback:
[string "internal"]:1: in function '__generic_mt_index'
C:\Users\A\AppData\Roaming\Aseprite\Script\Color Shading.lua:127 in function 'showColors'
C:\Users\A\AppData\Roaming\Aseprite\Script\Color Shading.lua:152: in main Chunks: Field shades does not exist

Am I doing something wrong?

@Arkogelul the script above was recently updated for Aseprite v1.2.17 (coming soon), some features aren’t quite available yet.

Try this older one in the meantime:

Thank you! :slight_smile: