PySpigot¶
A Python scripting engine for your Minecraft server.
What is PySpigot?¶
PySpigot is a Spigot/Bukkit plugin that acts as a Python scripting engine that runs in Minecraft. Users can write Python scripts, which, for lack of a better term, act as "mini-plugins". Because PySpigot runs entirely in the Minecraft environment on Java, scripts have access to the full server, including the entire Bukkit API, as well as the APIs of other plugins. With PySpigot, you can write a script that does the exact same thing a plugin can but in a small fraction of the time. PySpigot is also excellent for individuals who know Python, but not Java. PySpigot is a lot like Skript, but much more powerful.
What Can PySpigot Do?¶
-
Write Scripts Quickly, in Python
PySpigot scripts can do all the same things that a plugin can do. However, PySpigot scripts can be written in a fraction of the time it takes to write a full plugin.
PySpigot is also great for people who know Python, but not Java - no Java experience is required!
-
Easy to Use
PySpigot's features are designed with ease of use in mind. It is easy to use for simple tasks, but you can also create really complex scripts. The possibilities are endless!
-
Unrestricted Bukkit API Access
Because PySpigot runs inside of the Minecraft/Java environment, PySpigot scripts have complete access to the Bukkit/Spigot API.
Register event listeners, create commands, schedule tasks, work with config files, and more!
-
Comprehensive Error Logging
PySpigot includes comprehensive error logging on a per-script basis, both to console and to a script-specific log file, making debugging as easy as possible.
-
Full Support for External Java/Python Libraries
PySpigot includes full support for loading and working with external libraries such as the Apache Commons libraries.
-
Highly Configurable
PySpigot was designed to be as configurable as possible. There are several editable script-specific options, as well as a variety of plugin-wide options that can be configured.
-
Full MySQL, MongoDB, and Redis Support
PySpigot includes support for MySQL, MongoDB, and Redis and greatly simplifies these
-
Full ProtocolLib Support
PySpigot has built-in support for ProtocolLib, making it easy to work with packets. There is full support for registering packet listeners, packet modification, and sending packets.
-
Full PlaceholderAPI Support
PySpigot also has built-in support for PlaceholderAPI, making it easy to register placeholder expansions.
-
Open Source, Apache 2.0 License
PySpigot's source is fully available on GitHub, and it's licensed under the Apache 2.0 license.
-
And More!
I am constantly working on new features and improvements to make scripting in Minecraft the best possible experience.
Ideas are always welcome. If you have an idea for a new feature, submit a feature request.
Examples¶
Check out any of the examples to see some examples of PySpigot scripts.
Getting Started¶
See the Quick Start Guide for a brief tutorial. Check out the rest of the documentation for more advanced usage.
Discord¶
PySpigot has an official Discord server with help channels, bug reporting, and more. I'm usually active on Discord, so if you want to reach me, joining the Discord server is an excellent way to do so. Join the Discord server here.
Metrics¶
PySpigot uses bStats to collect anonymous usage data for PySpigot. I use these data to inform me about PySpigot's users, including which country they are from (so that I can offer support in popular non-English languages) as well as what Minecraft and Java versions are most popular with users. bStats also collects some other useful data, including server software (Spigot, Paper, Purpur, etc.), plugin version, and number of scripts loaded. Sensitive or identifying information is not collected.
If you would like to opt out of this feature, set metrics-enabled
to false
in PySpigot's config file. Alternatively, you can disable bStats server-wide by setting enabled
to false
in /plugins/bStats/config.yml.
Licensing Information¶
PySpigot is licensed using the Apache 2.0 license. Please check out the License Info page for more information.