- Native Minecraft Version:
- Tested Minecraft Versions:
- Source Code:
- WhispTheFox, WyrosUniverses
Interdimensional Travel Made Possible
THE 3.0 Update Has Arrived!
PER WORLD INVENTORIES ARE NOW SUPPORTED
Yup, that's right! More stuff for Universes! So, why the big jump from 2.1 to 3.0? Well, there are some bigger changes in this version, so I decided it warranted a bigger change. So, what's in store? Probably the biggest new thing is the Universe-Ends add-on. That's right. It is now possible to have individual end worlds for each overworld world. There is also a first join spawn system in place as well as the ability to use a seed in world creation. As the Universes 2.0 video is somewhat outdated now, I will be adding a new video soon to cover the new features in this update.
(This video is now a tiny bit outdated)
Here's a timelapse video I put together of the creation of the Universe-Nethers plugin. I thought some people might find it interesting.
NOTE ABOUT PER WORLD INVS:
There may very well still be some bugs in the transition between versions, so I encourage all server owners to have their players store all their items in chests before per world inventories is turned on or modified. This will ensure no items are lost.
Hello all, and welcome. Today I am finally releasing the 3.0 update to my biggest plugin. As the title suggests, it is a plugin for multi-world management. It is a fairly extensive plugin, so please be sure to read through everything so you know how it works. Also, please note that while this may work to an extent on 1.13 servers, changing allowAnimals and allowMonsters will produce errors. Now then, let's get into it.
First, the commands:
This command will show the plugin help page, aka a list of all available commands.
/universelist/universecreate <world name> <environment> <type> <difficulty> <seed>
This command will show a list of all available worlds.
This is the command used for the creation of worlds. When creating a world, you must give a name, environment (normal, nether, or end), type (for example, normal, amplified, or large_biomes), and the world difficulty (peaceful, easy, normal, hard). If you experience any crashes while creating worlds, please go to your spigot.yml file and find the line that says "timeout-time" Increase it from 60 to somewhere around 300 (1 minute to 5 minutes) and it should resolve the issue. This will require restarting the server.
The /universescreate command can now accept a seed argument. If you have a seed you want to generate with, simply add it on to the end. If you don't have a seed, you can run the command the same way you always have.
/universeimport <world name> <environment> <type> <difficulty>
This is the import command. Use this if you have a preexisting world that you want to import. The plugin verifies that the world is of the correct format before importing. All of the fields are the same as for the creation command.
/universeunload <world name>
This command will unload a world from the server without deleting it. Use this if you want to remove a map from the server to use it somewhere else.
/universedelete <world name>
This command is the delete command. Use this to remove a world from the server and delete it from the files. This will require running a confirmation command.
When deleting a world, you will be prompted to run this command. Once this command is executed, the deletion process will begin. If you did not already run the /ud command, this will not do anything.
This is similar to the /confirm command. Use this to cancel a world delete. If you have not run the /ud command prior, this will do nothing. After running /cancel, /confirm will no longer work.
/universemodiy <world> <item to modify> <new data>
This is the modify command. Use this to modify world data. You will find all modifiable fields in the world-settings.yml file. The currently modifiable items are as follows: pvp, spawn, allowMonsters, allowAnimals, gameMode, respawnWorld, playerLimit, and allowFlight. There will be more about each setting below.
In universes 2.0 and later, running the command with no arguments (just typing /um or /universemodify) will open up a GUI from which all the settings can be changed.
/universeoverride <override type>
This command allows users with appropriate permissions to override various world settings. The current overrides are: gameModeOverride, canJoinFullWorlds, and flightOverride. In the command you can fully type each of those out or use their aliases, which are gmo, fwo, and flo respectively. More about these overrides below.
In universes 2.0 and later, running the command with no arguments (just typing /uo or /universeoverride) will open up a GUI from which all the settings can be changed. This GUI will only show options a player has access to. If they have access to none of the overrides, they will be told so and the GUI will not open.
/universeteleport <world name>
This is the teleport command, users with the proper permission can use it to teleport between worlds.
This is the command used to set the spawn point for first time players. (Please note that by default players will just go to the regular spawn if no first join spawn has been set.)
Settings and Overrides
First, the world settings. They are all fairly self explanatory. PvP allows or disallows player versus player in that world. Spawn changes the world's spawn location. allowMonsters will allow or disallow all hostile mobs. When this is set to false, all hostile mobs are instantly cleared from the world. allowAnimals is the same as allowMonsters, but for passive mobs. When this is set to false, all passive mobs will instantly be cleared from the world. Any tamed mobs will NOT be deleted. So don't worry about losing your precious puppies and kitties. gameMode is the game mode of the world. When a player teleports into the given world, their game mode will be updated to whatever the world's game mode is set to. respawnWorld determines which world the player will respawn in when they die. playerLimit limits the amount of players permitted to enter a world. Once a world has reached it's limit, other players will be denied from entering. To disabled the limit, simply set the playerLimit to -1. Currently, -1 is the default for this setting. And finally, allowFlight. This allows or disallows flying in a world. When a user tries to toggle into flying (via double tapping space bar), while allowFlight is false, whether it be in creative mode or with /fly enabled, they will be denied flight. If a user is already flying when this setting is changed to false, they will be told that flying is no longer allowed, and they will be toggled out of flying.
Overrides. These are important for admins. First, there is gameModeOverride. With this enabled, the user's game mode will not be changed upon switching worlds. With canJoinFullWorlds enabled, the user will be able to join a world even if the playerLimit has been reached. And finally, flightOverride. With this enabled, users will be able to toggle flying even if it is not permitted in a given world. Users with this enabled will also not be toggled out of flying when the allowFlight setting is updated.
In Universes 2.0 and later, there is a new override: perWorldInventoriesOverride. Enabling this will override per world inventories if they are enabled. This means users with this enabled will have their inventory shared across all worlds.
I meant to actually add this section earlier, but I forgot. Here we'll cover everything in the config.yml file. While I try to make everything as self explanatory as possible, there are a few things that aren't obviously clear. So, let's dive it.
First, there is the per-world-inventories option. This allows you to turn on or off per-world-inventories.
Second, is per-world-stats. This allows you to turn on or off per-world-stats. If per-world-inventories is off, this should have no effect. If it does, let me know because that means I did something wrong. The stats that are held per world are health, hunger, and experience.
Third, is per-world-inventory-grouping. If per world inventories are on, this setting can be turned on to allow the use of world groups via the groups.yml file. What this means is worlds can be grouped together to share the same inventories and stats.
Fourth, is per-world-kit-grouping. This allows the per world kits to use the groups as well. The kits function will always be enabled, but if no kits are made, none will appear in the GUI when the command is used. The kits command also uses a unique command (/universekits or /uk) so as not to cause issues with any other kits plugins you may be using.
Fifth, is save-inventory-on-death. This option only has an effect is the gamerule keepInventory is set to true. Normally, the inventory doesn't save when you die, so if keepInventory is on and the respawn point is in another world, a player's items won't drop when they die, and the saved inventory will be cleared. Thus, when they go back, all their stuff would be lost. Turning this option on will save the player's inventory when they die so that doesn't happen. If you don't have keepInventory on, this will have no effect at all because the player's items will drop before the inventory saves anyway.
Sixth, is use-respawnWorld. In the world settings there is a respawnWorld option that allows you to define a world to respawn the player in when they die. For example, you have a world called Survival, a world called Survival Spawn, and a world called Lobby; and your spawn point is in the lobby. If you want players to respawn in Survival Spawn when they die, set the respawnWorld for Survival to Survival Spawn, and turn this option on. Then, when a player dies in Survival, they will be taken to Survival Spawn.
Seventh, is use-first-join-spawn. This allows you to enable or disable the first time join spawn.
Any changes made to the config.yml, and any other .yml file will have an immediate effect. This means when you change settings or groups or any other pieces of data, those changes are instantly applied and you don't need to reload or restart.
If you have the Universe-Nethers add-on plugin installed as well, two items will be added to the config under 'Universe-Nethers." They are as follows.
Turning this on will allow each overworld world to have its own nether. For worlds that already exist, a nether will have to be manually generated and it must have the same name as the overworld world with _nether added on. For example, if you have an overworld called Survival, the associated nether must be called Survival_nether. If you create a new world with this option enabled, it will automatically generate the associated nether for you.
This has no effect if nether-per-world is turned on. If nether-per-world is turned off however, it will. If this option is turned on, players will be sent back to the world from which they entered the nether from. For example, if the default worlds are world, world_nether, and world_the_end, and a player enters a nether portal from Survival, they will be taken to world_nether. When they use a portal to leave the nether, they will be taken back to Survival. If this option is disabled, the player will be taken to world upon exiting the nether.
If you have the Universe-Ends add-on plugin installed, one item will be added to the config.yml under Unverse-Ends.
Enabling this will allow each overworld world to have its own end. For worlds that already exist, an end world will have to be manually generated and it must have the same name as the overworld world with _the_end added on. For example, if you have an overworld called Survival, the associated end must be called Survival_the_end. If you create a new world with this option enabled, it will automatically generate the associated end for you. Because of the way End portals work, exiting the end will take players back to the main spawn point instead of the world they entered from.
This is some important extra information that you need to know before we get into permissions.
- In most plugins, like Essentials, that handle warps and homes, they can be set in any world and teleported to from any world. Inventories will be updated if the player is taken to any other world or world group.
- Changing the name or type in the settings will cause the world to generate with the wrong environment or configuration. For example, changing a nether world's type to normal will cause the world to regenerate as a normal world on startup.
- Removing a world from the world-list.yml will cause it to not load when the server starts up.
- There is no timer or timeout with the /confirm and /cancel commands. So be wary of that and don't forget about any world deletes you've started lest you do something you didn't want to do. (I do plan on adding expiration timers for this. I'm just trying to figure out how.)
Grants the player access to the gameMode override
Grants the player access to the canJoinFullWorld override
Grants the player access to the flightOverride override
Grants the player access to the perWorldInventoriesOverride override
Grants the player access to all overrides
Grants the player permission to create new worlds
Grants the player permission to list worlds
Grants the player permission to import worlds
Grants the player permission to unload worlds
Grants the player permission to delete worlds and use /confirm and /cancel
Grants the player permission to modify world settings
Grants the player permission to teleport between worlds
Grants the player permission to set the first join spawn point.
Grants the player permission for every command
I know it's sorta a lot, but I thought it was all mostly necessary and useful. I hope you all enjoy this plugin. And please, if you have any feedback or suggestions, please let me know in the discussion section here, or on Discord via Whisp Reedwell#5879.
- A legacy version?
A multi-world plugin for 1.14+
Great plugin. Works exactly as needed. No hassle, no fuss, just learn the commands and go nuts. Unlike the previous reviewer mentioned, the plugin does provide you with the syntax...
Lightweight, doesn't seem to cause any lag. I appreciate the option to have multiple or one inventory between worlds.
I should not be using this on 1.12.2. I am. It works anyways.
In 1.12.2, I can't modify settings for each universe (I have no expectation that this should be fixed). However, I can still load, unload, import, delete, join, leave, whatever. Just goes to show that the plugin has surprising amounts of backwards compatibility.
I actually didn't read what version the plugin was for... given that I didn't even question that it might not be for 1.12 until I CHECKED, I think that's rather funny.
Perfect experience. I'll stick with this plugin.
So far loving this plugin. Thank you. Just starting out making my server and this was the easiest plugin to setup/use for world generation. Only thing i wish it would be able to do is remember where a player was when he left the world and bring him back there when he comes back. This could be a per-world option and could also maybe be a different command or overridden somehow to force a player back to map spawn point if wanted. Either way will keep using this plugin. Thank you again.
Great and lightweight alternative to plugins like Multiverse.
Being able to set gamerules per world is fantastic, and the /um command is pretty sweet, too. The documentation is also very well done. Would highly recommend! Only thing that would make it better is a "per-world inventory" system!