Skip to content

Auxiliary scripts used for modding BDS for generating protocol data

License

Notifications You must be signed in to change notification settings

pmmp/bds-modding-devkit

Repository files navigation

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
  • binutils (for protocol_info_dumper.py)
  • LIEF: python3 -m pip install lief~=0.14.0 (note: lief >=0.15.0 is currently NOT supported)
  • Frida: python3 -m pip install frida frida-tools (for tracer.py)
  • A folder or zip of Bedrock Dedicated Server

Getting started in 60 seconds

  1. Clone the repo
  2. git submodule update --init
  3. ./scripts/setup path/to/bds/server/files or ./scripts/setup path/to/bds.zip
  4. ./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
protocol_info_dumper.py Uses objdump to dump basic version info and packet ID lists from BDS for data generation
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

About

Auxiliary scripts used for modding BDS for generating protocol data

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published