Starting a local cooperative world on a mobile phone, tablet, or Windows client in Minecraft Bedrock Edition inevitably reaches hardware limits: whenever the world creator closes their app, friends lose connection. Migrating that established world to a 24/7 Linux Bedrock Dedicated Server (BDS) removes host constraints while preserving builds, redstone contraptions, and player inventories.
In this practical walkthrough, we cover exporting .mcworld archives, properly unpacking LevelDB storage onto Linux filesystems, configuring the level-name property in server.properties, and validating directory permissions.
Minecraft Bedrock World Architecture: .mcworld and LevelDB#
Unlike Java Edition, which stores world chunks in .mca Anvil region files, Minecraft Bedrock utilizes a customized LevelDB key-value database engine.
The .mcworld file exported from a Bedrock client is simply a renamed ZIP archive containing:
level.datandlevel.dat_old— global world state metadata (seed, tick timers, world spawn coordinates).levelname.txt— plain text representation of the map title.db/— the core LevelDB data directory holding chunk payloads, entities, and player inventories.behavior_packs/andresource_packs/— active add-on packages (if installed).
Extracting the Archive and Validating Directory Structure#
Transfer your exported .mcworld file to a temporary staging folder on your Linux host via SFTP or SCP:
mkdir -p /tmp/bds_import && cd /tmp/bds_import
unzip -q ~/my_bedrock_world.mcworld -d ./extracted_world
ls -la ./extracted_world
Verify that level.dat and the db/ folder reside directly inside ./extracted_world, without unwanted nested directories.
Copy the staged world folder into the BDS worlds directory (typically /opt/bedrock-server/worlds/) using an alphanumeric name without spaces:
sudo cp -r ./extracted_world /opt/bedrock-server/worlds/CustomSurvival
sudo chown -R bedrock:bedrock /opt/bedrock-server/worlds/CustomSurvival
sudo chmod -R 755 /opt/bedrock-server/worlds/CustomSurvival
Ensuring that the bedrock service user owns the entire LevelDB tree prevents runtime database lock exceptions upon player join.
Configuring the level-name Directive in server.properties#
The server's primary configuration file, server.properties, specifies which subfolder under worlds/ should be loaded into memory.
Update the active level pointer:
sed -i 's/^level-name=.*/level-name=CustomSurvival/' /opt/bedrock-server/server.properties
grep "^level-name=" /opt/bedrock-server/server.properties
Linux file systems are strictly case-sensitive: if the directory is named CustomSurvival, setting level-name=customsurvival causes BDS to ignore your files and generate a new blank world.
Launching the Service and Validating World Integrity#
Restart the Bedrock server service:
sudo systemctl restart bedrock-server && sudo journalctl -u bedrock-server -n 25 --no-pager
Inspect the systemd journal for runtime startup confirmation:
IPv4 supported, port: 19132
Server started.
Level Name: CustomSurvival
Connect using a Bedrock client: your character will spawn at your established base coordinates, container inventories will remain intact, and mob farms will resume operation 24/7.
If you are looking for always-online Minecraft Bedrock hosting with browser-based .mcworld world imports, automated hourly snapshots, and built-in DDoS mitigation, dependable Minecraft server hosting delivers optimized cloud performance for cross-platform multiplayer.




