Customizing Minecraft For Kids

September 5, 2020

The family has had a lot of fun in Minecraft: roller coasters, secret underwater bases, timed fireworks displays and more just with the base functionality built into the game.

But things escalated pretty quickly once we discovered (mostly through Youtube) how modifiable Minecraft is. There are a dizzying array of customization options - below is my distillation, ordered roughly from least technical to most technical.

NB: Minecraft has a couple of different “editions”. The following applies to Bedrock Edition, which is the version you get on iPhones/iPads.

  1. Purchasing Mods

    You can get mods in the built-in Marketplace authored by a wide variety of people. There are many free and $$ mods available. You can’t further customize these mods, but if they already do what you want, this can be a fast way to add some variety to the game.

  2. Commands

    Minecraft has a deep variety of in-app commands that can be accessed from the chat console. Bring up chat, and then you can write out a command like /summon chicken and a chicken will spawn near you. /fill can create blocks in a rectangular area.

    Certain commands only work in a particular version or Edition of Minecraft, but all of the most useful ones work in both Bedrock and Java edition.

  3. Command Blocks

    Once you’ve mastered commands, you may want a command to run based on something happening in game vs. having to type it in manually. (For example, by flipping a switch, you run the /summon command to summon a chicken). Command Blocks are a special type of block which run the command you specify when they are activated in game. To get one in your inventory, run the command “/give @s command_block” to get a command block. Then, place it somewhere, then tap on it to configure it and enter the command you want to run.

  4. Tynker

    Tynker offers a nice visual tool for building minecraft customizations. The tool itself is very similar to Scratch, with a “block” based approach to making new behaviors and logic.

    Scratch Screenshot

    However, the free service was really unreliable so I can’t recommend it and we ended up building our own websocket server instead.

  5. Websocket Server

    This one requires some programming knowledge.

    Minecraft has the ability to connect to an external server using the /connect command. The server will receive “events” from the world, and has the ability to run commands in the world.

    Sandertv/mcwss is a Minecraft websocket server. It is written in Go, and has some event and command sending logic built on top. I found it pretty straightforward to build and customize.

        // Some sample snippets
    
        func handleMobKilled(player *mcwss.Player, event *event.MobKilled) {
        // You can find these ids here under "Data Values": https://minecraft.gamepedia.com/Pillager#Data_values
        if (event.MobType == 12) {
            var cmd string
            cmd = fmt.Sprintf("summon pillager ~%d ~1 ~%d", i, j)
            player.Exec(cmd, func(response map[string]interface{}){})
        } else if (event.MobType == 114) {
            player.Exec("summon slime ~1 ~1 ~1", func(response map[string]interface{}){})
        } 
        }
    
        // Inside of main
        server := mcwss.NewServer(nil)
        server.OnConnection(func(player *mcwss.Player){ 
            player.OnMobKilled(func(event *event.MobKilled) {
                handleMobKilled(player, event)
            })
        }
        

    Some of the more fun changes we made were to make spawn armies around players, respond to the killing of a certain mob with new buildings or creature spawns, intercept words happening in chats to make specific things happen, spawn giant pyramids of tnt, and more.

    Only the main player can run the /connect command, if you are connecting to the websocket server in a multiplayer Minecraft session.

  6. Behavior and Resource Packs

    Minecraft.net Add-ons Site has some good documentation on how to build these packs, and some working sample packs. Behavior packs are fairly intricate JSON files, and allow you to create new mobs and remix and parameterize existing in-game behaviors. Resource packs are similarly defined, but let you change the look and add new textures to the game. We haven’t done these yet personally, but it’s the next step up. If you want a chicken that explodes like a creeper, you need to build a behavior pack.

  7. “Real” Minecraft Mods

    Many of the mods that youtubers are showing off are built using tools like MCreator. These mods let you change and add much more fundamental behavior and concepts than the other customization options above, but a) These mods require more knowledge and complexity than the other options and b) are specific to the Java edition of Minecraft and so won’t work with the iPad/iOS Minecraft app.

Coda: Why Minecraft?

  • Works pretty well for young kids. No fast reflexes or complex control schemes required (most of the time).

  • Low violence. The game is not built around violence. There is some fighting and weaponry, but it’s not required - you can also spend the game mining, building, and farming. Where you do fight, the depictions are simple and abstract.

Player killing a zombie in Minecraft
  • Enables imaginative play, especially in Creative Mode. Minecraft has two main modes: Creative and Survival. Creative mode makes you invincible and lets you pull as much of any building blocks as you’d like.

  • Safe by default. The networked / chat options are fairly segregated, and it supports local network play where the game by default only shows player on the same Wi-fi network. This is how our two kids play with each other without any exposure to outside people.

Tags: #minecraft