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)
-
python3
-
pip
-
clang
-
libc++-dev
-
libc++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/files
or./scripts/setup path/to/bds.zip
-
./start.sh
to 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.py
which are still used today
- Helping me to write the initial versions of