✔️ Simple world management commands
✔️New generators (Ender, Nether, Void, SkyBlock)
✔️Custom world generator
✔️ Fast, without lags
✔️ Supports last PocketMine API version
✔️ Multi language sytem
✔️ Implemented Game Rules
✔️ Simple API for other plugins
- Bug fixes
- New biomes in Custom world generator
- Custom generator added to Form world manager
| Version | Phar Download | Zip Download | API | Stable | Pre release |
|---|---|---|---|---|---|
| 1.5.2 | Poggit releases | GitHub | 3.x.x | ✔️ | ❌ |
| 1.5.1 | Poggit releases | GitHub | 3.x.x | ✔️ | ❌ |
| 1.5.0 | Poggit releases | GitHub | 3.0.0, 3.1.0 | ✔️ | ❌ |
| 1.5.0-beta2 | GitHub | GitHub | 3.0.0, 3.1.0 | ✔️ | ✔️ |
| 1.5.0-beta1 | GitHub | GitHub | 3.0.0, 3.1.0 | ❌ | ✔️ |
| 1.4.3 | Poggit Releases | GitHub | 3.0.0-ALPHA7 - 3.0.0 | ✔️ | ❌ |
| 1.4.2 | Poggit Releases | GitHub | 3.0.0-ALPHA7 - 3.0.0-ALPHA12 | ✔️ | ❌ |
| 1.4.1 | Poggit-CI Downloads | GitHub | 3.0.0-ALPHA7 - 3.0.0-ALPHA12 | ✔️ | ❌ |
| 1.4.0 | Poggit Releases | GitHub | 3.0.0-ALPHA7 - 3.0.0-ALPHA11 | ✔️ | ❌ |
| 1.3.2 | Poggit-CI Downloads | GitHub | 3.0.0-ALPHA7 | ❌ | ❌ |
| 1.3.1 | GitHub | GitHub | 3.0.0-ALPHA7 | ✔️ | ❌ |
| 1.3.0 | Poggit-CI Downloads | GitHub | 3.0.0-ALPHA7 | ❌ | ❌ |
Download latest version here
All released versions hereAll development builds on PoggitLatest released version on PoggitOther plugins by CzechPMDevs here
This plugin works only on PocketMine-MP. You can download MultiWorld by Creeperface for Nukkit or MultiWorld by ferrybig for Bukkit. PMMP Spoons are NOT supported.
- Download latest stable released version from poggit
- Move dowloaded file to your server /plugins/ folder
- Restart the server
- All MultiWorld commands starts with
/mw(/multiworld) except for the/gamerulecommand that was added as an alias to change game rules from settings. - In game, you can get list of all commands using commands
/mw help
All MultiWorld Commands:
| Command | Description |
|---|---|
| /mw help | Displays list of all MultiWorld commands Alias: /mw ?Usage: /mw help <page: 0-1> |
| /mw create | Generate new world using seed and generator Aliases: /mw new, /mw generateUsage: /mw create <levelName> [seed] [generator]Seed is value seed is the initial value by which the world is generated, when you set it empty, world will be generated by random number. You can use 6 generators ( Normal, Nether, End, Void, SkyBock and Nether_Old = Nether generator without glowstone and quartz ore) |
| /mw teleport | Teleports you or seleced player to world spawn Aliases: /mw tp, /tp moveUsage: /mw tp <levelName> [player]If you are using Slapper plugin and after you click on the npc you want to move the player to another world, you can use /slapper edit <id> addcommand mw tp <world> {player} command |
| /mw list | Displays list of all levels Alias: /mw lsUsage: /mw list |
| /mw info | Displays level information Alias: /mw iUsage: /mw infoThis command can be used only in game |
| /mw delete | Remove level Aliases: /mw del, /mw dl, /mw remove, /mw rmUsage: /mw remove <level>Default level can not be deleted |
| /mw update | Change spawn, lobby or default level Aliases: /mw ueUsage: `/mw update <spawn |
| /mw load | Loads level Aliases: /mw ldUsage: /mw load <level> |
| /mw unload | Unloads level Aliases: /mw unldUsage: /mw unload <level> |
| /mw gamerule | Manage with level game rules Aliases: /gamerule, /mw gr, /mw gamer, /mw gruleUsage: `/gamerule <list |
| /mw rename | Renames level Aliases: /mw rnm, /mw reUsage: /mw rename <levelName> <newName>This command changes name of the folder and of nbt too. |
| /mw manage | Opens world form manager Aliases: /mw mng, /mw mgUsage: /mw manageThe form manager just dispatches command as a player, so player needs also permission for the command. |
- You can use permission
mw.cmdfor all commands
All MultiWorlds Permissions:
| Permission | Command | Opertor |
|---|---|---|
| mw.cmd.help | /mw help | ✔️ |
| mw.cmd.create | /mw create | ✔️ |
| mw.cmd.teleport | /mw teleport | ✔️ |
| mw.cmd.list | /mw list | ✔️ |
| mw.cmd.info | /mw info | ✔️ |
| mw.cmd.delete | /mw delete | ✔️ |
| mw.cmd.update | /mw update | ✔️ |
| mw.cmd.load | /mw load | ✔️ |
| mw.cmd.unload | /mw unload | ✔️ |
| mw.cmd.gamerule | /mw gamerule | ✔️ |
| mw.cmd.rename | /mw rename | ✔️ |
| mw.cmd.manage | /mw manage | ✔️ |
- World management api was added in MultiWorld v1.5.0, you can download stubs on release page, there are all WorldManagementAPI methods
Some example:
/** * @param string $levelName * * @return bool */publicfunctionreloadWorld(string$levelName): bool { if(!WorldManagementAPI::isLevelGenerated($levelName)) { returnfalse; }
if(!WorldManagementAPI::isLevelLoaded($levelName)) { WorldManagementAPI::loadLevel($levelName); }
WorldManagementAPI::removeLevel($levelName); WorldManagementAPI::generateLevel($levelName, rand(0, 100), WorldManagementAPI::GENERATOR_SKYBLOCK); returntrue; }World game rules api was added in MultiWorld v1.5.0, you can download stubs on release page, there are all WorldGameRulesAPI methods
All implemented GameRules:
doDaylightCycle,doMobLoot,doTileDrops,keepInventory,naturalRegeneration,pvp,showcoordinatesandtntexplodesGameRules are stored in level.dat in CompoundTag
GameRules, you can look at it using NBTEditor.
Some example:
<?phpdeclare(strict_types=1); namespacexyz; usemultiworld\api\WorldGameRulesAPI; usepocketmine\command\Command; usepocketmine\command\CommandSender; usepocketmine\event\level\LevelLoadEvent; usepocketmine\event\Listener; usepocketmine\plugin\PluginBase; /** * Class XYZPlugin * @package xyz */class XYZPlugin extends PluginBase implements Listener {
/** @var bool $enabled */private$enabled = false; publicfunctiononEnable() { $this->getServer()->getPluginManager()->registerEvents($this, $this); $this->update(); }
/** * @param CommandSender $sender * @param Command $command * @param string $label * @param array $args * * @return bool */publicfunctiononCommand(CommandSender$sender, Command$command, string$label, array$args): bool {
if($command->getName() !== "xyz") {
returnfalse;
}
$bool = $this->enabled ? "off" : "on";
$sender->sendMessage("§a> Coordinates turned $bool!");
$this->enabled = !$this->enabled;
$this->update();
returntrue;
} /** * @param LevelLoadEvent $event */publicfunctiononLevelLoad(LevelLoadEvent$event) {
WorldGameRulesAPI::updateLevelGameRule($event->getLevel(), "showcoordinates", $this->enabled); }
privatefunctionupdate() {
foreach ($this->getServer()->getLevels() as$level) { WorldGameRulesAPI::updateLevelGameRule($level, "showcoordinates", $this->enabled); }
}
} - Do you want to help with the development of MultiWorld? Add your native language!
- Open lanuage resource file
- Click create new file
- Transalte e.g. language from English file https://github.com/CzechPMDevs/MultiWorld/blob/PocketMine-MP/MultiWorld/resources/languages/en_US.yml
- Click Propose new file
- Icon made by Freepik from www.flaticon.com is licensed by CC 3.0 BY
- Japanese translation by fuyutsuki
- Russian translation by SteinsSquad (themestl)
- Indonesian translation by WooWBoom
- German translation by SchdowNVIDIA and Tobikisss
- Chinese translation by abc1460132901
MultiWorld - PocketMine plugin that manages worlds.
Copyright (C) 2018 CzechPMDevs
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Full license here.














