Welcome to the official Python plugin template for Endstone. This repository provides a basic structure and a sample plugin to help developers start writing plugins for the Bedrock Dedicated Servers in Python using the Endstone API.
- Python 3.9 or higher.
- Endstone installed and set up in your Python environment.
python-plugin-template/
├── src/ # Main source directory
│ └── endstone_plugin/ # Directory for the plugin package
│ ├── __init__.py # Initializer for the package, importing ExamplePlugin class from example_plugin.py
│ ├── example_plugin.py # Implementation of ExamplePlugin class
│ └── python_command.py # Custom command executor for /python
├── .gitignore # Git ignore rules
├── CHANGELOG.md # Changelogs
├── LICENSE # License details
├── README.md # This file
└── pyproject.toml # Plugin configuration file which specifies the entrypoint
-
Clone this Repository
git clone https://github.com/EndstoneMC/python-plugin-template.git
-
Navigate to the Cloned Directory
cd python-plugin-template -
Configurate
- Open the
pyproject.tomland change thenameunder the[project]section fromendstone-pluginto your own name for your plugin. - Rename the folder
src/endstone_plugintosrc/{your_plugin_name}. - Rename the
PythonSamplePluginclass withinsrc/{your_plugin_name}/__init__.pyto, for example. - Open the
pyproject.tomlagain and update the entrypoint under the[project.entry-points."endstone"]section.
- Open the
-
Test Your Plugin
When developing the plugin, you may want to install an editable package to your Python environment, this allows you to update the codes without having to reinstall the package everytime:
pip install -e .NOTE: It is strongly recommended to create a virtual environment for your Endstone server and plugins. When installing your plugin using
pip install, please ensure the virtual environment is activated.Ensure your plugin is loaded correctly by checking the server logs or console for the log messages.
-
Package and Distribute Your Plugin
When everything is good to go, you can package your plugin into a
.whl(Wheel) file for easier distribution:pip install wheel python -m pip wheel . --no-deps --wheel-dir=wheelhouseThis command will produce a
.whlfile in thewheelhousedirectory which can be installed. To publish your plugin to a package index such as PyPI, please refer to:
This project is licensed under the MIT License - see the LICENSE file for details.