# Enumerations in blocks!

**URL:** https://forum.makecode.com/t/enumerations-in-blocks/45095
**Category:** Show & Tell
**Tags:** javascript, extension, make, game
**Created:** [July 27, 2026, 3:56am UTC](https://forum.makecode.com/t/enumerations-in-blocks/45095 "2026-07-27T03:56:13Z")
**Posts on this page:** 11
**Page:** 1

<div class="post-metadata">

### Author: ![VoxelMaster64](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/voxelmaster64/32/32075_2.png) [@VoxelMaster64](https://forum.makecode.com/u/VoxelMaster64)
#### Post date: [July 27, 2026, 3:56am UTC](https://forum.makecode.com/t/enumerations-in-blocks/45095/1 "2026-07-27T03:56:13Z")

</div>

Have you every wanted enums in blocks? To be able to save the state of your player or game, but as a number? Introducing enum-blocks!

> **[GitHub - c-minusminus/enum-blocks: add enumerations to blocks!](https://github.com/c-minusminus/enum-blocks)**
>
> add enumerations to blocks!

blocks it adds:

- `setEnumVar` / `setEnumVarStatement` - sets/adds a key to an enum, with an optional number (details to last+1).
- `getEnumVar` - gets the number assigned to a key in an enum.
- `enumVar` - same as getEnumVar, but if the key doesn’t exist, it will create it for you.
- `enumStr` - gets the name of a key, which normal enums do not have.

test projects (same thing but different code, the first uses set/getEnumVar while the second uses enumVar):

> **[test enum-blocks](https://arcade.makecode.com/S72640-99208-70955-29301)**
>
> Made with ❤️ in Microsoft MakeCode Arcade.

> **[test enum-blocks #2](https://arcade.makecode.com/S70505-20599-48545-67949)**
>
> Made with ❤️ in Microsoft MakeCode Arcade.

---

<div class="post-metadata">

### Author: ![CodaKnight](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/codaknight/32/33491_2.png) [@CodaKnight](https://forum.makecode.com/u/CodaKnight)
#### Post date: [July 27, 2026, 4:24pm UTC](https://forum.makecode.com/t/enumerations-in-blocks/45095/2 "2026-07-27T16:24:14Z")

</div>

Such a cool extension! Now I don’t have to see so many “magic numbers” in my friends enemy/ai state! I’m going to tell him about this extension as soon as I can! 🤣

---

<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: [July 28, 2026, 2:03am UTC](https://forum.makecode.com/t/enumerations-in-blocks/45095/3 "2026-07-28T02:03:58Z")

</div>

This would be heavenly if it weren’t for richards state extension

---

<div class="post-metadata">

### Author: ![cool.dudefncs](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/cool.dudefncs/32/26363_2.png) [@cool.dudefncs](https://forum.makecode.com/u/cool.dudefncs)
#### Post date: [July 28, 2026, 2:07am UTC](https://forum.makecode.com/t/enumerations-in-blocks/45095/4 "2026-07-28T02:07:55Z")

</div>

this is smart

---

<div class="post-metadata">

### Author: ![TheEarth](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/theearth/32/34579_2.png) [@TheEarth](https://forum.makecode.com/u/TheEarth)
#### Post date: [July 28, 2026, 2:19am UTC](https://forum.makecode.com/t/enumerations-in-blocks/45095/5 "2026-07-28T02:19:06Z")

</div>

[[Extension] Enums in blocks!](https://forum.makecode.com/t/extension-enums-in-blocks/19170) this was already made

---

<div class="post-metadata">

### Author: ![VoxelMaster64](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/voxelmaster64/32/32075_2.png) [@VoxelMaster64](https://forum.makecode.com/u/VoxelMaster64)
#### Post date: [July 28, 2026, 9:03pm UTC](https://forum.makecode.com/t/enumerations-in-blocks/45095/6 "2026-07-28T21:03:44Z")

</div>

I thought so but that one technically only contained one enum if that makes sense. This one allows multiple like PlayerAnims, EnemyAnims, GameState, etc.

---

<div class="post-metadata">

### Author: ![VoxelMaster64](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/voxelmaster64/32/32075_2.png) [@VoxelMaster64](https://forum.makecode.com/u/VoxelMaster64)
#### Post date: [July 30, 2026, 2:48am UTC](https://forum.makecode.com/t/enumerations-in-blocks/45095/7 "2026-07-30T02:48:54Z")

</div>

what is his state extension?

---

<div class="post-metadata">

### Author: ![CodaKnight](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/codaknight/32/33491_2.png) [@CodaKnight](https://forum.makecode.com/u/CodaKnight)
#### Post date: [July 30, 2026, 5:07pm UTC](https://forum.makecode.com/t/enumerations-in-blocks/45095/8 "2026-07-30T17:07:25Z")

</div>

Here:

> **[GitHub - riknoll/arcade-state-transitions: A minimal state machine extension for Microsoft...](https://github.com/riknoll/arcade-state-transitions)**
>
> A minimal state machine extension for Microsoft MakeCode Arcade

---

<div class="post-metadata">

### Author: ![CodaKnight](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/codaknight/32/33491_2.png) [@CodaKnight](https://forum.makecode.com/u/CodaKnight)
#### Post date: [August 16, 2026, 7:01pm UTC](https://forum.makecode.com/t/enumerations-in-blocks/45095/9 "2026-08-16T19:01:01Z")

</div>

Hey @VoxelMaster64 , could you make it so that basically you could have arrays in enums. Like a  
enum that can have arrays in it?

Example:

```typescript
enum MyGroup {
    Animals,
    Fruits,
    Tools
}

EnumArray.set(MyGroup.Animals, ["cat", "dog", "bird"])
EnumArray.set(MyGroup.Fruits, ["apple", "banana", "grape"])
EnumArray.set(MyGroup.Tools, ["hammer", "saw", "wrench"])

```

Block ideas:

- set group Animals to array […]
- get value # from group Fruits
- length of group Tools
- group Fruits contains “banana”

Also, could you make blocks that make it so that you can have like a “nested enum”; enums inside of enums?

---

<div class="post-metadata">

### Author: ![VoxelMaster64](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/voxelmaster64/32/32075_2.png) [@VoxelMaster64](https://forum.makecode.com/u/VoxelMaster64)
#### Post date: [August 16, 2026, 11:54pm UTC](https://forum.makecode.com/t/enumerations-in-blocks/45095/10 "2026-08-16T23:54:40Z")

</div>

I was thinking of doing like a `set(name: string, data: any)` but makecode hates `any`. `any[]` is completely safe though. I don’t know how to fix it.

---

<div class="post-metadata">

### Author: ![VoxelMaster64](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/voxelmaster64/32/32075_2.png) [@VoxelMaster64](https://forum.makecode.com/u/VoxelMaster64)
#### Post date: [September 19, 2026, 9:26pm UTC](https://forum.makecode.com/t/enumerations-in-blocks/45095/11 "2026-09-19T21:26:24Z")

</div>

hmm so what I might add:

- array of items in (“name”)
- array of item names in (“name”)
- array of item values in (“name”)
- set (“name”) to ([array])
