PocketMine MP Server Setup and Plugin Guide
Learn how to install, configure and extend a PocketMine MP server with plugins, permissions, worlds and performance tuning.
What Is PocketMine-MP
PocketMine-MP is an open-source server software written in PHP that implements the Bedrock Edition protocol. Unlike the official BDS binary from Mojang, a pocketmine mp server runs on virtually any platform, including ARM devices like a Raspberry Pi. It also has a mature plugin API, which makes it the most popular choice for custom Bedrock servers that need features BDS cannot provide out of the box.
If you just want a vanilla survival experience, the official Bedrock Dedicated Server is simpler. But if you need ranks, custom commands, minigame logic or economy systems, a pocketmine mp server gives you that flexibility.
Installing PocketMine-MP
PocketMine bundles its own PHP runtime, so you do not need to install PHP separately. On Linux or macOS, the installer script handles everything:
mkdir pocketmine && cd pocketmine
curl -sL https://get.pmmp.io | bash
This downloads the latest stable PocketMine phar, the bundled PHP binary and a start script. On Windows, grab the zip from the PocketMine GitHub releases page and extract it.
First Launch
Run ./start.sh (Linux/macOS) or start.cmd (Windows). The setup wizard asks for a server name, port, max players and game mode. Defaults are fine for testing. Once the wizard finishes, the pocketmine mp server generates its config files and starts listening on UDP 19132.
Configuration Files
PocketMine stores its settings in two main files:
server.propertiescontrols game rules like difficulty, view distance and whitelist toggle.pocketmine.ymlcontrols engine-level settings like chunk sending rate, memory limits, async workers and plugin loading order.
Edit server.properties for gameplay tweaks and pocketmine.yml for performance tuning. Restart the server after changes.
Host any Bedrock or crossplay server with zero config headaches. Astroworld Hosting supports Geyser, BDS, and every server type on every plan.
Installing Plugins
Plugins are distributed as .phar files. Drop them into the plugins/ folder and restart the server. The main plugin repository is Poggit (poggit.pmmp.io), where you can search, review source code and download reviewed builds.
Here are some categories of plugins you will likely need on a pocketmine mp server:
Permissions and Ranks
PurePerms is the standard permissions plugin. It lets you create groups (e.g., default, vip, admin), assign permissions per group and promote players with a command. Config lives in plugins/PurePerms/groups.yml.
Economy
EconomyAPI provides a currency system. Players earn money through gameplay or commands, and spend it in shops. Pair it with a shop plugin like ShopUI for an in-game store interface.
World Management
MyWorlds or MultiWorld lets you create and manage multiple worlds, set per-world game rules and teleport players between them. Useful if you want separate creative, survival and minigame worlds on a single server.
Anti-Cheat
Bedrock Edition has a reputation for hacked clients. Esoteric or Xyron provide server-side cheat detection for fly hacks, speed hacks, reach exploits and more. No anti-cheat is perfect, but these catch the most common exploits.
Permissions System
PocketMine uses a permission node system similar to Bukkit. Each plugin registers its own nodes (e.g., economyapi.command.pay). You assign these nodes to groups in your permissions plugin. The built-in ops.txt file grants full access to listed players, but for production servers, use a proper permissions plugin instead of opping everyone.
Performance Tuning
A pocketmine mp server handles chunk generation, entity ticking and network encoding on a single main thread, with async tasks offloaded to worker threads. Key settings in pocketmine.yml:
chunk-sending.per-tick: Lower this if clients experience lag spikes when moving quickly. A value of 2 or 4 works for most setups.chunk-ticking.tick-radius: Controls how far from each player chunks remain active. Reducing this from the default saves CPU on busy servers.memory.main-limit: Set a hard memory cap to prevent runaway plugins from consuming all available RAM.async-workers: Match this to the number of CPU cores available, minus one for the main thread.
See crossplay in action: Astroworld MC, IP play.astroworldmc.com, Java + Bedrock.
Updating PocketMine-MP
Run the installer script again to fetch the latest version. Your worlds, plugins and configs are preserved since the installer only replaces the core phar and PHP binary. Always back up your worlds/ and plugin_data/ directories before updating, just in case a new version changes internal formats.
PocketMine vs BDS vs Nukkit
Choosing between pocketmine mp server software, the official BDS binary and Nukkit depends on your priorities. BDS has the best vanilla parity but almost no plugin support. PocketMine has the richest plugin ecosystem on Bedrock. Nukkit runs on Java and appeals to developers who prefer that language. For a detailed comparison of Bedrock and Java server performance, see our benchmark guide.
Common Issues
- Plugin not loading: Check the API version. PocketMine 5.x plugins are not compatible with 4.x and vice versa. The console log will show an API mismatch error.
- Players cannot connect: Confirm UDP 19132 is open and that
server-portinserver.propertiesmatches your firewall rule. - Lag with many entities: Reduce mob spawn limits in
pocketmine.ymland remove unnecessary plugins.