[Extension] Magic Pencil

Magic Pencil - Download :link: - Source Code :link:

Magic Pencil is an extension for Aseprite that provides additional options for the pencil tool.

How to use the extension

Go to the Edit menu and click the Magic Pencil option, select an effect from the dialog window and use the pencil tool.

Please note that most options use magic colors, selected colors will be restored after closing the Magic Pencil dialog window or selecting the Regular option.


Graffiti - adds an effect of paint drips and specks to the brush. After selecting this option, a slider controlling the effect’s strength will appear underneath.

Tool [Outline] - adds an outline around a closed shape that you click on, works with foreground (left-click) and background (right-click) colors.

Brush [Outline] - adds an outline around the brush as you draw. After selecting this option, the outline’s color can be changed under this option in the dialog window.

Lift - moves a part of the image into its own layer.

Unique [Mix] - mixes colors, left-click uses the RGB color model to mix colors, while right-click uses HSV.

Proportional [Mix] - mixes colors taking into account the number of pixels of each color, left-click uses the RGB color model to mix colors, while right-click uses HSV.

Colorize - changes color (hue), works with foreground (left-click) and background (right-click) colors.

Desaturate - removes color (hue) completely.

Hue/Saturation/Value/Lightness [Shift] - changes the colors based on the selected property, left-click to add, right-click to subtract. You can change how much of a shift will be applied by changing the percentage slider under these options.

Indexed Mode - when enabled, prevents new colors from being introduced, and any option that modifies colors will use colors from the palette.

Known issues

  • Selecting colors from the palette while using any option from the Magic Pencil other than Graffiti , Outline Tool , Outline Brush, or Colorize will interfere with its working and result in odd behavior


Graffiti Brush

Outline Brush

Selection & RGB Shift

Colorize, Desaturate, Shift

Color Mixing

Color Mixing - RGB vs HSV


I really like the lift magic pencil. Is there a way for it to lift the selected content in multiple frames?


@J19 Not at the moment, all options work with the active cel.

Does the pencil allow for drawing in multiple frames?

1 Like

I’m sorry to ask this question, but after installing the extension (on Mac), and restarting Aseprite, I’m still not able to see any MagicPencil menu in the Edit menu.
Did I forgot one important step (as it seems :confused: ) ?

These are all the steps you should need.

If you’ve never installed any extensions you can take a look a this thread which explains and solves this particular issue.

Thanks for trying…
Uugh so it seems that I’m stuck , the post did not have the answer (because the guy did tell that it don’t have any Aseprite.ini file in its folder as requested, so its issue isn’t fixed), and the Apple tree structure has no common point with the windows…
Anyway, so I did not forgot anything, and I’m starting digging deeper then. :tired_face:

1 Like

And found !:
So I’ll add here the Todo for Mac users, because I’m not even in a particular case as I didn’t got Aseprite from steam, but from a legal purchased file, So I guess all the Mac users got the ini file created by default, and the ini files suggests that it’s a portable build and reinstall everything at start. (without any extensions).

the default directory is there:

Macintosh HD/ User/[YOUR NAME]/ Library/Application Support/Aseprite/
If there is any Aseprite.ini , just rename it (as Aseprite.bak for example, in case for Mac there are some ini that must be important, so far I did not see , but maybe it overrides some shortcuts, I dunno )
and at restart of Aseprite you’ll get access to the extensions .


It seems that I complained one day too soon :sweat_smile: : the new Aseprite version launched yesterday now supports shortcut and extensions, meaning that you no longer need to delete the Aseprite.ini file


How do i get it to highlight non-conforming pixels (no single-pixel challenge, banding, etc)?

This extension doesn’t have that feature, I have a script that does just that which I plan to release separately, soon.

An update to v1.0.1 was released - this is a small post-release update, I significantly refactored the code and in the process discovered and fixed a few issues.


  • [Fix] Outline now respects the active selection
  • [Fix] Color mixing in HSV color model now always correctly mixes hue
  • [Fix] Improved stability and left/right click detection

An update to v1.0.2 was released - this update fixes a few rare bugs and introduces a new option - Indexed Mode, when enabled, prevents new colors from being introduced, and any option that modifies colors will use colors from the palette. This was a suggestion from the Illusion of Mana.


  • [Improvement] Added an option for the Indexed Mode
  • [Improvement] Colorize now works with grayscale pixels
  • [Fix] Opening the Magic Pencil with an empty cel selected no longer crashes the extension
  • [Fix] Adding outline to a cel with transparent pixels on the edges of the image now behaves correctly

An update to v1.0.3 was released - with this update a few new options are introduced - you can now outline as you draw with the Outline Brush, paint your own selection, shift colors in the RGB color model, and enjoy Magic Pencil without crashing Aseprite.


  • [Improvement] Added an option for the Outline Brush, the original Outline option is now renamed to Outline Tool, suggested by @apoonto
  • [Improvement] Added an option to shift colors in the RGB color model
  • [Improvement] Added an option for the Selection
  • [Improvement] Lift now creates a layer directly above (with left-click) or below (with right-click) the current one
  • [Fix] Undoing last action (Ctrl+Z) with mouse over Magic Pencil dialog no longer crashes Aseprite
  • [Fix] Magic Pencil no longer unlinks linked cels, reported by @stahli_25

hi i have an issue here
somehow it keep giving me these error log
i have no idea how to fix it, pls help

I believe the issue is that you’re running Asperite version 1.3-beta4 which was released last year. The extension wasn’t tested with this version.

Could you update to a newer version from the 1.3 beta branch or the newest 1.2 release?

Issue, the Magic Pencil menu appears, but the options are all greyed out, uninteractable. Except for “Indexed Mode”.

It sounds like the sprite you’re working on is in the Indexed Mode, it’s not actually supported for the Magic Pencil due to technical reasons.

An update to v1.0.4 was released - despite the version number, this is definitely a major update. Behind the scenes it started with a few minor improvements and fixes, followed by a major code refactoring, which opened the door for a whole new brush and helped me fix a major issue.

I hope you’ll enjoy the new Graffiti brush and I’d highly recommend switching to Aseprite v1.3-rc1/2 for an even more stable user experience. :v:

Thanks to Pierre Vandermaesen for a suggestion that improved the new brush.


  • [Feature] Added an option for Graffiti brush
  • [Improvement] Minor improvement to overall performance
  • [Fix] Selected pencil ink no longer interferes with Magic Pencil (reported by PixelDottod)
  • [Fix] Using the Magic Pencil on an empty cel no longer results in the first stroke being treated as a regular pencil
  • [Fix] From Aseprite v1.3-rc1, using Undo/Redo with Magic Pencil mode active and a mouse over a dialog window no longer crashes Aseprite
1 Like

An update to v1.0.5 was released - a few issues popped up after that latest update, they should be all fixed now. :v:


  • [Fix] Works correctly in Aseprite v1.3-rc2 (thanks to Dead Pixel for reporting)
  • [Fix] No longer breaks in some cases of using portable Aseprite (thanks to Kitka for reporting)
1 Like

HI @thkwznk sorry about Fix an incorrect drawImage call · thkwznk/aseprite-scripts@da35917 · GitHub, something to think about. I’m not sure if this can be solved it (as now we’ve added the opacity and blendmode arguments and they are integer too).

I’ve created this related issue: Backward compatibility with Image:drawImage(image, x, y) was broken · Issue #3788 · aseprite/aseprite · GitHub

1 Like