Developers Information

Contributing Code

  • Use the Pull Request system, your request will be checked and discussed.
  • Create a single branch for that pull request
  • Code using the syntax as in PocketMine-MP. See below for an example.
  • The code must be clear and written in English, comments included.

Check the Contribution Guidelines on github for more information.

Thanks for contributing to PocketMine-MP!

API Documentation

Read the documentation on

Extending PocketMine-MP

PocketMine-MP has an API that you can use to add new things. For more information look at the plugins page.

How to use git

Clone PocketMine-MP

Get the clone URL from PocketMine/PocketMine-MP

$ git clone PocketMine-MP.git  # clone the original repository into PocketMine-MP.git
$ cd PocketMine-MP.git  # change directory to PocketMine-MP.git

How to make a pull request

Go to the PocketMine/PocketMine-MP repository and hit the Fork button. You should now have a forked repo from PocketMine/PocketMine-MP in your own repositories.


Get the clone URL from the fork and clone it into another directory:

$ git clone git clone <YOUR SSH/HTTPS clone URL> PocketMine-MP-Fork.git  # clone the original repository into PocketMine-MP-Fork.git
$ git checkout -b feature  # create and switch to branch feature (it can be any name)
$ git branch # shows current branch
* feature  # current branch

Make your changes to the code and commit it:


Only commit changes described in the commit message

$ git status  # check the status
$ git add <filename>  # add all changed files
$ git commit -m 'description of changes'  # make a commit with a message
$ git push origin feature  # push to your branch

Take a look at GitHub and make a pull request. If the pull request is accepted and merged, you can pull the changes back into your fork.


To pull from the original repository you need to add the upstream $ git remote add upstream

$ git checkout master  # switch back to the master branch
$ git fetch upstream  # download latest commits from the upstream
$ git merge upstream/master  # merge changes from upstream/master into your master branch

Remove the branch you made with

$ git branch -d feature  # remove the branch to keep it clean