# New tools in makecode tutorial

**URL:** <https://forum.makecode.com/t/new-tools-in-makecode-tutorial/22285>\
**Category:** Minecraft\
**Created:** [September 5, 2023, 5:44pm UTC](https://forum.makecode.com/t/new-tools-in-makecode-tutorial/22285 "2023-09-05T17:44:16Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Lukasz](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/lukasz/32/10317_2.png) [@Lukasz](https://forum.makecode.com/u/Lukasz)\
**Post date:** [September 5, 2023, 5:44pm UTC](https://forum.makecode.com/t/new-tools-in-makecode-tutorial/22285/1 "2023-09-05T17:44:16Z")

</div>

Hello, I have idea that could be useful.  
Makecode - When creating a tutorial, adding a new special block that would make the program require the use of given blocks a certain number of times.

’ ’ 'required  
agent.move(BACK,1) - 2  
’ ’ ’

This would mean that you have to use this block 2 times in your program.  
Often when I create tutorials for children, e.g. learning loops, children do my task without using them, it would be nice to be able to force them to a specific solution

---

<div class="post-metadata">

**Author:** ![KIKIvsIT](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/kikivsit/32/10492_2.png) [@KIKIvsIT](https://forum.makecode.com/u/KIKIvsIT)\
**Post date:** [September 5, 2023, 5:45pm UTC](https://forum.makecode.com/t/new-tools-in-makecode-tutorial/22285/2 "2023-09-05T17:45:32Z")

</div>

I agree. This would be super useful when trying to shoehorn students into using specific skills.

We do have the ability to check to see if they’ve used a block (tutorial validation) but it will still let them move on without it.

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [November 8, 2023, 6:15pm UTC](https://forum.makecode.com/t/new-tools-in-makecode-tutorial/22285/3 "2023-11-08T18:15:04Z")

</div>

Any updates on this, @KIKIvsIT?

I have a related issue or feature request:  
In much of my teaching material, it would be nice to check if some blocks, variables, functions etc., as @Lukasz suggests, are present and/or used(correctly).

Here is an example resembling a jigsaw puzzle, where the students would assemble the program correctly by using blocks already on the canvas:

> **[Kongen](https://arcade.makecode.com/94474-03458-23639-37784)**
>
> Made with ❤️ in Microsoft MakeCode Arcade.

But there seems to be no(or I cannot figure out) any such [“meta programming”](https://en.wikipedia.org/wiki/Metaprogramming) properties in MakeCode, which would be very useful in an educational setting. Even [checking for undefined](https://codedamn.com/news/javascript/check-if-undefined-null) does not work, since blocks on the canvas aren’t even declared in the underlying STS program, so I get the `Cannot find name ' '` error.

So, do you know of any such “meta programming” techniques already in MakeCode?

If not, my input here in this topic, would be that adding such “meta programming” capabilities could be very helpful for educators, and if done inside the programming/language level instead of in the tutorial scripting, it would be useful both for tutorials and any other programming assignment thinkable.

---

<div class="post-metadata">

**Author:** ![KIKIvsIT](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/kikivsit/32/10492_2.png) [@KIKIvsIT](https://forum.makecode.com/u/KIKIvsIT)\
**Post date:** [November 8, 2023, 8:43pm UTC](https://forum.makecode.com/t/new-tools-in-makecode-tutorial/22285/4 "2023-11-08T20:43:10Z")

</div>

We aren’t currently doing any Arcade updates, so these features won’t be added any time soon. Do feel free to pop over to our [Github Repo](https://github.com/microsoft/pxt-arcade/issues), though, to add feature requests for the next time the team cycles back around to Arcade.

---

<div class="post-metadata">

**Author:** ![Vegz78](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/vegz78/32/1201_2.png) [@Vegz78](https://forum.makecode.com/u/Vegz78)\
**Post date:** [November 8, 2023, 10:28pm UTC](https://forum.makecode.com/t/new-tools-in-makecode-tutorial/22285/5 "2023-11-08T22:28:33Z")

</div>

Filed:

> <https://github.com/microsoft/pxt-arcade/issues/6201>
>
> \*\*Is your feature request related to a problem? Please describe.\*\*
> In an educat…ional setting or a tutorial, it would be useful to be able to check whether a required block or command is placed/present.
> 
> \*\*Describe the solution you'd like\*\*
> Either in the turorial scripting language, or some kind of meta programming functionality in STS being able to check for blocks or commands being used or present, e.g.:
> 1. ’ ’ 'required
> agent.move(BACK,1) - 2
> ’ ’ ’
> 
> 2. if exists(variable/function/block/command) then {}
> 
> \*\*Describe alternatives you've considered\*\*
> Searched the forum for workarounds/alternatives, no luck, asked to file a feature request here.
> 
> \*\*Additional context\*\*
> Further details:
> https://forum.makecode.com/t/new-tools-in-makecode-tutorial/22285

@Lukasz: Feel free to update or specify the request better.

> [@KIKIvsIT](#):
>
> We aren’t currently doing any Arcade updates, so these features won’t be added any time soon.

Please don’t tell me that MC Arcade is going into an indefinite hiatus with the risk of silently and secretively following in Code Connection’s footsteps? Then I would really cry you a river!… ❤️‍🩹

---

<div class="post-metadata">

**Author:** ![KIKIvsIT](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.makecode.com/kikivsit/32/10492_2.png) [@KIKIvsIT](https://forum.makecode.com/u/KIKIvsIT)\
**Post date:** [November 9, 2023, 6:14pm UTC](https://forum.makecode.com/t/new-tools-in-makecode-tutorial/22285/6 "2023-11-09T18:14:17Z")

</div>

I added this to the ticket, but we do have the option to include code validation…it just doesn’t force the block to appear in the code. Maybe it’s a good first step?

> **[Tutorial basics](https://makecode.com/writing-docs/tutorials/basics#code-validation-validation-local-and-validation-global-sections-)**
>
> Tutorials are simply markdown documents with a series of steps to complete a coding activity. The document uses a simple two-level structure where each level 2 heading (##) is a new step.

> [@Vegz78](#):
>
> Please don’t tell me that MC Arcade is going into an indefinite hiatus with the risk of silently and secretively following in Code Connection’s footsteps? Then I would really cry you a river!… ❤️‍🩹

No way! The weird thing about MakeCode is that we actually support 3+ products and have a very small team. That means that the entire team rotates products every few months and this year we spent a lot of time on micro:bit and Minecraft, meaning that we skipped Arcade.

Some of our team, like Richard and I, will work on Arcade projects anyway, but those projects are generally either smaller or take longer since they’re individual. The team will get back around to it soon, sometimes it just depends on which wheels are squeakiest 🙂
