Skip to main content

Endstone Python Example Plugin

Build

A starter template for building Endstone plugins in Python. Endstone is a plugin framework for Minecraft Bedrock Dedicated Server, similar to Bukkit/Spigot/Paper for Java Edition. This template demonstrates commands, events, configuration, and permissions.

Use This Template

  1. Click Use this template on GitHub (or fork/clone it)
  2. Rename the following to match your plugin:
What Where Example
Package name pyproject.toml [project] name endstone-my-plugin
Package directory src/endstone_example/ src/endstone_my_plugin/
Entry point pyproject.toml [project.entry-points."endstone"] my-plugin = "endstone_my_plugin:MyPlugin"
Plugin class plugin.py class name + prefix MyPlugin, prefix = "MyPlugin"
Permission prefix plugin.py permissions dict keys my_plugin.command.*
  1. Set api_version = "0.11" (or the Endstone version you target)
  2. Delete the example command/listener code and start building

Development

This template uses uv for fast dependency management. If you prefer pip, replace uv sync with pip install -e ".[dev]" and uv run with just running the command directly.

git clone https://github.com/EndstoneMC/python-example-plugin.git
cd python-example-plugin
uv sync --extra dev       # Install dependencies
uv run ruff check src/    # Lint

For live development on a running server, activate the server's virtualenv and install in editable mode:

pip install -e .

Then use /reload in-game to pick up code changes without restarting.

Project Structure

src/endstone_example/
  __init__.py       Re-exports the plugin class
  plugin.py         Plugin lifecycle, commands, config
  listener.py       Event listener (player join/quit)
  config.toml       Default config (copied on first run)

Adding Dependencies

To use third-party packages from PyPI, add them to the dependencies list in pyproject.toml:

[project]
dependencies = ["requests>=2.31", "aiosqlite>=0.19"]

Then run uv sync (or pip install -e .) to install them. They will be bundled automatically when you build the wheel.

Install on a Server

uv build

Copy the .whl from dist/ into your server's plugins/ folder and restart.

Releasing

This template includes a GitHub Actions release workflow. To make a release:

  1. Add your changes under ## [Unreleased] in CHANGELOG.md
  2. Go to Actions > Release > Run workflow
  3. Enter the version (e.g. 0.5.0) and run

The workflow validates the version, updates the changelog, creates a git tag and GitHub release, builds the wheel, publishes to PyPI (if configured), and attaches the .whl to the release.

Use dry run to preview without making changes.

Versioning is handled automatically by hatch-vcs: tagged commits get clean versions (e.g. 0.5.0), untagged commits get dev versions (e.g. 0.5.1.dev3).

Documentation

For more on the Endstone API, see the documentation.

License

MIT License

Metadata

Release files for endstone-example 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for endstone-example 0.5.0
File Size Uploaded Provenance
endstone_example-0.5.0.tar.gz 111.5 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for endstone-example 0.5.0
File Interpreter ABI Platform
endstone_example-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 119.5 kB

Release files / endstone_example-0.5.0.tar.gz

Download URL endstone_example-0.5.0.tar.gz
Size 111.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f07df68f0f11a31dd1112a49d95e4f86d5b87fe1017f52a28ca4b93030a7348c
BLAKE2b-256 checksum
How to use checksums
3a10c35d2556559c209708e5da20544f1ea30ee3091bc3a315b49953e4e71249
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 23, 2026.

Transparency log

Release files / endstone_example-0.5.0-py3-none-any.whl

Download URL endstone_example-0.5.0-py3-none-any.whl
Size 8.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
04ef96876dc8af67454c50f9f7549428b1b0bf755b33cf4d4340c42dd8ae117d
BLAKE2b-256 checksum
How to use checksums
6ce853fa5abd3b3d23e3eaba10ac930f1ca7825a032f2e78d7aa79e26c4a023f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 23, 2026.

Transparency log

Security for endstone-example 0.5.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for endstone_example-0.5.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 23, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page