The one world per player solution you have always dreamed of. Now in over 10 languages
Hello there,
I'm sure you're asking what WorldSystem is.
WorldSystem is a plugin where every player can get a world. There they can build, play and do anything they want without creating stress in a single world. The world owner can also add other players and manage their permissions on his world like is he allowed to build, teleport or changing his gamemode.
When a player creates a new world you can also set a template which will then be cloned.
Features:
- Fully customizable messages
- Event driven and easy to use API
- Supports English, German, Hungarian, Spanish, Russion, Finnish, Chinese and Dutch
- GUI (100% configurable)
- Many Permissions
- Removing worlds when they are empty
- Low CPU/Ram usage
- Lag detection
- AutoUpdater
- Create worlds async and incredibly fast (only 1.8 - 1.12.x)
- PlaceholderAPI support
- Permission system for the world owners
- Customize the worldborder and all gamerules
- Generator settings for also paid generators
- Automatic deletion of worlds that have not been loaded for a long time
AdvertisementMissileWars - 2.5 EURA unique, fast and fun minigame
Some screenshots:
TODO:
- Support more languages: You can send us translated messages and we will implement them
- More and more worldoptions
Still not convinced?
- Over 7000 lines of code
- 4.81 stars (18 5-star reviews)
- Over 600 worlds managed by WorldSystem
Here are the JavaDocs.
Here are the stats of my plugin.
!!! Warning !!!
It is not recommended to use this plugin on version 1.13 or 1.14, as the performance of these versions are pretty bad, especially when it comes to world generation. Altough these versions are supported, it won't work very well. Consider using another version such as 1.12 or 1.15.
Commands:
/ws get - Gives you a world
/ws home - Teleports you to your world
/ws sethome - Sets a specific home
/ws gui - Opens the GUI menu
/ws tp <Player> - Teleports you to the specific world
/ws addmember <Player> - Add a player to your world
/ws delmember <Player> - Remove a player from your world
/ws leave - Leave the world you are currently on
/ws fire - Enables/Disables fire in your world
/ws tnt - Enables/Disables tnt in your world
/ws info - Show information about the world you are currently on
/ws reset - Reset your world
/ws togglegm <player> - Allows/Denys a player changing its gamemode
/ws toggletp <player> - Allows/Denys a player teleporting
/ws togglewe <player> - Allows/Denys a player using WorldEdit
/ws togglebuild <player> - Allows/Denys a player building
Just for admins:
/ws delete <Player> - Delete the specific world
/ws confirm - Confirm if necessary an autoupdate
FAQ
- Creating worlds async
Just install FastAsyncWorldEdit and WorldEdit on your server - done.
- How to set a template
- Will not all worlds consume a lot of memory?
No, it will not. Every world gets unloaded and moved to a specific folder when they are empty. The RAM usage depends on how much chunks are loaded. So if you have one world with many chunks loaded against 5 worlds with not so much chunks loaded, the RAM usage will be equal.
- Will not all worlds consume a lot of disk space?
About 1000 worlds will consume ~38 GB of space. If you want you can enable auto-deleting for old worlds if their use was a long time ago.
- Why should I use WorldSystem? I have PlotMe.
WorldSystem gives the player a world where they can fully live out their creativity and they are not limited to a 20x20 plot. You can also enable the survival mode so players can't change their gamemode or teleport.
Servers using WorldSystem
- Forged in Fire (fifmc.com) - UnknownCity (unknowncity.de) - CorbaCraft (corbacraftmc.com) - MagmaCube (magmacube.cz) - MineCraft-Universe (mc-universe.de) - world4every1.servegame.com - AppleMC (AppleMC.pl)[/code] You can contact me and I will put your server on the list too.
Permissions
- ws.*: Gives access to all permissions from WorldSystem
- ws.get: With this permission you can get a world via /ws get
- ws.sethome: With this permission, you can seta specific home for your world
- ws.tp.*: Gives access to all teleport permissions from WorldSystem
- ws.build: You can build even without the permission of the world owner
- ws.delete: You can delete worlds
- ws.gamemode: You can change your gamemode without the permission of the world owner
- ws.lag: You can see the lag notifications
- ws.tp.world: You can teleport to a world without being a member of that world
- ws.tp.other: You can teleport other players across worlds
- ws.tp.toother: You can teleport to other players across worlds
- ws.big: Gives you a bigger world if configured
- ws.large: Gives you an even bigger world if configured
- ws.confirm: You can confirm an auto update
Config.yml
# Path where the worlds will be saved worldfolder: 'plugins/WorldSystem/Worlds' # Name of the template world worldsource: '' # If a confirm is needed before auto-update need_confirm: true # When nobody is on a world time until it get unloaded unloadingtime: 20 # If true nobody can teleport or change their gamemode a WorldSystem world # Except for players with the permissions: ws.gamemode | ws.tp.* survival: false # If true players will teleport to the spawn on join spawn_teleportation: true # Time in seconds until a request expires request_expires: 20 # Name of the languagefile in plugins/WorldSystem/messages/ language: en # Prefix which will be shown before each message prefix: '&8[&3WorldSystem&8] &6' # Time in days after a not used world will be deleted # Set to -1 to disable delete_after: -1 # Whether WorldSystem should contact the Mojang authserver # If not, some unknown playernames will not be displayed # eg. in the gui or in /ws info contact_authserver: true # Options for the LagSystem: # period_in_seconds - how often will be checked for entities in seconds # entities_per_world - maximal allowed entities per world # garbagecollector - how often will be unused ram be cleared lagsystem: period_in_seconds: 10 entities_per_world: 350 garbagecollector: use: false period_in_minutes: 5 # Options for random world generation worldgeneration: # A seed for worldgeneration # Set it to 0 for no seed-useage seed: 0 # Environment for the world # Valid inputs are 'NORMAL', 'NETHER' and 'THE_END' environment: NORMAL # Type of the world eg. flat, amplified, ... # Valid types are 'NORMAL', 'VERSION_1_1', 'FLAT', 'AMPLIFIED', 'CUSTOMIZED' or 'LARGE_BIOMES' type: NORMAL # Put in here the name of a generator # If you have one from one plugin generator: '' # Location where you will be teleported when you leave you world spawn: gamemode: 2 spawnpoint: world: world x: 0 y: 20 z: 0 yaw: 0 pitch: 0 # Location where you spawn when you join a world worldspawn: use: false spawnpoint: x: 0 y: 20 z: 0 yaw: 0 pitch: 0
A "/ws reload" command will not be necessary, because the config will be automatically read.
How to set a Template
Developer API
Before you are asking me with a problem, have a look at the docs.
The class SystemWorld is for world loading, creating, ...
// Retrieving a instance of a systemworld SystemWorld world = SystemWorld.getSystemWorld("worldname"); // Load a SystemWorld if(!world.isLoaded()) { // Load a world, the player will be notified and teleporter when finished world.load(Player player); } // Unload a world // Is world loaded if(world.isLoaded()) { // Unloads a world with a wait timer // World w is the actual world object of the systemworld world.directUnload(World w); // Or unload it with the given time in the config world.unloadLater(World w); } // Teleport a player to the spawn of this world world.teleportToWorldSpawn(Player p); // Automatically checks if World w is a SystemWorld // If so unload its with the given delay in the config SystemWorld.tryUnloadLater(World w);
You can also use the PlaceholderAPI to get some information. Have a look for this on the GitHub Wiki
This work is licensed under a GPL-3.0 license
Want to encourage and motivate me? Donate something and buy me with this donation a coffee.
Convinced by my work and my support?
Please leave an honest review down below or donate something. But if you post an issue in the review section it will be ignored instead go here.