BLOG


How to set up a moddable BDS

June 5, 2020


This quick guide is aimed to show you how simple is to get an up and running a moddable Bedrock Dedicated Server.

This method requires that you have set up a regular BDS, so if you're starting from scratch go here and download and extract the archive into an empty folder.
Note: this method requires you to download the Windows BDS version even if you're running a different OS!

#1 - BDS setup

The first thing you wanna do is opening the server.properties file in your server folder and choose the settings you like. After that you need to download and unzip the ElementZero release in the same folder you unzipped the BDS.

Unzip the ElementZero-*-win64.zip file

#2 - EZ setup

ElementZero needs its own configuration file to enable mods and additional commands: create a config.yaml file in the server folder that should look like this:

mod-enabled: true # enable / disable mods
mod-default-enabled: false # default mod status
user-database: user.db # player database
log-settings:
  format: "%6$s %1$c [%2$s] (%3$s:%4$d) %5$s" # %6$s date and time %1$c priority %2$s tag %3$s source %4$d line
  database: log.db # log database
  hide-verbose: false # hide verbose log (still store in database)
  filters: [Database] # filter out log tag (still store in database)
  verbose: # color output
    before: "\x1b[90m"
    after: "\x1b[0m"
  information:
    before: "\x1b[37m"
    after: "\x1b[0m"
  warning:
    before: "\x1b[93m"
    after: "\x1b[0m"
  error:
    before: "\x1b[31m"
    after: "\x1b[0m"
  unknown:
    before: "\x1b[91m"
    after: "\x1b[0m"
mods: # mods settings
  Audit:
    enabled: false # disable a mod
  BasicAntiCheat:
    enabled: true # enable a mod
  Blacklist:
    enabled: true
    database: blacklist.db
    enable-commands: true # enable blacklist command
  BossBarSupport:
    enabled: true
  ChatAPI:
    enabled: true
    database: chat.db
  CommandSupport:
    enabled: true
  CrashHandler:
    enabled: false
  DebugTool:
    enabled: true
    command:
      log-register: false # log command register event
      enable-all: false # enable all command
  DynamicMotd:
    enabled: true
    list:
      - test1
      - test2
    interval: 5 # refresh interval
  Economy:
    enabled: true
    database: economy.db
    command: true # enable the /update-balance /balance commands
  Essentials:
    enabled: true
    commands:
      transferserver: true
      custom-name: true
      tpa:
        enabled: true # enable/disable tpa command
        timeout: 30 # cooldown timer
      home: true
      warp: true
    database: essentials.db
    world-database: essentials.db # store in world's path
  NoEncryption:
    enabled: true
  PacketDumper:
    enabled: true
    database: packet.db
  Remote:
    enabled: true
    name: element-zero # service name
    endpoint: ws://127.0.0.1:8818/
  ScriptingSupport:
    enabled: true # enable this to use custom script
  SimpleVote:
    enabled: false
  SpawnProtection:
    enabled: true
    allow-operator: false # if true, operator can be bypass spawn protection limition
    start:
      x: -12
      z: -12
    end:
      x: 12
      z: 12
  Experimental:
    enabled: true
    force-experimental-gameplay: true # enable this to use behavior pack with custom items / recipes
    education-feature: true
    debug-packs: false
  CustomScoreboard:
    enabled: true
Use ansicolor for console colours

#3 - Run

Depending on your OS you might need to proceed differently.
Windows: simply open the bedrock_server_mod.exe
Other OSes: you need Docker. Download it and install it.

When docker is set up, open the Terminal and run the command:

docker run --detach --restart unless-stopped --name BDS_name -ti -p 19132:19132/udp -v path\to\BDS\folder:/data codehz/wine:bdlauncher-runtime

This will make the server running in the background with Docker. To access the BDS console in a Terminal window you can run

docker container attach BDS_name

and press ctrl + c to close the console.