- Notifications
You must be signed in to change notification settings - Fork33
Endstone - High-level Plugin API for Bedrock Dedicated Servers (BDS), in both Python and C++.
License
EndstoneMC/endstone
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
📖 Introduction🔝
We are excited to announce the Endstone project. Endstone offers a plugin API for Bedrock Dedicated Servers, supportingboth Python and C++ languages. This allows developers to enhance Bedrock Dedicated Servers with various features andfunctionalities.
🏆This project is proudly sponsored byBisect Hosting.
🎯 Features🔝
- Cross-platform: We have dedicated efforts to support both Windows and Linux. Proudly, we are the onlyBDS-based server software sporting native support for both platforms without the need for an emulator.
- Feature-rich: All up-to-date Minecraft features are at your fingertips! We make sure to keep Endstone aligned withthe latest game updates.
- Hassle-free: Ready to use right out of the box. Start the Endstone server with just one line of command. No extratools required.
- High-level API: We provide a high-level friendly API akin to Bukkit plugin developers. Save yourself the hassle ofdealing with the dot-and-cross of the low-level system API and hooks, we've done the difficult part for you!
- Starter-friendly: No C++ knowledge? No problem! Craft your plugins using Python, your favourite.
- Performance-in-mind: For the performance savants, you can, of course, write (or rewrite) your plugins in C++ tosqueeze outevery bit of performance.
🛠️ Get started🔝
Before getting started, verify that you are using one of the following compatible operating systems:
- Windows 10 version 10.0.15063 or later
- Windows Server 2016 or later
- Debian 11 or later
- Ubuntu 20.04 or later
Please also ensure you havePython 3.9 or higher installed on your system.
There are several ways to install Endstone:
Endstone can be installed directly from PyPi using pip. Open your terminal and execute the following command to installand startthe Endstone server:
pip install endstoneendstone
Endstone can be easily installed on Linux using an autoinstaller script.
The autoinstaller supports the following operating systems and distributions based on them:
- Ubuntu
- Debian
- Fedora
- Arch Linux
You can use eitherwget
orcurl
to download the required scripts.
Usingwget
:
wget https://raw.githubusercontent.com/EndstoneMC/endstone/main/scripts/autoinstall.shsudo chmod +x autoinstall.shwget https://raw.githubusercontent.com/EndstoneMC/endstone/main/scripts/start.shsudo chmod +x start.sh
Usingcurl
:
curl -O https://raw.githubusercontent.com/EndstoneMC/endstone/main/scripts/autoinstall.shsudo chmod +x autoinstall.shcurl -O https://raw.githubusercontent.com/EndstoneMC/endstone/main/scripts/start.shsudo chmod +x start.sh
Once the download is complete, run the following command to install Endstone:
./autoinstall.sh
This will install Endstone and automatically start the server after installation.
If you want to start Endstone at any time, simply run:
./start.sh
To try Endstone from the latest Docker image, use the following command:
docker pull endstone/endstonedocker run --rm -it -p 19132:19132/udp endstone/endstone
This will pull the latest Endstone image and run it interactively in your terminal.
For advanced users, you may build Endstone locally from the source.
First, clone the repository:
git clone https://github.com/EndstoneMC/endstone.gitcd endstone
Then, you can build the wheel and install it on your local machine:
pip install.endstone
Please note that building from source requires toolchains to be installed on your system.
Windows | Linux | |
---|---|---|
Build System | CMake | CMake |
Generator | Ninja | Ninja |
C/C++ Compiler(Recommended) | MSVC 193 (Visual Studio 2022) | Clang 15 |
C/C++ Compiler (Minimum) | MSVC 191 (Visual Studio 2017) | Clang 9 |
Standard Library | MSVC STL | libc++ |
🌟 Plugins🔝
Currently, the Endstone project is under active development, and we invite you to review our roadmap. While you wait,why not take a sneaky peek of our example plugins which illustrate the friendliness of the plugin API. If you haveprevious experience with Bukkit, you should find the API particularly intuitive to work with:
Milestone | Duration | Core | Since |
---|---|---|---|
🔌 Plugin Loader | 1-2 months | ✅ | v0.1.0 |
⌨️ Command System | 2-3 months | ✅ | v0.2.0 |
🔐 Permission System | 2-3 months | ✅ | v0.3.0 |
🎈 Event System | 2-3 months | ✅ | v0.4.0 |
🖼 Form & Scoreboard API | 1-2 months | ✅ | v0.5.0 |
👤 Player & Actor API | 2-3 months | 🚧 | |
🧱 Block API | 1-2 months | 🚧 | |
📦 Item & Inventory API | 2-3 months | 🚧 | |
⭐ Advanced Features & Refinements | 4-6 months | ⏳ | |
🔬 Beta Testing & Community Feedback | 3 months | ⏳ | |
🚀 Official Release & Support | - | ⏳ |
Here's a legend to guide you:
- ✅: Task is completed. Woohoo! 🎉
- 🚧: Task is under way. We're on it! 💪
- ⏳: Task is up next. Exciting things are coming! 🌠
🙌 Contributing🔝
We warmly welcome contributions to the Endstone project! If you're enthusiastic about enhancing Bedrock DedicatedServers with Python and C++ and have ideas on how to improve Endstone, here are a few ways you can contribute:
If you encounter any bugs while using Endstone, please open anissue inour GitHub repository. Ensure to include a detailed description of the bug and steps to reproduce it.
We appreciate code contributions. If you've fixed a bug or implemented a new feature, please submit a pull request!Please ensure your code follows our coding standards and include tests where possible.
🎫 License🔝
The Endstone project is licensed under theApache-2.0 license.
About
Endstone - High-level Plugin API for Bedrock Dedicated Servers (BDS), in both Python and C++.