Skip to content
(unmaintained) Minecraft Beta multiplayer server
Go Shell
Find file
Pull request Compare This branch is 843 commits ahead of stefanha:master.
Failed to load latest commit information.
bin Making the source directory structure more consistent
chunkstore go fmt
cmd go fmt
command Fix mock generation, add mocks to checked in files.
diagrams Adding design doc and diagram.
docs Fixed some formatting in
entity Correct many references to packages under chunkymonkey.
game go fmt
gamerules Fix gamerules unit test panic.
gamerules_mock Fix mock generation, add mocks to checked in files.
generation Correct references to perlin and game.
logdebug Move packages around.
nbt First pass at fixing tests.
nbtutil go fmt
perlin Move packages around.
permission Move packages around.
physics Fix mock generation, add mocks to checked in files.
player go fmt
proto Correct many references to packages under chunkymonkey.
record Move packages around.
server_auth Move packages around.
shardserver Correct many references to packages under chunkymonkey.
testencoding Move packages around.
testmatcher Move packages around.
types Move packages around.
util Move packages around.
window go fmt
.gitignore Fix mock generation, add mocks to checked in files. Modified contributors lists. style changes.
Makefile Fix mock generation, add mocks to checked in files. Update status section in
blocks.json Added piston extension block.
furnace.json Moved furnace testing to use planks, and removed a dupe furnace data …
groups.json Re-added "login" permission by default (oops).
items.json Adding new blocks in 1.8 (and melon slices).
users.json Put permissions JSON for testing into the unit tests.

C(o o)O     C H U N K Y   M O N K E Y
  (.)   \
 w====m==|       minecraft server

Chunky Monkey is a Minecraft Beta multiplayer server. It is licensed under the MIT open source license, please see the LICENSE file for more information.


Mailing list:

Contact: John Beisley


Chunky Monkey is no longer being maintained by Huin. It does not run anything that could be considered a full game experience.

Worlds generated by Alpha or Beta Notchian clients or servers can be loaded by the server.

Features include:

  • Compatibility with Minecraft Beta clients.
  • Blocks may be dug, items picked up, and blocks placed.
  • Crafting using the 2x2 or 3x3 crafting grids and the furnace.
  • Partial item physics.
  • World persistency.
  • Basic world generation.

Currently missing features include:

  • Block physics.
  • Complete item physics (there is a minimal implementation in place).
  • Mob behaviour.
  • Many block interactions.
  • Decent world generation.


Huin is no longer actively developing Chunky Monkey. People are welcome to take it over with a fork.


The Go toolchain must be installed. Note that chunkymonkey is developed against the current stable release of the Go toolchain, so might not compile against the weekly releases (gofix might be able to fix such cases).

Building & Testing

Any of the binaries in the cmd subdirectory can be built with the standard go command, for example, the server can be compiles with:

$ go install

The mocks can be regenerated with:

$ make clean mocks

The unit tests require GoMock to be installed:

$ go install

The unit tests can be run with:

$ go test


Serve up a single player world:

$ chunkymonkey ~/.minecraft/saves/World1
2010/10/03 16:32:13 Listening on  :25565


For debugging it is often useful to record a player's actions and replay them one or more times later. This makes it possible to simulate multiplayer games without having real people logging in.

To record a session, run the intercept proxy:

$ intercept -record player.log localhost:25567 localhost:25565

Which will accept client connections on localhost port 25567 and relay the connection to the server at localhost port 25565. This has the side effect of display packets that pass through to stderr.

Connect your Minecraft client to localhost:25567, and a record of the clients actions will be stored to player.log-1, player.log-2 etc. (one file per client connection).

To replay a session:

$ replay localhost:25565 player.log-1
Something went wrong with that request. Please try again.