# Extensions by Chemthunder

**URL:** <https://forum.makecode.com/t/extensions-by-chemthunder/43583>\
**Category:** Show & Tell\
**Tags:** extension, javascript\
**Created:** [April 23, 2026, 5:05pm UTC](https://forum.makecode.com/t/extensions-by-chemthunder/43583 "2026-04-23T17:05:56Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Chemthunder](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/chemthunder/32/29906_2.png) [@Chemthunder](https://forum.makecode.com/u/Chemthunder)\
**Post date:** [April 23, 2026, 5:05pm UTC](https://forum.makecode.com/t/extensions-by-chemthunder/43583/1 "2026-04-23T17:05:56Z")

</div>

Collection of extensions I’ve made (or am making) for Arcade.

Currently working on a remake for my (in my opinion) best extension, Yggdrasil.

> **[GitHub - Chemthunder/yggdrasil-remake: a new coat of paint](https://github.com/Chemthunder/yggdrasil-remake)**
>
> a new coat of paint

Yggdrasil simply adds a feature I’ve been using for a while, the ability to place a variable into a ‘key’, and transport it elsewhere. This, along with a separate version to make said keys persistent using the settings namespace.

This is useful due to my habit of making games inside of functions (such that they can be enabled or disabled easily), allowing for sprites or variables to be used outside of the function or loop that creates them.

Yggdrasil also adds a few other utils, such as the ability to clear arrays or check if an array contains an element. These features may be already existing, but they aren’t in whatever MakeCode version I use so 😛

Forgive my awful code, but is there any ways I could also simplify what I have? Always looking for input!

---

<div class="post-metadata">

**Author:** ![NeverStopTheCoder](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/neverstopthecoder/32/21194_2.png) [@NeverStopTheCoder](https://forum.makecode.com/u/NeverStopTheCoder)\
**Post date:** [April 25, 2026, 4:42am UTC](https://forum.makecode.com/t/extensions-by-chemthunder/43583/2 "2026-04-25T04:42:53Z")

</div>

could you maybe a post a example of this extension

---

<div class="post-metadata">

**Author:** ![YamJam](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/yamjam/32/29681_2.png) [@YamJam](https://forum.makecode.com/u/YamJam)\
**Post date:** [April 25, 2026, 4:56am UTC](https://forum.makecode.com/t/extensions-by-chemthunder/43583/3 "2026-04-25T04:56:52Z")

</div>

Welcome @Chemthunder!, Your extension sounds great, but when I put it in a test project to see what the blocks were, no blocks showed up in the toolbar.

---

<div class="post-metadata">

**Author:** ![Chemthunder](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/chemthunder/32/29906_2.png) [@Chemthunder](https://forum.makecode.com/u/Chemthunder)\
**Post date:** [April 25, 2026, 6:14pm UTC](https://forum.makecode.com/t/extensions-by-chemthunder/43583/4 "2026-04-25T18:14:59Z")

</div>

Yeah, I’m not sure why that keeps happening. It’s been a thorn in my side for a while, and I’m still working on why it’s acting the way it is.

Glad to know it isn’t just my device tweaking, lol.

---

<div class="post-metadata">

**Author:** ![Chemthunder](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/chemthunder/32/29906_2.png) [@Chemthunder](https://forum.makecode.com/u/Chemthunder)\
**Post date:** [April 25, 2026, 6:15pm UTC](https://forum.makecode.com/t/extensions-by-chemthunder/43583/5 "2026-04-25T18:15:04Z")

</div>

I’m not home right now, but when I can, absolutely!

---

<div class="post-metadata">

**Author:** ![Chemthunder](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/chemthunder/32/29906_2.png) [@Chemthunder](https://forum.makecode.com/u/Chemthunder)\
**Post date:** [April 27, 2026, 4:48pm UTC](https://forum.makecode.com/t/extensions-by-chemthunder/43583/6 "2026-04-27T16:48:09Z")

</div>

> **[GitHub - Chemthunder/yggtest: example repo of the current features of yggdrasil](https://github.com/chemthunder/yggtest)**
>
> example repo of the current features of yggdrasil

Currently not much is finished or polished, but here’s a rough example of how some things work.

Although it does only function in TypeScript because of the toolbar issue.

The blocks appear normally in the JavaScript toolbar.

---

<div class="post-metadata">

**Author:** ![Chemthunder](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/chemthunder/32/29906_2.png) [@Chemthunder](https://forum.makecode.com/u/Chemthunder)\
**Post date:** [May 7, 2026, 4:44pm UTC](https://forum.makecode.com/t/extensions-by-chemthunder/43583/7 "2026-05-07T16:44:36Z")

</div>

Small update I guess, even though it’s only a small extension.

Easel!

> **[GitHub - Chemthunder/easel: A small extension focused on drawing](https://github.com/Chemthunder/easel)**
>
> A small extension focused on drawing

Simple a small extension serving as my adventure into image printing and drawing.

Still broken in Blocks but I couldn’t even care less.

---

<div class="post-metadata">

**Author:** ![Chemthunder](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/chemthunder/32/29906_2.png) [@Chemthunder](https://forum.makecode.com/u/Chemthunder)\
**Post date:** [May 8, 2026, 11:16pm UTC](https://forum.makecode.com/t/extensions-by-chemthunder/43583/8 "2026-05-08T23:16:31Z")

</div>

Another quick one, Plugin!

> **[GitHub - Chemthunder/plugin: A smarter way of making persistent data.](https://github.com/Chemthunder/plugin)**
>
> A smarter way of making persistent data.

A small extension that makes usage of the `settings` namespace much easier, in my opinion, utilizing JSONs.

---

<div class="post-metadata">

**Author:** ![Chemthunder](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/chemthunder/32/29906_2.png) [@Chemthunder](https://forum.makecode.com/u/Chemthunder)\
**Post date:** [June 2, 2026, 6:25pm UTC](https://forum.makecode.com/t/extensions-by-chemthunder/43583/9 "2026-06-02T18:25:59Z")

</div>

Been working on a bigger extension that’s sort of a mish-mash of all of my utilities, and made whatever this is to test it xp

> **[Attraction](https://arcade.makecode.com/85645-40789-32836-88535)**
>
> A game test for the Coil extension.

> **[GitHub - Chemthunder/coil: another framework / commonly used utils library...](https://github.com/Chemthunder/coil)**
>
> another framework / commonly used utils library because Nihil exploded

backend is awful but if y’all wish to see my horrific coding style go ahead lol.

---

<div class="post-metadata">

**Author:** ![Chemthunder](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/chemthunder/32/29906_2.png) [@Chemthunder](https://forum.makecode.com/u/Chemthunder)\
**Post date:** [June 10, 2026, 5:38pm UTC](https://forum.makecode.com/t/extensions-by-chemthunder/43583/10 "2026-06-10T17:38:59Z")

</div>

Actual display for Coil as of now 😛

Coil is a library for my ease of use with MakeCode, featuring some funky utils and whatnots for project creation, setup, metadata, and other weird things

Coil features:

- A `Pipeline` system for setting up games and running their code in lists of functions
- An `Entries` system for storing all of your sprites with a string key, with the ability to find them with said string key
- A small system for instantly creating images much more easily than base MakeCode’s
- A `Data Compound` system for easier usage of `settings`
- A game metadata system for storing details of your project as an object in the code
- A simpler logging system through the `print` and `enablePrint` functions
- Utilities for the Camera and Scene through the `CameraInstance` and `SceneInstance` classes

And a whole lot more

> **[Coil-Example](https://arcade.makecode.com/22575-50496-22706-97893)**
>
> Made with ❤️ in Microsoft MakeCode Arcade.
