✔️ Passing PHPStan Level 8
✔️ 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 here All development builds on Poggit Latest released version on Poggit Other 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/gamerule
command 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 generate Usage: /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 move Usage: /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 ls Usage: /mw list |
/mw info | Displays level information Alias: /mw i Usage: /mw info This command can be used only in game |
/mw delete | Remove level Aliases: /mw del , /mw dl , /mw remove , /mw rm Usage: /mw remove <level> Default level can not be deleted |
/mw update | Change spawn, lobby or default level Aliases: /mw ue Usage: `/mw update <spawn |
/mw load | Loads level Aliases: /mw ld Usage: /mw load <level> |
/mw unload | Unloads level Aliases: /mw unld Usage: /mw unload <level> |
/mw gamerule | Manage with level game rules Aliases: /gamerule , /mw gr , /mw gamer , /mw grule Usage: `/gamerule <list |
/mw rename | Renames level Aliases: /mw rnm , /mw re Usage: /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 mg Usage: /mw manage The form manager just dispatches command as a player, so player needs also permission for the command. |
- You can use permission
mw.cmd
for all commands
All MultiWorlds Permissions:
Permission | Command | Operator |
---|---|---|
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
Examples:
/**
* @param string $levelName
*
* @return bool
*/
public function reloadWorld(string $levelName): bool {
if(!WorldManagementAPI::isLevelGenerated($levelName)) {
return false;
}
if(!WorldManagementAPI::isLevelLoaded($levelName)) {
WorldManagementAPI::loadLevel($levelName);
}
WorldManagementAPI::removeLevel($levelName);
WorldManagementAPI::generateLevel($levelName, rand(0, 100), WorldManagementAPI::GENERATOR_SKYBLOCK);
return true;
}
-
The 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
,showcoordinates
andtntexplodes
-
GameRules are stored in level.dat in CompoundTag
GameRules
, you can look at it using NBTExplorer or UniversalMinecraftEditor.
Examples:
<?php
declare(strict_types=1);
namespace xyz;
use multiworld\api\WorldGameRulesAPI;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\event\level\LevelLoadEvent;
use pocketmine\event\Listener;
use pocketmine\plugin\PluginBase;
/**
* Class XYZPlugin
* @package xyz
*/
class XYZPlugin extends PluginBase implements Listener {
/** @var bool $enabled */
private $enabled = false;
public function onEnable() {
$this->getServer()->getPluginManager()->registerEvents($this, $this);
$this->update();
}
/**
* @param CommandSender $sender
* @param Command $command
* @param string $label
* @param array $args
*
* @return bool
*/
public function onCommand(CommandSender $sender, Command $command, string $label, array $args): bool {
if($command->getName() !== "xyz") {
return false;
}
$bool = $this->enabled ? "off" : "on";
$sender->sendMessage("§a> Coordinates turned $bool!");
$this->enabled = !$this->enabled;
$this->update();
return true;
}
/**
* @param LevelLoadEvent $event
*/
public function onLevelLoad(LevelLoadEvent $event) {
WorldGameRulesAPI::updateLevelGameRule($event->getLevel(), "showcoordinates", $this->enabled);
}
private function update() {
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
- Translate e.g. language from English file https://github.com/CzechPMDevs/MultiWorld/blob/master/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.