[Extension] SCRMSN - Simple Color Range Multi-Select Noodle

Hi everyone! I’m excited to share with you my first script.

Simple Color Range Multi-Select Noodle (or SCRMSN, pronounced: “Scrimson”) is an Aseprite script that allows you to quickly add, subtract, and replace colors. It was inspired by the built-in color range selection tool: select → color range. However, unlike the built-in color range selector, you can continuously add or subtract more colors as you go. No need to return to the select tab a million times over as I used to… (Cries)

SCRMSN works off of the principle of a foreground color change listener. Use the color picker tool to grab colors. If you’re in the “Adding” selection mode on SCRMSN, then every change in the foreground color will add a new color range to the current selection. If you’re on the “Replacing” selection mode, then your previous selection will be overwritten with the new color range. If you’re on the “Subtracting” selection mode, then every color range you click on will be subtracted from the current selection.

There are also tolerance weights for the 4 rgba channels. (This script only works in rgb mode as far as I know) Each weight adjusts the sensitivity of that channel. A low value means more selection than normal. Think of the weight as a percentage: if it is at 100, then you will see a normal amount of tolerance. If it is low, then Aseprite will be more tolerant of color differences in that channel (leading to more selection). I designed this with the alpha channel in mind since it never made sense to me that a difference in transparency counted for as much as a difference in red, green, or blue.

Note:

EDIT: There is no need to worry about a separate close button anymore! Thanks @thkwznk and @eishiya

  • The code may run a little slow on large canvases. It is running through and doing a pixel-by-pixel tolerance check and computing selection edges.

You can get it on my itch page:

1 Like

Interesting tool, congratulations on the release!

I notice that in the notes you mentioned how the dialog needs to be closed using the Close button, I believe you could use the onclose parameter of the Dialog, or did you try it and had issues with it?

1 Like

I’ll have to look into that! I didn’t know that existed

1 Like

I just tried adding the following to the dialog:

    dlg = Dialog{title = "SCRMSN v.1.0", onclose = function()
        app.events:off(colorChangeListener)
        dlg:close()
    end}

I got the following error when I attempted to close out of the script with the top-right X:

EDIT: Oh, maybe I don’t need dlg:close()?

Probably not. dlg:close() probably triggers onclose again, so you end up closing it again, triggering onclose again, and so on xP

3 Likes

All is working wonderfully now! Thanks, everyone! I’ll go update it on itch

1 Like