# How much space can you use in the settings extension?

**URL:** <https://forum.makecode.com/t/how-much-space-can-you-use-in-the-settings-extension/3029>\
**Category:** Arcade\
**Created:** [August 5, 2020, 5:10pm UTC](https://forum.makecode.com/t/how-much-space-can-you-use-in-the-settings-extension/3029 "2020-08-05T17:10:10Z")\
**Posts on this page:** 12\
**Page:** 1

<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 5, 2020, 5:10pm UTC](https://forum.makecode.com/t/how-much-space-can-you-use-in-the-settings-extension/3029/1 "2020-08-05T17:10:10Z")

</div>

I am using the settings extension to store grid configurations in my game. It’s basically a big number array. For every occupied grid cell, 4 number elements are added to the array. Then, I write it to wherever settings put it.

My question is, that how much space do I have?

@mmoskal mentioned this in another thread:

> [@Having a Blast with MakeCode Arcade!](https://forum.makecode.com/t/having-a-blast-with-makecode-arcade/59/13):
>
> We actually now have ‘settings’ namespace. You can store up to 16k of data there. This works on all hardware and in the simulator.

Does 16K mean 16 kilo bytes, or 16 kilo bits? 16 kilo bits is only 2048 bytes, which is a big difference than 16384 bytes.

And, will the settings extension throw an error if it can’t write to the flash? If it doesn’t, is it possible for settings to return the number of bytes written or -1 depending on success of write?

Thanks in advance.

---

<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 5, 2020, 5:45pm UTC](https://forum.makecode.com/t/how-much-space-can-you-use-in-the-settings-extension/3029/2 "2020-08-05T17:45:12Z")

</div>

It means kilobytes! not sure about the settings question, I can’t remember if it throws or just clears the storage when the settings quota is reached

---

<div class="post-metadata">

**Author:** ![mmoskal](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/mmoskal/32/20_2.png) [@mmoskal](https://forum.makecode.com/u/mmoskal)\
**Post date:** [August 6, 2020, 3:02pm UTC](https://forum.makecode.com/t/how-much-space-can-you-use-in-the-settings-extension/3029/3 "2020-08-06T15:02:18Z")

</div>

When you reach the quota it will clear the storage and reset with 920 panic code.

You can use buffer methods or `msgpack.packNumberArray` to pack your data efficiently.

---

<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 6, 2020, 5:22pm UTC](https://forum.makecode.com/t/how-much-space-can-you-use-in-the-settings-extension/3029/4 "2020-08-06T17:22:44Z")

</div>

Is it possible for the settings extension not to clear everything and just return, like -2 for storage full? Because I don’t think clearing everything doesn’t seem like a good fallback to me…

> [@mmoskal](#):
>
> msgpack.packNumberArray

And how do I use it? Do I just pass an array into it and pass the return value into the settings `write as number array` function? And if I read it back from the settings, will I need to do some pre-processing before I get the original number array back?

---

<div class="post-metadata">

**Author:** ![mmoskal](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/mmoskal/32/20_2.png) [@mmoskal](https://forum.makecode.com/u/mmoskal)\
**Post date:** [August 7, 2020, 7:19am UTC](https://forum.makecode.com/t/how-much-space-can-you-use-in-the-settings-extension/3029/5 "2020-08-07T07:19:12Z")

</div>

Actually it seems `write as number array` is using `msgpack.packNumberArray`, so no need to use `msgpack.packNumberArray`.

You can file a feature request at [https://github.com/microsoft/pxt-arcade](https://github.com/microsoft/pxt-arcade) to include `settings.throwOnStorageFull()` or something similar. I’m not sure exactly how that would work though.

---

<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:** [October 5, 2026, 11:56pm UTC](https://forum.makecode.com/t/how-much-space-can-you-use-in-the-settings-extension/3029/6 "2026-10-05T23:56:38Z")

</div>

It’s 16 KB, does that mean the intire memory, or just an array? what I mean is could I do this:

```typescript
for (const a of data) { // data is a number[][] where data[i] is 16 KB
    settings.writeNumberArray("a1", array1)
}

```

would it write more than 16 KB of memory, or would it still panic?

---

<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:** [October 6, 2026, 4:07am UTC](https://forum.makecode.com/t/how-much-space-can-you-use-in-the-settings-extension/3029/7 "2026-10-06T04:07:28Z")

</div>

Think entire

---

<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:** [October 6, 2026, 4:11am UTC](https://forum.makecode.com/t/how-much-space-can-you-use-in-the-settings-extension/3029/8 "2026-10-06T04:11:28Z")

</div>

16 kb for everything your game stores

---

<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:** [October 6, 2026, 9:44pm UTC](https://forum.makecode.com/t/how-much-space-can-you-use-in-the-settings-extension/3029/9 "2026-10-06T21:44:30Z")

</div>

bro revived himself from the dead/j i know you check the forums very often also i may return to attack of the serpents 2

---

<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:** [October 6, 2026, 9:44pm UTC](https://forum.makecode.com/t/how-much-space-can-you-use-in-the-settings-extension/3029/10 "2026-10-06T21:44:34Z")

</div>

wait the code should be

```auto
for (let i = 0; i < data.length; i++) { // data is a number[][] where data[i] is 16KB
    settings.writeNumberArray("d" + i, data[i]) // d0=d[0], d1=d[1], d2=d[2], ...
}

```

---

<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:** [October 7, 2026, 1:48am UTC](https://forum.makecode.com/t/how-much-space-can-you-use-in-the-settings-extension/3029/11 "2026-10-07T01:48:45Z")

</div>

> [@TheEarth](#):
>
> bro revived himself from the dead/j

yes as you mentioned i check the forums frequently 🙂 i work slowly on my projects 🙂

> [@TheEarth](#):
>
> i may return to attack of the serpents 2

are you talking about working on an unofficial sequel? then sure as long as that its not official is clearly posted

---

<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:** [October 7, 2026, 4:56pm UTC](https://forum.makecode.com/t/how-much-space-can-you-use-in-the-settings-extension/3029/12 "2026-10-07T16:56:56Z")

</div>

its somewhere in my many topics in spetember 2025
