Create a new Magikcraft World

Create a new Magikcraft World

The entire process is illustrated in the following process diagram, and step-by-step instructions are given below.

  • Create a new world in Minecraft with the command mvcreate ${name} normal.
    For example:
mvcreate intro normal
  • Create a GitHub repo for it in the Magikcraft GitHub organisation using the naming convention world-${name}, for example: world-intro.
    Make sure it is a private repo, and that it is in the Magikcraft organisation:
  • Run the following command in the world directory to make it a git repo:
git init
  • Copy the first command from the new GitHub repo's instructions for adding an existing repository, and run the first one only (git remote add ... ) in the new world directory:
  • Run the following command in the world directory to make it a package:
npm init -y

This generates a package.json file, which allows the world to be managed by npm.

  • Edit the package.json file and change the package name to @magikcraft-world/${name}.template. For example:
  "name": "@magikcraft-world/intro.template",

The @magikcraft-world part makes it easy to find world packages in our registry, and prevents you from accidentally publishing it to the public npm repository. The .template part signals to our Multiverse code to refresh the world when players quit, so that it never gets damaged. This is the name when the world is installed from a package.

  • Add the following lines to the package.json file:
  "publishConfig": {
    "registry": "https://npm.magikcraft.io"
  },

This allows you to publish the package to our registry, and prevents it from being published to the public npm repository.

  • Update the description field in the package.json file.
  • Update the author field in package.json, using your GitHub account's email address, like this:
"author": "Josh Wulf <josh@magikcraft.io>"
  • Add a file called README.md in the world's directory. Make the first line a heading with the world's name, for example:
# Intro World
  • Add some description of the world in the README.md file, and add information about what lesson it is for and any code that it needs to run.
  • Run the following commands in the world directory to push it to GitHub:
git add .
git commit -m "Initial commit"
git push -u origin master
  • To publish the world so that it can be installed in another Magikcraft server, run:
npm publish