Thank you, Iāll add tinting to the next update! ![]()
That is an AMAZING suggestion, Iāll add that in the next update!
Youāre right thank you for the reminder ![]()
(Iām perpetually at 3000 characters, this is going to take some squeezing in)
WOW thank you I would love to see how it turns out! ![]()
Firstly, there is a better extension for simple shadows (hereā itās better because its optimized to just shade every color closer to black by 1 so its faster and looks better if you just want a shadow effect)
Secondly, the new Cache feature from Richardās suggestion (in the next update) seems to absolutely improve the performance!
@richard, I tried using this extension with little game I started, and it said itās incompatible with:
Arcade-sprite-transitions
Arcade-sprite-events
Arcade-extension-utils
What makes those extensions incompatible with this? And also what on earth is extension utils I never downloaded that.
tbh, that extension doesnāt have the greatest performance either, and it even warns you that the more of the screen is shaded, the laggier it gets. I had wanted to add shadows to every plant and zombie in my pvz, but thatās probably not a good ideaā¦
super cool stuff!
ah, right, i need to fix thatā¦
extension utils is an extension that i use internally as a dependency in all of my extensions. the reason you get this incompatible message is because some of my extensions use different versions. iām going to go update all of them right now, though, to make this issue go away.
okay, i have now fixed the versions in all of my extensions! @YamJam you might need to update the versions of the extensions in your project; i think the arcade-screen-transitions was probably the culprit
@randomuser does it only work on tileās? i canāt get it to work
The āmake transparentā block canāt take a variable as an opacity, it will just take the current value of the variable and not update.
So since want to update the opacity based on the time since start, I put the block in a āforeverā loop! ![]()
would this add an opaque option in drawing? (like walls that can be placed over tilemap squares but for sprites) how would this work?
thanks @randomuser, does the transparent only work on like tiles? cuz when i put my mouse under the dock that you fixed i canāt see my sprite
Version 2 is here! 
The support in just the first few days of this extension have been absolutely wonderful, Iām so grateful that people are finding use in it and contributing so much to its further development! ![]()
Iāve decided to release version 2 with some requested features so you can get started right away on using them, with a version 3 planned shortly to add the more complicated performance upgrades (and any more requests)
This update adds:
- Caching (Thanks to Richard)! By ācachingā a certain opacity to memory, any transparent sprite using that opacity will have greatly improved performance. Try it out to reduce lag!
- Overall performance upgrades (by using bitshifting to obtain the color pallete and not loading unused variables), also thanks to Richard!
- The ātintā block, to shade sprites a certain color, such as @WoofWoof 's suggestion to tint sprites blue in a waterfall! It is also good for maintaining the readability of a semitransparent sprite on a complicated background or applying a tint regardless of the background color.
- The āpartialā transparency block, to make only one color of a sprite transparent, such as @kirbob 's suggestion to make only the wing color of a fly transparent! Iād love to hear other ways you would want to specify what part of the sprite should be transparent or not.

Stay tuned for the next update with:
- More work on the caching system for more performance improvemenets!
- Possibly supporting transparent sprites showing other sprites beneath them?
- More specific partial transparency blocks (Such as adding transparency to multiple colors, a geometric region of the image, or a region specified by another image) if you all want that or other specifications!
- And any more suggestions you have or problems you need to solve for your game-- just reply here and Iād be happy to help!

The link to the extension is the same, and the demo at the top of the thread has been updated to show off the new effects!
Currently, you canāt see other sprites through transparent sprites, but I am adding that feature in verison 3 soon! ![]()
If I can get Richardās solution to work, you could see anything on the screen through the transparent sprites (so it would also include particles, chat bubbles, drawing to the screen, etc) and improve performance
However at the very least I can add a block to make certain sprites, types of sprites, or all sprites visible through transparent sprites manually; I mention making only certain sprites visible because if I canāt get Richardās method to work then every sprite that has to be factored into the transparent sprite would damage the performance
So Iāll let you know soon, either way it will be added, but it may or may not affect the lag!
I currently have the block specify a certain color to be made transparent, but Iād love to hear how you want to specify the transparent areas so I can add that too!
I donāt think I can edit the built-in image editor to let you draw a red overlay on the opague pixels though, so the closest solution I have is to have you make a separate image with those red pixels. Then if the original imageās pixel matches the position of a red pixel in the second image, it is opaque, and if it doesnāt it is transparent. Itās the same method you described but itās difficult because you would have to draw the sprite and the overlay separately.
Iām also adding a few more types of partial transparency which will be easier to use!
I think the āover (milliseconds)ā functionality would be cool for opacity some animations.
Like in the color fading extension, but with your transparency opacity:
/**
* Create a Fade from the current palette to end that occurs over the given duration
*/
//% blockId=colorStartFadeFromCurrent block="fade to %end||over %duration ms"
//% weight=79
//% duration.shadow=timePicker
export function startFadeFromCurrent(end: Palette, duration = 2000) {
startFade(currentPalette(), end, duration);
}
you always could make a functio nyourself but this added functionality could be useful