Python Plugin Loader

PythonLoader 0.3.4

This plugin allows developers to code bukkit plugins in the python programming language. The plugins in python can either use a thin wrapper to the standard Bukkit API, or the newer decorator API. For more detailed instructions for installing this plugin and how to code plugins, take a look into the Readme on Github.


  • Load bukkit plugins written in python.

Installation: Put PythonLoader.jar into plugins directory and jython.jar into lib directory (within bukkit folder not plugins folder).


The Readme on github contains an introduction to creating plugins in python
Also make sure to check out @zaph34r's tutorial series

I have to give special credits to lahwran who created the whole decorator API and corrected many of my mistakes. :)

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of aberts10 aberts10 Mar 26, 2015 at 12:51 UTC - 0 likes

    @Intangir This is great for people that don't know java though, but it may not be as great for people who know java.

  • Avatar of cyberlis cyberlis Aug 12, 2014 at 07:14 UTC - 0 likes

    I forked Python Plugin Loader and changed it a lot. I removed decorator api. Now it is only Class API. To write a plugin with this api is almost identical to writing one in java, so much so that you can safely use the documentation on how to write a java plugin; simply translate it into python. One of the new feature is to [re]load/unload plugins without server restarting

    Just take a look Soon i will give some nice plugins (fishing plugin, chat plugin, time rangs) writte in python

  • Avatar of Intangir Intangir Jul 08, 2014 at 20:21 UTC - 0 likes

    gdude claims to have fixed it

    i haven't tested it yet

    im thinking of migrating away from python scripts anyway though.. i mean it seemed like a good idea but i just end up having to debug twice as long because i don't get any of the compile time error checks

    also it seems to frequently send the wrong events to the wrong handlers

    Last edited Jul 08, 2014 by Intangir
  • Avatar of xjomo xjomo Mar 16, 2014 at 01:03 UTC - 2 likes

    The latest bukkit version breaks this plugin! (see

  • Avatar of Intangir Intangir Feb 08, 2014 at 05:47 UTC - 0 likes

    how can you save persistent data across sessions? like in a config.yml doc or something

    im using the decorator version of the scripts

    __plugin_name__ = "Tweak_Test"
    __plugin_version__ = "1.0"
    def onEnable():
        log.prefix = "[%s] " % __plugin_name__;"Enabling %s v%s" % (__plugin_name__, __plugin_version__));
    def onDisable():"Disabling %s v%s" % (__plugin_name__, __plugin_version__));
    Last edited Feb 08, 2014 by Intangir
  • Avatar of RedSeamonster RedSeamonster Jan 31, 2014 at 02:37 UTC - 0 likes

    @sat481: Go

    See this: If it doesn't work, try consulting the forums or the IRC channel, it sounds like more of a general Bukkit issue versus solely PythonLoader.

    Last edited Jan 31, 2014 by RedSeamonster


  • Avatar of sat481 sat481 Jan 27, 2014 at 18:22 UTC - 0 likes

    This is driving me mad now. I am trying to place a door in a house that is built with the command /buildhouse. The house builds fine, with a gap for the door, but when I try and place a door in the gap I only get the bottom half. I have tried adding another WOODEN_DOOR block to the top, but then I get two door items. He is a snippet of my code that places the actual door relative to the player:

    block = blocks.getRelative(3,0,0)


    I have the same problem with beds also, I know it is something to do with the them been multiblock items but nothing I have tried has worked, so any help much appreciated.


    Last edited Jan 27, 2014 by sat481
  • Avatar of gdude2002 gdude2002 Jan 05, 2014 at 16:55 UTC - 0 likes

    @HungryBehr: Go

    I've raised this issue on GitHub, maybe if you could also weigh in there things could be done faster.

    EDIT: I fixed this, here (there's no plugin DL there, as is the bukkitdev rules). I don't feel like it's a very ideal fix, so I didn't submit a pull request, and won't be releasing a public version of my fix - but if you want a copy of it despite your better judgement, PM me.

    Last edited Jan 05, 2014 by gdude2002

    My plugins: Painter | WordWarning | ArchBlock

    Owner of The Archives

  • Avatar of RedSeamonster RedSeamonster Dec 20, 2013 at 03:33 UTC - 0 likes

    @Brixishuge: Go

    Can confirm, it's a pretty irritating issue.

    I have been downgrading to older versions of CB to troubleshoot (as a work around), but hopefully someone will come up with a way to fix the loader.

    Last edited Dec 20, 2013 by RedSeamonster
  • Avatar of Brixishuge Brixishuge Dec 08, 2013 at 18:41 UTC - 0 likes

    Since 1.7.2, errors are messed up and don't say anything useful...


Table of contents

  1. 1 PythonLoader 0.3.4


Date created
Aug 27, 2011
Last update
May 14, 2013
Development stage
GNU General Public License version 3 (GPLv3)
Curse link
Python Plugin Loader
Recent files