- The name ‘MultiWorld’ actually says exactly what it does. It allows you to have multiple worlds at one server.
- MultiWorld was created because I myself was not very enthusiastic about Multiverse at the time because there is no way to set messages and Multiverse is also hardly maintainable because the code is very messy in my opinion
- This plugin is highly customizable.
- PVP settings can be adjusted for each world individually.
- GameMode settings for each world. Automatically changes your game mode upon entering a world (can be deactivated).
- Custom Generator Support. Detects and integrates with other world generation plugins.
- Each world has its own whitelist, allowing you to control access.
- Disable access to the Nether or End with the Teleport command.
- Option to completely disable portals.
- It is possible to connect portals with other worlds
* /world [multiworld.command.world]
* /world back [multiworld.command.world.back]
* /world backup <World> [multiworld.command.world.backup]
* /world clone <World> <Clone> [multiworld.command.world.clone]
* /world create <Name> <WorldType|Seed|Generator> [multiworld.command.world.create]
* /world delete <World> [multiworld.command.world.delete]
* /world flag <World> <Option> <Value> [multiworld.command.world.flag]
* /world gamerule <World> <Gamerule> <Value> [multiworld.command.world.gamerule]
* /world help [multiworld.command.world]
* /world import <Name> <WorldType> [multiworld.command.world.import]
* /world info <World> [multiworld.command.world.info]
* /world list [multiworld.command.world.list]
* /world link <World> <End | Nether> <World> [multiworld.command.world.link]
* /world load <World> [multiworld.command.world.load]
* /world reload [multiworld.command.world.reload]
* /world teleport <Player> <World> [multiworld.command.world.teleport]
* /world unload <World> [multiworld.command.world.unload]
* /world whitelist <World> <Enable|Disable|Add|Remove|List> <Name> [multiworld.command.world.whitelist]
- Download the latest version of
MultiWorld
from GitHub Releases. - Download the required version of
FacilisCommon
from GitHub Releases. - Copy the downloaded
.jar
file into theplugins
directory of your Spigot server. - Restart the server to activate the plugin.
- Minecraft Version: 1.16 - 1.20
- Java Version: 17 or higher
- Spigot Server
- After installation, a configuration file will be created in the
plugins/MultiWorld
directory. Here, you can make various settings.
config.yml
# __ ___ ____ _ _ __ __ __
# / |/ /_ __/ / /_(_) | / /___ _____/ /___/ /
# / /|_/ / / / / / __/ /| | /| / / __ \/ ___/ / __ /
# / / / / /_/ / / /_/ / | |/ |/ / /_/ / / / / /_/ /
# /_/ /_/\__,_/_/\__/_/ |__/|__/\____/_/ /_/\__,_/
#
# Copyright (c) 2021 - 2024 by Dev7ex
# Version: ${project.version}
config-version: ${project.version}
# General
prefix: '§8[§bMultiWorld§8]§r'
no-permission: '§cIm sorry, but you do not have permission to perform this command. Please contact the server administrators if you believe that is in error.'
no-console-command: '%prefix% §cThis command can only performed by a player'
no-player-command: '%prefix% §cThis command can only performed by the console'
no-player-found: '%prefix% §cThis player could not be found'
settings:
# The time format in which information is displayed
time-format: dd.MM.yyyy HH:mm:ss
# Should all players with the permission (multiworld.notify.update)
# get a message when entering server
receive-update-message: true
# Should the auto-game-mode per world work?
auto-game-mode-enabled: true
# Should MultiWorld connect the worlds with each other via the registered data?
world-link-enabled: true
# Should you be able to enter Nether/End worlds with the command /world telport <Player> <World>
access-nether-world-via-command: true
access-end-world-via-command: true
# Standard values for new worlds
defaults:
normal-world: world
end-world: world_the_end
nether-world: world_nether
load-auto: false
difficulty: PEACEFUL
game-mode: SURVIVAL
pvp-enabled: true
spawn-animals: true
spawn-monsters: true
spawn-entities: true
receive-achievements: true
end-portal-accessible: true
nether-portal-accessible: true
whitelist-enabled: false
messages:
general:
update-message-player: '%prefix% §7There is a new update available. §8[§bhttps://www.spigotmc.org/resources/multiworld.92559§8]'
update-message-version-player: '%prefix% §7Current Version: §b%current_version% §7New Version §b%new_version%'
world-not-exists: '%prefix% §cThe specified world does not exist!'
world-not-loaded: '%prefix% §cThe specified world is not loaded!'
world-already-exists: '%prefix% §cThe specified world already exists!'
world-type-not-exists: '%prefix% §cThe specified WorldType does not exist'
world-folder-not-exists: '%prefix% §cNo world folder could be found!'
world-whitelist-block-trespassing: '%prefix% §7You are not on the whitelist of this world!'
commands:
back:
usage: '%prefix% §cUsage: /world back'
world-not-exists: '%prefix% §cThere is no world you can go!'
sender-already-there: '%prefix% §cYou are already in the world §b%world_name%'
backup:
usage: '%prefix% §cUsage: /world backup <World>'
starting: '%prefix% §7A backup of the world §b%world_name% is created...'
finished: '%prefix% §7The backup of the world §b%world_name% §7has been successfully created!'
clone:
usage: '%prefix% §cUsage: /world clone <World> <Name>'
starting: '%prefix% §7The world §b%world_name% §7will be copied...'
finished: '%prefix% §7The world §b%world_name% §7has been successfully copied!'
create:
usage: '%prefix% §cUsage: /world create <Name> <Generator | Seed | WorldType>'
starting: '%prefix% §7The world §b%world_name% §7will be created...'
finished: '%prefix% §7The world §b%world_name% §7was created successfully!'
delete:
usage: '%prefix% §cUsage: /world delete <World>'
world-cannot-deleted: '%prefix% §cThe specified world may not be deleted!'
starting: '%prefix% §7The world §b%world_name% §7will be deleted...'
finished: '%prefix% §7The world §b%world_name% §7has been successfully deleted!'
flag:
usage: '%prefix% §cUsage: /world flag <World> <Flag> <Value>'
not-existing: '%prefix% §cThis flag does not exist'
value-not-existing: '%prefix% §cThis value does not exist for the flag §b%flag%'
successfully-set: '%prefix% §7The flag §b%flag% §7was set to §b%value%§7!'
gamerule:
usage: '%prefix% §cUsage: /world flag <World> <Gamerule> <Value>'
not-existing: '%prefix% §cThis GameRule does not exist'
value-not-existing: '%prefix% §cThis value does not exist for the GameRule §b%gamerule%'
successfully-set: '%prefix% §7The GameRule §b%gamerule% §7was set to §b%value%§7!'
help:
message:
- ''
- '§f§m §r§r %prefix% §f§m '
- ''
- '§7» §7/world §bback'
- '§7» §7/world §bbackup §7<World>'
- '§7» §7/world §bclone §7<World> <Name>'
- '§7» §7/world §bcreate §7<Name> <WorldType | Seed | Generator>'
- '§7» §7/world §bdelete §7<World>'
- '§7» §7/world §bflag §7<World> <Property> <Value>'
- '§7» §7/world §bgamerule §7<World> <GameRule> <Value>'
- '§7» §7/world §bhelp'
- '§7» §7/world §bimport §7<World> <WorldType>'
- '§7» §7/world §binfo §7<World>'
- '§7» §7/world §blist'
- '§7» §7/world §blink §7<World> <Nether | End> <Welt>'
- '§7» §7/world §bload §7<World>'
- '§7» §7/world §breload'
- '§7» §7/world §bteleport §7<Player> <World>'
- '§7» §7/world §bunload §7<World>'
- '§7» §7/world §bwhitelist §7<World> <Enable | Disable | Add | Remove | List> <Name>'
- ''
- '§f§m §r§r %prefix% §f§m '
- ''
import:
usage: '%prefix% §cUsage: /world import <Name> <WorldType | Generator>'
world-already-imported: '%prefix% §7The world §b%world_name% §7is already imported!'
starting: '%prefix% §7The world §b%world_name% §7will import...'
finished: '%prefix% §7The world §b%world_name% §7was successfully imported!'
info:
usage: '%prefix% §cUsage: /world info <World>'
message:
- ''
- '§f§m §r§r §b%world_name% §f§m '
- ''
- '§7» Creator: §b%world_creator_name%'
- '§7» Created at: §b%creation_timestamp%'
- '§7» Load-Auto: §b%load_auto%'
- '§7» Loaded: §b%loaded%'
- '§7» WorldType: §b%world_type%'
- '§7» Environment: §b%environment%'
- '§7» Difficulty: §b%difficulty%'
- '§7» GameMode: §b%gamemode%'
- '§7» Pvp: §b%pvp_enabled%'
- '§7» Receive-Achievements: §b%receive_achievements%'
- '§7» Spawn-Monster: §b%spawn_monsters%'
- '§7» Spawn-Animals: §b%spawn_animals%'
- '§7» Spawn-Entities: §b%spawn_entities%'
- '§7» Normal-World: §b%normal_world%'
- '§7» Nether-World: §b%nether_world%'
- '§7» End-World: §b%end_world%'
- '§7» End-Portal-Accessible: §b%end-portal-accessible%'
- '§7» Nether-Portal-Accessible: §b%nether-portal-accessible%'
- '§7» Whitelist: §b%whitelist_enabled%'
- ''
- '§f§m §r§r §b%world_name% §f§m '
- ''
list:
usage: '%prefix% §cUsage: /world list'
message: '%prefix% §aWorlds: %world_names%'
link:
usage: '%prefix% §cUsage: /world link <World> <End | Nether> <World>'
environment-not-exists: '%prefix% §cThe specified environment does not exist!'
successfully-set: '%prefix% §7You have connected the portal of the environment §b%environment_name% §7in the world §b%world_name% §7with the world §b%target_world_name%'
load:
usage: '%prefix% §cUsage: /world load <Name>'
world-already-loaded: '%prefix% §7The world §b%world_name% §7is already loaded!'
starting: '%prefix% §7The world §b%world_name% §7will loaded...'
finished: '%prefix% §7The world §b%world_name% §7was successfully loaded!'
reload:
usage: '%prefix% §cUsage: /world reload'
message: '%prefix% §7The configurations has been reloaded!'
teleport:
usage: '%prefix% §cUsage: /world teleport <Player> <World>'
message: '%prefix% §a%player_name% §7is teleported to the world §b%world_name% §7!'
sender-already-there: '%prefix% §7You are already in the world §b%world_name%'
target-already-there: '%prefix% §7The player §a%player_name% §7is already in the world §b%world_name%'
nether-not-accessible: '%prefix% §cYou cant enter the Nether via the command!'
end-not-accessible: '%prefix% §cYou cant enter the end via the command!'
unload:
usage: '%prefix% §cUsage: /world unload <World>'
world-cannot-unloaded: '%prefix% §cThe specified world must not be unloaded!'
starting: '%prefix% §7The world §b%world_name% §7will be unloaded...'
finished: '%prefix% §7The world §b%world_name% §7was successfully unloaded!'
chunk-starting: '%prefix% §7The chunks in §b%world_name% §7are unloaded...'
chunk-finished: '%prefix% §7The chunks in §b%world_name% §7were successfully unloaded!'
chunk-teleport: '%prefix% §7The world you were in will be unloaded. You will be teleported!'
whitelist:
usage: '%prefix% §cUsage: /world whitelist <World> <On | Off | Add | List | Remove> <Player>'
add:
already-added: '%prefix% §7The player %player_name% §7is already §7on the whitelist!'
successfully-added: '%prefix% §7You have added %player_name% §7to the whitelist of world §b%world_name%'
list:
empty: '%prefix% §7The whitelist for world §b%world_name% §7is empty'
message: '%prefix% §7Whitelist: %player_names%'
disable:
already-disabled: '%prefix% §7World whitelist §b%world_name% §7is already disabled!'
successfully-disabled: '%prefix% §7You have disabled the whitelist in the world §b%world_name%§7!'
enable:
already-enabled: '%prefix% §7The world whitelist §b%world_name% §7is already activated!'
successfully-enabled: '%prefix% §7You have activated the whitelist in the world §b%world_name% §7!'
remove:
already-removed: '%prefix% §7The player %player_name% §7is §cnot §7on the whitelist!'
successfully-removed: '%prefix% §7You have %player_name% §7removed from the §b%world_name% §7whitelist'
We welcome contributions to MultiWorld! If you'd like to contribute, please follow these guidelines:
- Fork the repository and clone it to your local machine.
- Create a new branch for your feature or bug fix.
- Make your changes and ensure the code passes any existing tests.
- Commit your changes and push them to your fork.
- Submit a pull request, explaining the changes you've made and why they should be merged.
- Ensure your pull request adheres to the code style and guidelines of the project.
Thank you for contributing to MultiWorld!
The MultiWorld project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
If you have any questions or need support, you can reach out to Dev7ex via:
- Twitter: @Dev7ex
- Discord: Dev7ex's Discord Server