PocketMine-MP
Detailed guide on migrating from PocketMine-MP (PHP) to PowerNukkitX (Java).
Migrating from PocketMine-MP to PowerNukkitX involves transitioning from a PHP-based server architecture to a Java-based one. While world data can be ported, plugins and configuration structures are completely different.
Step-by-Step Migration
1. Set Up PowerNukkitX
Install a fresh PowerNukkitX server. Follow the Installation guide for your operating system. Start the server once to generate configurations and then stop it.
2. Migrate Worlds
PocketMine-MP uses a Region or LevelDB world format.
- Locate your world folders inside the PocketMine-MP
worlds/directory. - Copy the world folders to the PowerNukkitX
worlds/directory. - Open
pnx.ymlin your PowerNukkitX directory, navigate tobaseSettings, and update thedefaultLevelNameto match the directory name of your main world:baseSettings: defaultLevelName: "MyWorld"
3. Translate Configuration
PocketMine-MP options in pocketmine.yml and server.properties must be manually translated to pnx.yml:
| PocketMine-MP Setting | pnx.yml Category | pnx.yml Key | Description |
|---|---|---|---|
server-port (server.properties) | baseSettings | port | Server UDP Port. |
max-players (server.properties) | baseSettings | maxPlayers | Max player slots. |
xbox-auth (pocketmine.yml) | baseSettings | xboxAuth | Requires Xbox authentication. |
view-distance (server.properties) | gameplaySettings | viewDistance | Max chunks rendered by client. |
difficulty (server.properties) | gameplaySettings | difficulty | 0: Peaceful, 1: Easy, 2: Normal, 3: Hard. |
gamemode (server.properties) | gameplaySettings | gamemode | 0: Survival, 1: Creative, 2: Adventure. |
white-list (server.properties) | baseSettings | allowList | Enable/disable server whitelist. |
Critical Incompatibilities
PHP Plugins vs Java Plugins
PocketMine-MP plugins are written in PHP and are entirely incompatible with PowerNukkitX.
- You cannot copy
.pharfiles or PHP source code into theplugins/folder of PowerNukkitX. - Action: You must find Java equivalent plugins on the Nukkit/PowerNukkitX repositories or use PowerNukkitX's plugin development framework to rebuild required features.
Permissions
PocketMine-MP utilizes a YAML-based permissions file (permissions.yml). PowerNukkitX uses a standard Java permission architecture.
- For advanced group permissions, we recommend installing the LuckPerms plugin on PowerNukkitX to recreate your group hierarchies and node assignments. Refer to the Permissions & Security page for details.