# Shader Extension

**URL:** <https://forum.makecode.com/t/shader-extension/4860>\
**Category:** Show & Tell\
**Tags:** extension\
**Created:** [December 9, 2020, 1:21am UTC](https://forum.makecode.com/t/shader-extension/4860 "2020-12-09T01:21:12Z")\
**Posts on this page:** 13\
**Page:** 3

<div class="post-metadata">

**Author:** ![richard](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/richard/32/5417_2.png) [@richard](https://forum.makecode.com/u/richard)\
**Post date:** [July 5, 2023, 11:46pm UTC](https://forum.makecode.com/t/shader-extension/4860/41 "2023-07-05T23:46:29Z")

</div>

@Luke haha, yeah this extension predates scaling by a couple years so i’m not surprised. i’ll have to think about if i want to add support for that or not in the revamped extension… would anybody actually use it?

---

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [July 6, 2023, 4:51pm UTC](https://forum.makecode.com/t/shader-extension/4860/43 "2023-07-06T16:51:39Z")

</div>

> [@richard](#):
>
> would anybody actually use it?

Considering @Luke found this bug, I assume he uses it, so you can add it for him 😂

---

<div class="post-metadata">

**Author:** ![Luke](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/luke/32/32519_2.png) [@Luke](https://forum.makecode.com/u/Luke)\
**Post date:** [July 6, 2023, 9:13pm UTC](https://forum.makecode.com/t/shader-extension/4860/44 "2023-07-06T21:13:23Z")

</div>

Yeah I was making a cooldown and I was trying to change the scale of the shader. If possible can you also add a change height/length by x block that would be amazing.

---

<div class="post-metadata">

**Author:** ![Luke](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/luke/32/32519_2.png) [@Luke](https://forum.makecode.com/u/Luke)\
**Post date:** [August 2, 2023, 11:01pm UTC](https://forum.makecode.com/t/shader-extension/4860/45 "2023-08-02T23:01:50Z")

</div>

> **[NAI16 palette](https://arcade.makecode.com/S65031-11735-87226-05476)**
>
> Made with ❤️ in Microsoft MakeCode Arcade.

With enough pain (2hrs worth) you can force an existing colour palette into makecode’s colour ramps. Here is the NA16 palette by Nauris

**Colour ramp rules:**

- 3 colour ramps of 5 colours can be made
- 3 colour ramps of 4 colours can be made
- 1 colour ramp of 3 colours can be made  
(Black background is counted)  
 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/2X/4/4ece5e06f91268b860830a3407c5f3789477017f.png)

**Process**

 ![Colour](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/2X/d/db2650e00612e5e4f281d6ba25244384fbdf9d3d.png)  
There are 4 main colour ramps (greyscale, warm, greens, blues) but only 3 possible spots so blue’s colour ramps aren’t as nice as the other ones. It’s kind of like a puzzle to find a suitable combination as there are always unexpected colours that work well together (4th colour ramp) and compromises you have to make (5th colour ramp)

**Conclusion**  
If you want to make a custom colour palette for makecode follow the colour ramp rules and make sure they all fade to the same colour.

Or just wait for Richard to update the shader extension lol

---

<div class="post-metadata">

**Author:** ![richard](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/richard/32/5417_2.png) [@richard](https://forum.makecode.com/u/richard)\
**Post date:** [August 2, 2023, 11:03pm UTC](https://forum.makecode.com/t/shader-extension/4860/46 "2023-08-02T23:03:23Z")

</div>

when we added the color palette switcher, i had to painstakingly go through each one of the palettes and match the colors to whichever color they were closest to in the default arcade palette so that the gallery wouldn’t appear super broken.

took me _hours_

---

<div class="post-metadata">

**Author:** ![richard](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/richard/32/5417_2.png) [@richard](https://forum.makecode.com/u/richard)\
**Post date:** [August 2, 2023, 11:16pm UTC](https://forum.makecode.com/t/shader-extension/4860/47 "2023-08-02T23:16:33Z")

</div>

i’m going to be making a new extension that combines this and the lantern extension (will also include multiple light sources) and i want to get a good idea of what i should be keeping from this extension. so, a few quick questions for anyone who’s tried it out:

1. What do you use this extension for?
2. Is there anything you were hoping that this extension could do but it doesn’t do today? (besides defining color ramps)

@Sarge @Luke @HalignionThunder @UnsignedArduino

---

<div class="post-metadata">

**Author:** ![UnsignedArduino](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/unsignedarduino/32/592_2.png) [@UnsignedArduino](https://forum.makecode.com/u/UnsignedArduino)\
**Post date:** [August 2, 2023, 11:25pm UTC](https://forum.makecode.com/t/shader-extension/4860/48 "2023-08-02T23:25:49Z")

</div>

I use it for just shading in general, like for sprite shadows. I don’t remember but I don’t think you can change the shadow or intensity of a sprite? (it’s been a long time since I used it) Possibly an “optimized” shader sprite (like the rectangle version) but a circle or oval? Those seem to be used pretty often for sprites.

I think it’s a great idea to combine the lantern and shading extension!

---

<div class="post-metadata">

**Author:** ![Sarge](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/sarge/32/19590_2.png) [@Sarge](https://forum.makecode.com/u/Sarge)\
**Post date:** [August 3, 2023, 4:30pm UTC](https://forum.makecode.com/t/shader-extension/4860/49 "2023-08-03T16:30:57Z")

</div>

Everything @UnsignedArduino said, but also a flashlight type of lantern, that points in a direction? It would also be great if you could define a range, by which I mean how wide the flashlight is.

Also, scaling not being broken lol

---

<div class="post-metadata">

**Author:** ![Luke](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/luke/32/32519_2.png) [@Luke](https://forum.makecode.com/u/Luke)\
**Post date:** [August 3, 2023, 4:32pm UTC](https://forum.makecode.com/t/shader-extension/4860/51 "2023-08-03T16:32:12Z")

</div>

I’ve used shaders for a transparent/translucent look so it would be cool if there could be multiple custom shaders in a project so that you could use one shader to lighten an image and use another for a specific use (eg: translucency)  
Being able to make sprites not affected by shaders would be useful especially if the shader is supposed to be under the player sprite  
Ability to change the width of all the light bands in the lantern extension might be helpful but it’s kind of niche

---

<div class="post-metadata">

**Author:** ![guywhocancode](https://avatars.discourse-cdn.com/v4/letter/g/c57346/32.png) [@guywhocancode](https://forum.makecode.com/u/guywhocancode)\
**Post date:** [December 24, 2025, 1:04am UTC](https://forum.makecode.com/t/shader-extension/4860/52 "2025-12-24T01:04:38Z")

</div>

I’m multiple years late, but just gonna share the full animated version of this. There’s no jump since it was buggy, and unnecessary.

> **[shader-example2 (full animated no jump)](https://arcade.makecode.com/S44790-39978-13665-40115)**
>
> Made with ❤️ in Microsoft MakeCode Arcade.

---

<div class="post-metadata">

**Author:** ![IAmMyGuy21th](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/iammyguy21th/32/16978_2.png) [@IAmMyGuy21th](https://forum.makecode.com/u/IAmMyGuy21th)\
**Post date:** [February 26, 2026, 11:09pm UTC](https://forum.makecode.com/t/shader-extension/4860/53 "2026-02-26T23:09:03Z")

</div>

one day a few years ago I was reading this exact topic, this exact message, so I made my own version of the extension. it is slower than the extension because it’s not that efficient (manual setpixels, and is programmed in blocks). someone please tell me how to use those setrow,setcoloumn,blitrow etc functions.

> **[shader](https://arcade.makecode.com/S16435-66415-41299-33878)**
>
> my version of riknoll/arcade-shader
> square is @richard's extension
> circle is mine.

---

<div class="post-metadata">

**Author:** ![DimonSw0rd11](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/dimonsw0rd11/32/32564_2.png) [@DimonSw0rd11](https://forum.makecode.com/u/DimonSw0rd11)\
**Post date:** [March 3, 2026, 10:58pm UTC](https://forum.makecode.com/t/shader-extension/4860/54 "2026-03-03T22:58:13Z")

</div>

I know I’m late but would it be possible for shading light?

---

<div class="post-metadata">

**Author:** ![Astro](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/astro/32/35479_2.png) [@Astro](https://forum.makecode.com/u/Astro)\
**Post date:** [March 4, 2026, 5:40pm UTC](https://forum.makecode.com/t/shader-extension/4860/55 "2026-03-04T17:40:56Z")

</div>

no, it wouldnt

[Previous page](https://forum.makecode.com/t/shader-extension/4860.md?page=2)
