# Learning the advanced tab in Makecode Arcade

**URL:** <https://forum.makecode.com/t/learning-the-advanced-tab-in-makecode-arcade/34163>\
**Category:** Show & Tell\
**Tags:** tutorial\
**Created:** [February 27, 2025, 5:50pm UTC](https://forum.makecode.com/t/learning-the-advanced-tab-in-makecode-arcade/34163 "2025-02-27T17:50:02Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![ADM\_F](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/adm_f/32/19808_2.png) [@ADM\_F](https://forum.makecode.com/u/ADM_F)\
**Post date:** [February 27, 2025, 5:50pm UTC](https://forum.makecode.com/t/learning-the-advanced-tab-in-makecode-arcade/34163/1 "2025-02-27T17:50:02Z")

</div>

Hello Fish here,  
I’m here to talk about the advanced tab in Makecode!

 ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/4/b/4bb41c2120ba8ec3672883900db7aa1bb0a684fa.png)

while you can code some cool stuff without it using it can take your games to another level  
(mostly Functions and arrays)  
this isn’t meant to be a end all be all for everything here but more so a starters guide to using these blocks

> **Arrays**
>
> Arrays are a datatype That hold MORE data that can also be changed during your game  
> All arrays are indexed meaning that data inside can be easily retrieved and in this case you do that buy using numbers  
> Arrays start at 0 then count up  
> 0,1,2,3, . . .
> 
> Example  
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/6/6/6603c1edbdb65afc4a7c4ffa2216c4b345f1fbbb.png)
> 
> Running this code would splash “Are” because 1 is the second piece of our array if we wanted to splash “Cool” we would need to change the 1 to a 2
> 
> Another Cool thing about arrays is that ANY data type can be used Including itself!
> 
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/4/e/4e73f29d9699a1cd94795e085e6069df6380789d.png)
> 
> But any array can only hold 1 type of data so if you had a picture array you couldn’t add a String or a number to it.  
> (you can in other languages but not in makecode arcade)
> 
> Now onto editing Arrays mid game
> 
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/9/2/9211fce81c99efd0ca15b94f06a573f8264b736b.png)
> 
> this code changes the array from  
> 0:Arrays 1:Are 2:Cool  
> to  
> 0:You 1:Are 2:Cool 3:| : D
> 
> Changing Value 0 changes the first value  
> Then adding a value to the end of a array increases its length with the new data
> 
> you can also use negative values to start from the end of a array
> 
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/d/1/d190ae3fdcec99aa706adc3180377d91b363fca5.png)
> 
> this would change the array from  
> 0:Arrays 1:Are 2:Cool  
> to  
> 0:Are 1:You  
> you set the LAST(-1) value to You  
> Then remove the first value

> **Functions**
>
> Functions are quite simple
> 
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/0/d/0d078e90f0fa3aba5de01f0eda35444e95c3bbe2.png)
> 
> Any Code you add to a function will run every time you call it
> 
> you can also add parameters that act as temporary Variables you can use
> 
> Example
> 
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/5/5/552c5c0656987d26cc71d5a8d65ddb1b5c0d33eb.png)
> 
> This function takes 2 values  
> A Image and a Sprite  
> It creates a sprite using the img and then places the new sprite on the Sprite defined earlier
> 
> you can also Return Values using Functions
> 
> Example
> 
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/7/f/7f149d30305c1242da7b18b24cfdc7ef2336caaf.png)
> 
> This function takes 1 Value  
> An Image Array (Because Animations are just An Array of imgs!)  
> And Flips each img in the array then returns a **new** Array with the new values
> 
> Using this Function ive been able to half all my time Copying animations
> 
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/e/8/e811f3655295591093a3ab8e81d30f6ba143b8b3.png)
> 
> Both of those animations are the same but because of the function i can recreate a flipped version instantly!
> 
> You can also edit and create a “Call” block by right clicking the function
> 
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/d/5/d543a191f6e35a87ff4aa47c61597a2a607c8006.png)

> **Images and Animations**
>
> So Images are quite important when creating any game and just setting a image when you create a sprite is nice but it can be taken a step further
> 
> one important thing to under stand about Animations is that they are just image array!
> 
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/6/b/6beb261a474998c0c0bbdf587aac64c53c4b3577.png)
> 
> And this works in the inverse too
> 
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/0/7/079d1fc4374ed3f6cfc4f3bb47c8513895e7e2dc.png)
> 
> And that’s mostly it for animations as this post isn’t about the animation process  
> if you are interested in that [check this out](https://forum.makecode.com/t/art-in-makecode/32971/2)
> 
> Now to the _fun_ part  
> Image manipulation is quite important if you want to use the same image twice or more times even if its just rotated
> 
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/7/9/79e83c382d0a5018b756604aba29d8f7593e5b25.png)
> 
> this can be nice if you just need a sprite to turn around or a recolor of a image you have already made  
> You can also use arrays to change every part of an Animation  
> just be sure to use the Clone image block to not change the original  
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/d/1/d19943509780bbce7fb2fad37b52ee6c1d622b77.png)
> 
> using this you can create any\* rotation of a animation you have by combining Images Functions and arrays!
> 
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/7/f/7f149d30305c1242da7b18b24cfdc7ef2336caaf.png)  
> \*without extensions you can only create \*\*90o rotations of a image or animations  
> \*\*and to get the 90o rotation you need to go into \*\*\*java or python  
> \*\*\*im not sure why its not a block
> 
> Have you ever Run into tile issues where you have to many tiles or some tiles that are only used once?(i swear this is about images)  
> Well there is a simple fix!
> 
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/7/1/7138febe4127278378869828791ec7dcf2564e7d.png)  
> You can use images instead of tiles when changing them  
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/7/e/7e41150840600c241d3a619c581fafdcdc06bafd.png)  
> you can take this ever farther by using Arcade-Tile-Utils  
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/e/5/e519d3072b03bb62dc7cf75cdca14219ed93bec2.png)  
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/1/e/1ea54e16112afdd9196cc58c86a6d8e5fde14d81.png)  
> Ill go into greater depth about how great tile-utils is in a later post

> **Text and Console**
>
> First thing to understand about Strings(Text) is that. . .  
> its arrays, it’s all arrays you can’t escape.  
> Ill go over each of these in order
> 
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/a/4/a4475a7f9ec7018884bbe0b92335e55c0c64c751.png)  
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/b/4/b4c73d5d66af8871dc0efa449cb870dd477743c8.png)
> 
> Length
> 
> * * *
> 
> Returns the length of a string  
> example  
> Hello  
> would return 5
> 
> Join
> 
> * * *
> 
> Merge 2 strings together  
> Example  
> Hello : world  
> would return  
> Helloworld
> 
> Parse to number
> 
> * * *
> 
> if you had a string that was a number ie “12345”  
> it would return a NUMBER 12345
> 
> Substring of
> 
> * * *
> 
> This is where the array part comes into play  
> if you had a string like such  
> “helloeveryoneiamstring”  
> you could create a substring of this by cutting out a part you want  
> if you did  
> Substring of “helloeveryoneiamstring” from 0 to 4  
> it would return “hello”  
> or if you did 13 to -1  
> it would return “iamstring”
> 
> Console
> 
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/9/1/9129887af4b5d9823684697a8e93363574b79fe8.png)  
> if you press menu you can open the console for debugging you can check whata code ran  
> ![image](https://us1.discourse-cdn.com/flex020/uploads/makecode/original/3X/d/5/d535e56fbba793094468049d11e69230447deb4e.png)  
> this is most useful when combining it with logic and Join strings
> 
> You can make Text Really REALLY complicated as you can cut them up to hold as many numbers and other data as you want but i couldn’t explain it all if i tried

In short  
arrays are **AWESOME**  
and if you didn’t know how to use them i hope you do now  
it can be so useful to keep info in one place or change a bunch of values at once!  
this entire post is basically all arrays but trust me they are so nice.

---

<div class="post-metadata">

**Author:** ![WoofWoof](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/woofwoof/32/32523_2.png) [@WoofWoof](https://forum.makecode.com/u/WoofWoof)\
**Post date:** [February 27, 2025, 5:58pm UTC](https://forum.makecode.com/t/learning-the-advanced-tab-in-makecode-arcade/34163/2 "2025-02-27T17:58:03Z")

</div>

This is so helpful for new users!! I saw the deleted version, so I was waiting for the real one so I could read the full thing!

---

<div class="post-metadata">

**Author:** ![Fixitude](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/fixitude/32/28576_2.png) [@Fixitude](https://forum.makecode.com/u/Fixitude)\
**Post date:** [February 27, 2025, 8:14pm UTC](https://forum.makecode.com/t/learning-the-advanced-tab-in-makecode-arcade/34163/3 "2025-02-27T20:14:48Z")

</div>

Wow… you should make these for all of the types of blocks to help new users, if I was new this would help me a lot!

---

<div class="post-metadata">

**Author:** ![redSprite](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/redsprite/32/34262_2.png) [@redSprite](https://forum.makecode.com/u/redSprite)\
**Post date:** [February 27, 2025, 8:56pm UTC](https://forum.makecode.com/t/learning-the-advanced-tab-in-makecode-arcade/34163/4 "2025-02-27T20:56:00Z")

</div>

Wait, a tutorial?  
I don’t think there is a subcategory for that.  
I don’t see them often, but this is cool.

---

<div class="post-metadata">

**Author:** ![InvalidProject](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/invalidproject/32/32554_2.png) [@InvalidProject](https://forum.makecode.com/u/InvalidProject)\
**Post date:** [March 5, 2025, 10:16pm UTC](https://forum.makecode.com/t/learning-the-advanced-tab-in-makecode-arcade/34163/5 "2025-03-05T22:16:44Z")

</div>

Hey! I’ve been reading what you’re doing and I took it upon myself to make a crappy project!

> **[3 seperate coin guns with arrays!](https://arcade.makecode.com/61569-36482-78845-90410)**
>
> Made with ❤️ in Microsoft MakeCode Arcade.

I just want to say thanks!! This topic really helped me visualize how good arrays are! In retrospect, it’s like Sprite Data, and it’s very efficient because it stores music and more!

You’re the best, Jerry! (not his irl name lol)

---

<div class="post-metadata">

**Author:** ![emory55](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/emory55/32/17766_2.png) [@emory55](https://forum.makecode.com/u/emory55)\
**Post date:** [May 7, 2025, 6:56pm UTC](https://forum.makecode.com/t/learning-the-advanced-tab-in-makecode-arcade/34163/6 "2025-05-07T18:56:19Z")

</div>

Thanks for the hints for the advanced tab.
