QQ Group: 656669024 QQ Group 2: 850517473
English | 简体中文
LiteLoaderBDS
is an unofficial plugin loader that provides basic API support for Bedrock Dedicated Server
, with a
massive API, lots of packed utility interfaces, a rich event system and powerful basic interface support.
LiteLoader
provides a massive API, a powerful event system and a large number of encapsulated development infrastructure interfaces, providing a solid foundation for extending the Bedrock Edition BDS with more gameplay and functionality. With plugins, it is easy to extend the functionality of BDS, the associated development is easy to learn, and the development approach is flexible.
Writing plugins in C++, Golang, JavaScript, Lua, C# and other languages, which allows developers to easily extend and customize BDS functionality, making it easy to learn and extremely flexible.
“Why should I choose LiteLoader?”
They have interface that is easy to use and intuitive!!
// Template project: https://github.com/LiteLDev/PluginTemplate
// More examples: https://github.com/LiteLDev/LiteLoaderPlugins
#include <EventAPI.h>
#include <LoggerAPI.h>
#include <LLAPI.h>
#include <MC/Actor.hpp>
#include <MC/Player.hpp>
Logger logger("AttackLog");
void PluginInit() {
logger.info("Plugin xxx has been loaded.");
// Subscribe Player-Attack Event
Event::PlayerAttackEvent::subscribe([](const Event::PlayerAttackEvent& ev) {
Player* player = ev.mPlayer;
Actor* actor = ev.mTarget;
logger.info("Player:{} attacks {} | at {} in Dimension {}",
player->getRealName(), actor->getTypeName(),
actor->getPos().toString(), std::to_string(actor->getDimensionId())
);
return true;
});
}
// Register for shutdown command
mc.listen("onServerStarted", () => {
const cmd = mc.newCommand("stopsvr", "close server");
cmd.overload();
cmd.setCallback((_cmd, ori, out, _res) => {
out.success("stop command executed successfully");
mc.broadcast(
`${ori.player.realName} executed the stop command. The server will be shutdown after 5 seconds`
);
// Execute stop command
setTimeout(() => mc.runcmd("stop"), 5000);
});
cmd.setup();
});
- 💻 Support for developing plugins in many different languages, Keeping the API uniform
Supported languages | C++ , Go , JavaScript(NodeJs) , Lua , .NET |
---|---|
Upcoming supported languages | Python , Ruby , TypeScript |
-
📕 Smooth development experience with great compatibility
- Auto-generated C++ headers, access to all
BDS
classes and functions, full toolchain support and evolving features - For scripting language plugins, a multi-language code completion library, a powerful VSCode plugin, a hot-loading system...... Many tools to help you write every line of code more efficiently
- When a version is updated, the API is guaranteed to be largely backward compatible and the plugin requires little or no code changes with the version update. With the
LiteLoader
series' unique symbol lookup technology, cross-version auto-adaptation is no longer a dream
- Auto-generated C++ headers, access to all
-
📋 Well documented and explained in detail
- Welcome to 👉LiteLoader documentation👈 to see more
-
🎈 Numerous well-packaged interfaces
- Numerous game APIs support: players, entities, cubes, items, containers, NBTs, server systems......
- Up to 50+ game events to listen to, no matter what happens, the first to respond
-
🛡 Secure, stable and versatile
- Fixes a number of vulnerabilities in BDS to ensure the stability and security of your server
- Extensive use of the seh exception protection framework to minimise the risk of server crashes
- Supports running on Linux, MacOS platforms via Wine, bringing a free plugin experience to other platforms as well: write once, share on multiple platforms.
-
🏆 Sound app ecosystem
- A large number of existing plugins, mature publishing platform, instantly 👉Go to official forum👈 to find and download your favorite LL plugins
-
🏃 Open Source & Community Building
- The project is licensed under the
LGPL-3.0
open source license and will never be charged for or released as a commercial version. - The design philosophy is decentralised and you can be assured of a free plugin loading framework!
- The project is licensed under the
- Download the latest
LiteLoader-version.zip
from Releases or Actions, - Unzip everything into the directory of
bedrock_server.exe
. If you are prompted with conflicting files during the decompression process, just selectOverwrite
. - Ensure that the
bedrock_server.pdb
file exists. RunLLPeEditor.exe
to generate the BDS with the exported symbols (bedrock_server_mod.exe
) - When the console output
Press any key to continue . . .
, press any key to close the window - Execute
bedrock_server_mod.exe
and enjoy it!
We do not recommend you to use Wine due to BDS 1.19.20+ on Wine has a performance problem
wget https://github.com/LiteLDev/LiteLoaderBDS/raw/beta/Scripts/install.sh
chmod +x install.sh
./install.sh
Enter the following lines in your terminal:
docker pull shrbox/liteloaderbds
mkdir <install directory>
docker create --name llbds -v <install directory>:/root/bedrock-server -p 19132:19132/udp -i -t shrbox/liteloaderbds
<install directory>
is directory to store data, for example: /home/shrbox/bedrock-server
The first boot takes a little while to download the Bedrock Dedicated Server and LiteLoaderBDS
Start server: docker container start llbds -a
Force stop server(not recommended): docker container stop llbds
Enter console: docker attach llbds
Exit console: Press Ctrl + P + Q
. If you press Ctrl + C
, the server process will exit.
Everything's done! Next, you can install LiteLoader plugins!
LiteLoader
main plugin distribution channels.
- If you downloaded a zip file, unzip it
- Place all the obtained contents directly into the
plugins
directory - Run
bedrock_server_mod.exe
to start the service
For more installation and usage guides, come to 👉LiteLoader documentation👈 to view
- Go to the LiteLoader plugin template repository to download project templates, or create your own project repository based on the templates and download the code locally
- Open the Template.sln project file
- Start writing the plugin code in Plugin.cpp
- Compile, and select the appropriate PDB file as prompted to generate the dependency libs
- Copy the plugin to the plugins directory for testing
For plugins development examples and guidance, please come to 👉LiteLoader documentation👈
If you have a revision request or need to add an API, please contact the author or post an Issue
- Create the file
- Write the code
- Copy the plugin to the plugins directory for testing
Please come to 👉LiteLoader documentation👈 for detailed API documentation and plugin development tutorial. If you have a revision request or need to add an API, please feel free to contact the author or post an Issue
Click here for more open source LiteLoader plugins as sample plugins. You can use them directly in production environments You can also learn plugin development methods and tips here
Use the LiteLoader development helper plugin developed by Moxicat
Helps you do better with script plugins!
Code hint, auto-completion, auto-documentation, error alert, runtime debugging and so on
Click here
View more description and introduction of this extension
VSCode extension store search LLScriptHelper
, install LLScriptHelper and experience it instantly!
No programming foundation? Tired of complex language rules?
Have you ever thought that BDS plug-in development could be as easy as a puzzle?
Here it is! The Blockly-LXL graphical development kit from pa733 takes the plugin development experience to a new level!
Click here View related installation and usage instructions
Go to
GitHub Actions
to get the latest build artifactOf course, if you prefer to build the project yourself, or contribute code to LiteLoader, you can build the project yourself by following these instructions
- Install the latest version of Microsoft Visual Studio and the standard C++ desktop development suite (or you can just install the full msbuild compiler suite and configure the compilation environment)
- Install the latest Windows SDK.
- Use your familiar IDE (VS / VSCode / CLion, etc.) to open the project directory and compile the cmake project.
- After successful compilation, go back to the project root directory and execute the
PackRelease.cmd
script in the Scripts folder. - After execution, the contents of the
RELEASE
folder in the root directory will be the completeLiteLoader
environment and all dependencies. - If you need extra debugging symbols of LL, execute another
PackReleaseWithPDB.cmd
script, and theRELEASE
folder will be filled with all necessary debugging symbols for easy debugging
It's highly appreciated if you're interested in developing this project and follow the method to contribute to the LiteLoaderBDS project
- Contribute code, maintain projects and symbols, add new APIs and events and infrastructure
- Help us modify and optimize the development documentation and usage documentation
- Give feedback on GitHub issues or Suggest good ideas
- Help us promote
LiteLoaderBDS
project to support our development
⭐⭐⭐We welcome your contributions to LiteLoader!⭐⭐⭐
If you are interested in contributing to LiteLoaderBDS, feel free to come to 👉LiteLoader documentation👈 to view Project Maintenance and Support Documentation
- If you violate the EULA, any legal liability is IRRELEVANT to the developers.
- NO WARRANTY.
Project | License |
---|---|
LiteLoader | LGPLv3 |
ScriptX | Apache License Version 2.0 |
OpenSSL | Apache-2.0 License |
SimpleIni | MIT License |
Nlohmann-Json | MIT License |
nbt-cpp | MIT License |
ThreadPool | Zlib License |
LightWebSocketClient | MIT License |
magic_enum | MIT License |
dyncall | ISC License |
vcproxy | MIT License |
RawPDB | BSD 2-Clause License |
SQLiteCpp | MIT License |
compact_enc_det | Apache-2.0 License |
detours | MIT License |
httplib | MIT License |
magic_enum | MIT License |
entt | MIT License |
fmt | License |
gsl | MIT License |
leveldb | BSD-3-Clause License |
parallel-hashmap | Apache-2.0 License |
Base64 | MIT License |
EldenRingMods | MIT License |
If you provide a server hosting service,you can use this framework for free, but you SHOULD NOT make PRIVATE changes to this framework or as a selling point. If you fixed or tweaked the code, please pull request, instead of making it private or using it for commercial propose.
Do not do evil.
Although we expected to build an open-source community, but forcing everything open-source will ruin this community. So
you can write plugins based on LiteLoader
with ANY open-source license or even do not publish your source code. but if
you modified the framework, or write a new framework based on this framework, you MUST open-source it.
If you want to reproduce and distribute this framework, you have to get our authorization!
@ShrBox | @dreamguxiang | @WangYneos | @wzy | @xiaoqch | @yqs112358 | @Sysca11 | @RimuruChan |
Thanks to JetBrains for allocating free open-source licences for IDEs such
as CLion.