Skip to main content

The tutorial placed on the github stopped working



  • Debbie Alexander
    Moderator Beacon of Knowledge Super Star

    I'm sad to hear about it, but I'd love to see them! Can you link to any? Are they MinecraftEDU tutorials?

  • Frank Claikens

    We've had the same problem here at codecosmos and we think it is related to the renaming of the 'master'-branch to 'main'-branch.

  • Brandon Murry

    What process are y'all using to get Tutorials hosted on GitHub to actually load up in game?

    I've tried to create tutorials using the instructions at The regular import feature does not work with these tutorial in-game, although I can get them to load at (but they won't run in-game in this case). The only way I've gotten my tutorials to load up in-game is to add a shared link from the tutorial-tool into the education.json file of an exported world. Is there some easy trick or URL format to using a link to my tutorials on GitHub within the education.json file instead?

  • Debbie Alexander
    Moderator Beacon of Knowledge Super Star

    Brandon Murry - Super exciting to hear that you are making tutorials. I am also interested in hearing answers to your questions. What kind of coding do you enjoy?

  • Brandon Murry

    Hey Debbie!

    I teach both a introduction to programming class and a 3D animation course. I was trying to teach the basics of programming using Javascript, and got a fair amount of tutorials up on GitHub:

    However, there are some "gotchas" with regards to designing tutorials and how students are able to follow along. For instance, you can only add ONE section of template code, so adding additional tutorial code between steps isn't possible as far as I know. Also, the MEE code editor will perform some unwanted formatting of the imported tutorial code (all the code is smashed together by taking out blank lines). The other big problem I came across was that Javascript coding in MEE requires using some advanced programming features that I feel generate a little too much cognitive load for students just getting started programming (namespaces, methods, callback functions). Once we've learned programming in a simpler environment, we will come back to MEE and give it another go and hopefully I'll have figured out more about importing tutorials directly from GitHub rather than copying and pasting into the Tutorial Tool and grabbing the share URL.

    In my 3D animation courses we are creating simple Minecraft Bedrock mods using behavior packs and resource packs. and have some great information on getting started. It's a pretty nasty process but we have found a workflow. Students have created custom items, blocks, recipes, skins, entities, and animations! The coding side of addon development is still a mystery to me, but overall we are having a lot of fun!

    Let me know if you hear of anyone getting GitHub tutorials working well with MEE! I'd really love for teachers to be able to share and remix programming activities for our students.

  • Jasper Rutten

    Hey Brandon,

    It also took a while and a lot of trial and error to get it working here. I'll try my best explaining it.

    First of all, your git looks good i think, the pxt.json file is most important here, so i think the main problem is in minecraft itself. 

    So, to get a tutorial working in M:EE you can add it in the education.json file as I believe you've already done. however this alone will limit you to 1 tutorial. You will need to make a datapack for your world to make it possible to switch tutorials during your lesson. I'm going to assume you know the basics of datapacks, if that's not the case you can read up on it here:

    The datapack can use a tick.json that makes a function get executed every tick, this function can control other functions. Alternatively you can execute the functions by commandblocks in the world. Create a function to control tutorials (example: tutorials.mcfunction).

    I will use my function as en example and explain what's going on: 

    execute @s[tag=tutorial_debug] ~ ~ ~ say tutorial
    execute @s[tag=!tutorial] ~ ~ ~ scoreboard objectives add tutorial dummy
    execute @s[tag=!tutorial] ~ ~ ~ scoreboard players set @s tutorial 0
    execute @s[tag=!tutorial] ~ ~ ~ tag @s add tutorial

    #no exercise
    execute @s[scores={progress=1..9,tutorial=!1}] ~ ~ ~ codebuilder reset @s
    execute @s[scores={progress=1..9,tutorial=!1}] ~ ~ ~ codebuilder navigate @s false
    execute @s[scores={progress=1..9,tutorial=!1}] ~ ~ ~ scoreboard players set @s tutorial 1

    #exercise 1
    execute @s[scores={progress=10..13,tutorial=!2}] ~ ~ ~ codebuilder reset @s
    execute @s[scores={progress=10..13,tutorial=!2}] ~ ~ ~ codebuilder navigate @s false
    execute @s[scores={progress=10..13,tutorial=!2}] ~ ~ ~ scoreboard players set @s tutorial 2

    #exercise 1 lvl 5-6
    execute @s[scores={progress=14..,tutorial=!3},x=93,y=74,z=-28,r=25] ~ ~ ~ codebuilder reset @s
    execute @s[scores={progress=14..,tutorial=!3},x=93,y=74,z=-28,r=25] ~ ~ ~ codebuilder navigate @s false
    execute @s[scores={progress=14..,tutorial=!3},x=93,y=74,z=-28,r=25] ~ ~ ~ scoreboard players set @s tutorial 3

    #exercise 2
    execute @s[scores={progress=14..,tutorial=!4},x=32,y=70,z=1,r=25] ~ ~ ~ codebuilder reset @s
    execute @s[scores={progress=14..,tutorial=!4},x=32,y=70,z=1,r=25] ~ ~ ~ codebuilder navigate @s false
    execute @s[scores={progress=14..,tutorial=!4},x=32,y=70,z=1,r=25] ~ ~ ~ scoreboard players set @s tutorial 4

    The 2 most important parts are the "execute @s[...] ~ ~ ~ codebuilder reset" and "execute @s[...] ~ ~ ~ codebuilder navigate @s false <url>" parts.

    The reset call will reset the codebuilder (will wipe any progress children have made in it).
    The navigate will set the new tutorial for the player.
    The link in the command needs to look like this:<git link>
    Git link example:

    All the rest of the code is controller code to determine when a player's tutorial should be changed.
    Scoreboards are the way to go for this,
    It also makes sure that it only changes (and resets) the tutorial once, as it will cause lag and wipe all changes in the codebuilder otherwise (at 20/sec).

    Last thing that might be useful to know is that makecode will cash your markdown files, so if you make changes to it it might take a couple of minutes (it can take up to 15 minutes) before changes can be seen.

    I hope this helped! If this still doesn't work we can set up a voice call or something to help.

  • Hey Jasper,

    It's been a minute, but I'm finally circling back around to this. I haven't experimented much lately, but if you're still out there I did run into an issue. In your explanation for how to switch tutorials, you execute a "codebuilder" command. Unfortunately, my Minecraft Education doesn't seem to have a codebuilder command available!

    I wish Microsoft would just let us use the import button and students could just paste the a link to the github repo... All these "hacks" to create tutorials and try to share them are a pain in the butt.

  • Hi Jasper Rutten, does your example still work after the update? Because the "codebuilder navigate" command doesn't work for me.

  • Brandon Murry Hi In new version this command see like this.  /execute as @p run codebuilder navigate @s false


Please sign in to leave a comment.