Skip to content


Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Bot/Proxy for Minecraft

Twitter @lukleh

Technical info

  • Support for Minecraft 1.5, protocol version 60
  • Code is for Python 2.7
  • Running under PyPy
  • Clean flake8 with long lines
  • Optional (mandatory for proxy mode) PyCrypto dependency if you want the datastream to be encrypted. Configurable in config.
  • Rest of the dependencies is included in "libs" directory.



  • Client side artificial player for Minecraft that runs on vanilla server in online(needs encryption) and offline mode. No modification on server/client side needed.
  • Basic pathfinding
  • Solid block awareness
  • Avoiding lava, web and cactus
  • Reasonable handeling of vines, ladders and water
  • No active interaction with the world. That is no digging, placing blocks, open/close doors, etc.
  • Use signs to set up points to rotate -> details below
  • Configure using command line arguments or modifying twistedbot/
  • In the idle state bot just stares at you, turning his head and body.


By default connects to localhost


Possible flags

pypy -h

In game commands

type "help" in chat to see available commands, then use "help command" for details.

If your username (commander) is set, then you can use chat to send commands to bot.

Sign waypoints

Use signs as a waypoints. When you want the sign to be part of waypoints that bot can travel between do the following, all without quotes:

  • place sign
  • line 1: 'waypoint'
  • line 2: If number, for example '1', '2' or '3.5', it will be used as an order of how to sort the waypoints in group (if line 3 contains text). Otherwise parsed as a name that waypoint can be addressed directly.
  • line 3: Groupname, if given number on line 2, this name groups waypoints.
  • line 4: Name, if number on line 2 and groupname on line 3, then has same function as name in line 2.


  • Intercepts network traffic between client and server, usefull for debugging and figuring out how Minecraft works.
  • If you are runnig server, proxy and client on the same machine, have quad core.
  • Keep in mind that thanks to the encryption, proxy has to first decrypt and then encrypt again. This may cause a noticeable delay.


To run with defaults, server is localhost:25565 and proxy is listening on localhost:25566. Then connect your client to localhost:25566.


When you close proxy, it prints packet statistics before exit.

Possible flags

pypy -h

To make your own filter, look in twistedbot.proxy_processors.default for an example.