Color Replacer Brush Script

Is there a script that allows me to remap multiple colors of sprites to a different color per sprite on a sheet.

So for example say I have a sprite with red on the arms on face but I want to remap only the red on the arms to another color while having the face stay the same a brush would be helpful. It’d also be great if I could be remapping the colors on the shorts as well from green to purple at the same time for example.

Is there a known script available that can do this?

Edit: Here’s a video of what I mean in another program:

I feel like I’ve seen something similar before I don’t believe that something like that exist in aseprite.

correct me if I’m wrong.

Hi @Jofu. First at all, backup your work. Then you can try to convert the image to INDEXED Color Mode (go to Sprite > Color Mode > INDEXED), on Indexed Color Mode each color in the sprite will be linked to the respective color on the palette, so modifying a color in the palette will modify all colors that match it in the sprite.
Important considerations:
If you are using more than 256 color on the Sprite, the conversion will result in a color compression (some colors wiill be “rounded”)

A better possibility: if each region of the sprite is separated by layers, you can select a particular layer, then go to Edit > Adjustments > Hue/Saturation… and modify it as you wish (the adjustments will affect all colors on the layer).

This doesn’t help as I don’t want all the similar colors on the sprite to change only that specific body part which is why I brush would be best. For e.g in the video I only want the legs to change as I want the hands to be a different color, if I use your method the legs hands and his face would change.

I don’t have the different body parts in layers as this is a sheet I put together with spritesheeter.

In that case. No, I don’t know a script to do something simiilar to that.
Personally, to complete that task, I would adopt the following workflow:
Link to video

  • Select Magic Wand tool with: Tolerance ~80 and Continuos checked.
  • Select the areas you want to adjust colors
  • Create a layer called ‘Selection Memory’ or any other name to paint some color on the selected areas (a ‘trick’ to memorize the areas)
  • Go to the original layer, hide the ‘Selection memory’ layer
  • Go to Edit > Adjustments > Hue/Saturation…

If you want to adjust the color again:

  • Go to “Selection memory” layer
  • Select Magic Wand tool with Continuos UNchecked.
  • Select a painted area, this will select all painted areas in the current layer.
  • Go to the original layer, hide the ‘Selection memory’ layer
  • Go to Edit > Adjustments > Hue/Saturation…

Note: to refine the selection areas you can play with the tolerance value of the Magic Wand and the SHIFT / ALT+SHIFT keys to add or subtract selection.

Your solution is a good one which I didn’t think of but it only works in specific areas like the one in your example video.

What I want to do is color separate the sprite so he can have different outfits through palettes, which is why I have his arm separated from his hand for example as this makes it possible to give him sleeves. If I used your method in that area the magic wand would select everything there as it can’t differentiate between the arm and his hand which is why a brush tool would be more precise while being efficient.

I was thinking of trying to make a script myself as there really seems to be none available that does this or anything remotely similar. I have no experience in that regard though and I haven’t been able to find a script that creates a custom brush that works differently from the default one that I could adapt to work like the one in my example gif.

Okay, I got it. Maybe this is related to: Stencil/color mask tool for locking colors · Issue #3855 · aseprite/aseprite · GitHub
A new Ink could be added to block a specific range of colors, and so using a simple brush we could draw similar to what you showed in the first gif.
Surely, this feature will be added eventually.

Hopefully, otherwise it’d need to be recreated as a script.