bds-modding-devkit
bds-modding-devkit copied to clipboard
Auxiliary scripts used for modding BDS for generating protocol data
bds-modding-devkit
This developer kit allows you to quickly and easily start modding the Bedrock Dedicated Server.
It's used for dumping information for protocol updates for PocketMine-MP, but the tools provided here can be used for much more than that.
The following mods are included as git submodules:
Things you'll need
- A Linux environment with a 5.4 kernel or newer (WSL2 is fine)
python3pipclanglibc++-devlibc++abi-dev- LIEF:
python3 -m pip install lief - Frida:
python3 -m pip install frida frida-tools - A folder or zip of Bedrock Dedicated Server
Getting started in 60 seconds
- Clone the repo
git submodule update --init./scripts/setup path/to/bds/server/filesor./scripts/setup path/to/bds.zip./start.shto run the server with mods loaded
Run ./helper.sh help to get more usage info.
Things in the repo
| File name | Description |
|---|---|
export-symbols.py |
Uses LIEF to patch BDS and make the symbols linkable |
helper.sh |
Helper script based on modloader-helper |
start.sh |
Runs the server with mods loaded. From modloader-helper |
tracer.py |
Uses Frida to hook packet functions in BDS and create packet traces. Run this while you have a BDS instance already running. Requires sudo. |
Adding your own mods
Mod code is placed in the code directory. Build them by invoking ./scripts/build all.
To generate skeleton files for a new mod, use the tool ./scripts/gen.
Credits
- @Frago9876543210
- Writing modloader-helper
- Writing the original version of mapping
- Revamping
tracer.py(gist)
- @MCMrARM
- Creating server-modloader, without which this endeavour would simply not be possible.
- Writing
export-symbols.py
- @Intyre
- Helping me to write the initial versions of
tracer.pywhich are still used today
- Helping me to write the initial versions of