• Stars
    star
    1,076
  • Rank 42,988 (Top 0.9 %)
  • Language
    C++
  • License
    GNU Lesser Genera...
  • Created almost 4 years ago
  • Updated 3 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A lightweight, modular and versatile mod loader for Minecraft Bedrock Server BDS, formerly known as LiteLoaderBDS

LiteLoaderBDS - Epoch-making & Cross-language Bedrock Dedicated Servers Plugin Loader

status Discord Telegram Latest Tag GitHub Releases (by Asset)
QQ Group: 656669024 QQ Group 2: 850517473

English | 简体中文

LiteLoaderBDS

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++, JavaScript, Lua, Python, C# and other languages, which allows developers to easily extend and customize BDS functionality, making it easy to learn and extremely flexible.


🎁 First impression

  • “Why should I choose LiteLoader?”

  • They have interface that is easy to use and intuitive!!

C++ language sample plugin

// Template project: https://github.com/LiteLDev/PluginTemplate
// More examples: https://github.com/LiteLDev/LiteLoaderPlugins
#include <llapi/EventAPI.h>
#include <llapi/LoggerAPI.h>
#include <llapi/LLAPI.h>
#include <llapi/mc/Actor.hpp>
#include <llapi/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;
    });
}

Script language sample plugin (Use Js as an example)

// 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();
});

💎 Advantages

  • 💻 Support for developing plugins in many different languages, Keeping the API uniform
Supported languages C++, JavaScript(Node.js), Lua, Python,.NET
Upcoming supported languages Ruby, TypeScript, Go
  • 📕 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
  • 📋 Well documented and explained in detail

  • 🎈 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!

💻 Install LiteLoaderBDS

Refer to the installation guide to install LiteLoaderBDS.

🎯 Install plugins

Refer to the plugin installation guide to install plugins.


📕 Create a plugin

Refer to the plugin development guide to develop plugins.

Development Aids - VSCode Development Aids & Complementary Libraries

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!

Development Aids - Blockly-LXL Graphical Development Kit

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

🔨 Build project

Go to GitHub Actions to get the latest build artifact

Of course, if you prefer to build the project yourself, or contribute code to LiteLoader, you can build the project yourself by following these instructions

  1. 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)
  2. Install the latest Windows SDK.
  3. Use your familiar IDE (VS / VSCode / CLion, etc.) to open the project directory and compile the cmake project.
  4. After successful compilation, go back to the project root directory and execute the PackRelease.cmd script in the Scripts folder.
  5. After execution, the contents of the RELEASE folder in the root directory will be the complete LiteLoader environment and all dependencies.
  6. If you need extra debugging symbols of LL, execute another PackReleaseWithPDB.cmd script, and the RELEASE folder will be filled with all necessary debugging symbols for easy debugging

🎬 Participate in contribution

It's highly appreciated if you're interested in developing this project and follow the method to contribute to the LiteLoaderBDS project

  1. Contribute code, maintain projects and symbols, add new APIs and events and infrastructure
  2. Help us modify and optimize the development documentation and usage documentation
  3. Give feedback on GitHub issues or Suggest good ideas
  4. 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



📍 LICENSE

  • 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

Extra Restrictions & Exceptions

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!


🏆 Acknowledgement

Important Contributors

ShrBox dreamguxiang WangYneos wzy xiaoqch yqs112358 Sysca11 RimuruChan
@ShrBox @dreamguxiang @WangYneos @wzy @xiaoqch @yqs112358 @Sysca11 @RimuruChan

Thanks to JetBrains for allocating free open-source licences for IDEs such as CLion.

Star History

Star History Chart

More Repositories

1

LiteXLoader

This project has been merged into LiteLoaderBDS 👇 click below to new project 本项目已经合并到 LiteLoaderBDS 项目中 👇 点击前往 https://github.com/LiteLDev/LiteLoaderBDS
C++
89
star
2

BDSLM

Satellite map plugin based on LiteLoaderBDS
C++
51
star
3

liteloaderbds-plugin-template

LiteLoaderBDS C++ plugin template
C
48
star
4

LegacyScriptEngine

A plugin engine for running LLSE plugins on LeviLamina
C++
41
star
5

LLEssentials

Essentials plugin based on LiteLoaderBDS
C++
39
star
6

liteloaderbds-plugin-sdk

LiteLoaderBDS C++ plugin SDK
C++
35
star
7

LiteLoader

Plugin Loader for LiteLoaderBDSv3
C++
31
star
8

LeviOptimize

A performance optimization plugin for Minecraft Bedrock Server
C++
31
star
9

LiteLoader.NET

LiteLoaderBDSv2 bindings for .NET (Obsoleted)
C++
29
star
10

levilamina-mod-template

A LeviLamina mod template
Lua
18
star
11

LeviScript

The next generation NodeJs engine for LeviLamina
17
star
12

HelperLib

TypeScript.d.ts file with auto-completion and code hints for LiteLScript developers
16
star
13

LeviAntiCheat

Powerful anti-cheating for LeviLamina(Bedrock Dedicated Server)
15
star
14

LiteLoaderSE-Aids

Assist in the development of LLScript's plugin (vscode)
TypeScript
15
star
15

Lip

A package installer, not only for LiteLoaderBDS
Go
14
star
16

MoreDimensions

Multi dimensions on Bedrock Dedicated Server
C++
14
star
17

HeaderOutput

A utility to generate headers from Minecraft Bedrock Server
Kotlin
13
star
18

LipUI

A handy GUI utility for Lip
C#
12
star
19

LLAntiCheat-release

An anti-cheat plugin for LiteLoaderBDS
JavaScript
11
star
20

PackageManager

PackageManager(wip.)
Lua
9
star
21

llpy-helper-lib

A typing & util lib for LLSE Python runtime | 为 LLSE Python 运行时开发的 类型提示/工具库
Python
9
star
22

BDSHeader

Moved to main repository
C++
7
star
23

Registry

LiteLoaderBDS Registry
Python
7
star
24

liteloaderbds-websocket

C
6
star
25

liteloaderbds-documentation

LiteLoaderBDSv2 documentation
HTML
6
star
26

CrashLogger

Show crash log of LeviLamina
C++
5
star
27

BDSLibrary

A repo to store generated BDS Libraries for LeviLamina
5
star
28

LegacyRemoteCall

Remote call module for LegacyScriptEngine
C++
5
star
29

LiteLoader-docker

Dockerfile
5
star
30

PermissionAPI

LiteLoaderBDS permission APIs
C++
5
star
31

docker-levilamina-server

A docker image that provides a LeviLamina server that will automatically download selected version at startup
Dockerfile
5
star
32

SDK-dotNET

LiteLoaderBDS .NET plugin SDK
Batchfile
4
star
33

SymbolProvider

C++
3
star
34

BDSOriginalData

Some data dumped from Minecraft BDS
3
star
35

PeEditor

A tool to inject PreLoader to Minecraft Bedrock Dedicated Server
C++
3
star
36

BEProtocolGolang

A simple Protocol modified from gophertunnel
Go
3
star
37

LegacyAddonsManager

C++
3
star
38

ParticleAPI

LiteLoaderBDS particle APIs
C++
3
star
39

LLMoney

Economy core for LiteLoaderBDS
C++
3
star
40

liteloaderbds-upgrader

Shell
3
star
41

PreLoader

A library preloader for loading LeviLamina
C++
3
star
42

bedrock-runtime-data

3
star
43

ProtocolUtils

A gadget that facilitates development using the protocol documentation provided by Mojang.
Python
3
star
44

Documentation-CPP

LiteLoaderBDS C++ plugin development documentation and API reference
CSS
3
star
45

liteloaderust

[WIP] A rust support plugin
2
star
46

Page-old

CSS
2
star
47

.github

2
star
48

LogServer

Kotlin
2
star
49

bdsdown

Downloader for Minecraft BDS
Go
2
star
50

liteloaderbds-utilities

Go
2
star
51

LegacyParticleAPI

ParticleAPI ported from LiteLoaderBDS
C++
2
star
52

LeviPenalizeCheat

A plugin template for LeviAntiCheat's custom punishment
Lua
2
star
53

LegacyMoney

LLMoney, but adapted to LeviLamina
C++
2
star
54

Website

TypeScript
1
star
55

Demangler

C++
1
star
56

PackageRegistry

The registry for LiteLoaderBDS packages
Python
1
star
57

MoreEvents

More events than LeviLamina
Lua
1
star
58

PluginManager

PluginManager for BDSLiteLoader(WIP)
Go
1
star
59

NodeJsBuilds

1
star
60

xmake-repo

Lua
1
star
61

Docs

HTML
1
star
62

LeviBuildScript

Lua
1
star
63

ScriptEngine

LiteLoaderBDS Script Engine (WIP)
C++
1
star