Population Density
Automatically places new players where they can find wood, animals, ore, and space to build. Also priority-based login queue, reserved slots for admins, idle boot ONLY when nearly full, entity thinning for lag reduction, and optional limited teleportation. Never again will your players experience a marathon run, spawn room full of portals, or maze of abandoned builds. This is a zero maintenance solution for administrators, and players don't need to learn any commands!
"This is THE plugin for large servers." – Mumblerit of muttsworldmine.com
Looking for a 1.12.2 or earlier-compatible version? Check here.
Got a question, suggestion, or problem? Post it on the issue tracker.
This video explains the region post system to new players.
See below for information on administrative features.
Feature Summary
- Assigns starting points for new players so that they can ALWAYS find space to build and beginner resources nearby. Players may be spawned directly there, or you can tell them about a slash command which will take them there.
- Respawns animals, regrows grass, and replants trees in the new player area to guarantee important new player resources.
- Removes idle players ONLY when the server is nearly full.
- Login queue to ensure fairness when your server is full, can prioritize some players over others if you like.
- Reserved slots for administrators.
- Optional teleportation posts which help players socialize and trade, but aren't abuse-able to escape combat or save a lost or hungry player.
- "Thins" extremely-dense crowds of monsters and animals, preventing ridiculous levels of farming or monster grinding from lagging your server.
Overview
Server owners often underestimate the badness in starting a player in a crowded area. Sure seeing builds makes your server look legitimate, but having to explore a long time just to find space to build and beginner resources is a major turn off for players who want to start playing right away. Even when players do find a place to start playing, they're often alone because other new players wandered into different areas.
PopulationDensity is the low-maintenance, easy-for-players answer to all these problems.
It works by automatically locating a region with lots of wood and ore, and then dropping new players in that region until they collect most of the easily accessible ore, cut down most of the trees, or crowd it with builds. Then PopulationDensity finds a new resource-wealthy region for future newbies and starts dropping new players there. If you have a great spawn area built up, you can instead spawn players there, and later tell them to use /HomeRegion when they're ready to start adventuring (or another command you define in commands.yml).
Additionally, optional teleportation commands help players move around quickly to admire builds and socialize while not compromising the game's integrity - players can only teleport from automatically-placed teleportation posts, so teleportation can't be used as an "easy-out" for players who mine or adventure themselves into trouble. That way, players keep the challenge of single player without the "players are too far apart" multiplayer issue.
Finally, if you have a "my server is always full" problem, then congratulations on your successful server! :) With PopulationDensity, you may optionally boot players who are idling so more players can log in and have fun, increasing your feel-good factor (or fattening your wallet, for some). when the server IS full, a login queue guarantees fairness, and administrative slots are set aside to guarantee administrators can always get in.
You can also assign players a queue priority to help them get on the server faster during peak times, to reward them for contributing to the server monetarily or through your community.
Setup, Configuration, and Commands documentation
Metrics: Like most other plugins this plugin collects anonymous metrics to see who's actually using this plugin, and this information is used to determine popularity as well as what features matter or not in the grand scheme of things.
Got a question, suggestion, or problem? Post it on the issue tracker.
In case anyone is interested, I'm running an alpha of the login queue here:
50.31.24.211:25566
Of course, when the server isn't full, there's not much to see. :) The latest GriefPrevention is also there.
THIS IS A MAJOR UPDATE, PLEASE READ.
1. No longer handling nether and end portals. If you have more than one world, you should install a plugin which will take care of that.
2. There's now an idle booter. If a player doesn't do much for 10 minutes, he will be kicked. You can change the timer, or disable it entirely (set to zero). Give a player populationdensity.idle permission to exempt that player.
3. Players are longer be prevented from building and breaking anywhere they want, except for around region posts. If you need that functionality, cling to the previous version as long as you can.
4. /movein no longer has a cooldown.
5. /acceptregioninvite no longer updates home region, but must be used near a region post.
6. Fixed the "signs dropping from region posts" problem.
7. Added a /addregionpost command to regenerate a damaged region post (permission populationdensity.addregion).
8. Changed /region to /whichregion to avoid conflict with worldguard.
@mumblerit
Yep, configurable. Default will be 10 mins so players can take a dump without getting the boot. :) Or set to 0 to disable entirely.
@bigscary
configurable time please. honestly if you add this it will knock another plugin i am using out, which is good.
@mumblerit
Not doing the move checks. I'm checking a player's position only when they haven't done any of those other things in the last 10 minutes, and then computing distance to see if they moved far enough to count.
@bigscary
be careful if/when doing onmove checks, they are quite intensive.
Some details on the AFK feature, since it's developing some details. The default timer will be 10 minutes. To stay online, a player must do one of the following every 10 minutes:
Note that hopping up and down, riding around in a minecart, and spinning in circles will not count as going anywhere. Also, chat is purposefully not included, because it's too easy to automate, and because standing around and chatting is not playing (if you're not an admin and all you're doing is chatting, log out and let somebody else play!).
There's a permissions node to exempt a player from being kicked for idle, defaulting to ops.
If you disagree with any of this, or see an opportunity for abuse, please do post. :)
In recognition that having all player slots filled without a login queue is also a population problem, I'm planning to add a priority queue (rank will allow some players to advance ahead of others in line) and an AFK boot (to prevent players who aren't really playing from preventing others from joining).
Both of these can be disabled, in case you just don't want them, or you already have another solution.
Hi all, some big news items. Please read!!
1. I'm planning to remove the restrictions on who can build and break where entirely. Leaving them in is very confusing for players, and I want to solve this crowding problem with minimal disruption. If you want to keep the current system, then you should stay with the current version, but those features will not be supported going forward.
2. To make the admin setup experience simpler, there will be no default for which world to manage anymore. This eliminates the "I need to delete the extra worlds it created on first run" problem. Also, no new worlds will be created for you. If you want to have multiple worlds, then you will create them yourself, and install relevant multiworld plugins to manage them. PopDensity will manage any world you want, but you do the creating.
Changes #1 and #2 will drastically reduce the configuration complexity and reduce config options.
3. I'm cautiously optimistic about a new scanning technique which can be multithreaded. Hold onto your butts and keep your fingers crossed. I also plan to increase the accuracy of the scans.
@TehSeph
You choose exactly one world which will be managed. I think most admins just use their default "world" world. Other worlds are completely unmanaged by PopulationDensity. So yes, you pick which world players will spawn in.
Is this multiworld compatible? By that I mean, if I want a player to only spawn at the most populated spot in a certain world and not in whatever world is most populated, is that possible?
Some players reported a bug with /invitetoregion not working. It's been local fixed, and I'll get it into the next update. In the meantime, you can get it to work by typing the player's name with correct casing.
Ooh! Comment #100!
My server is running very smoothly now, despite having only 1GB of ram and a max of 15 players. We still haven't automatically opened a new region after a week, but players are asking fewer questions about "regions" now that I've tweaked the messaging and the config options to fit my small server scenario. Also, despite the little RAM available, I've eliminated the "server lags and players get disconnected when regions are scanned" problem.
Woohoo! PopDensity now works almost as well for small servers as it does for large ones.
I'm strongly considering an update which will name wilderness regions when the first player moves into the region. I'm considering it because I see MANY players on my server running out of the open region into the wilderness, and they have difficulty with the plugin because people can't come to them (they have to go to others), and because they can't tell other players where they live (their region doesn't have a name).
Benefits:
Detriments:
So this change would benefit most at the expense of a few. But I'm leaning toward implementing it. Please post if you have a strong opinion on this matter.
Other minor changes coming:
2.0 Updates!
Note that this isn't a major version really, it's just an incremental version from 1.9.
To summarize, these changes mean less lag generated from resource scans, better resource management to support servers with little RAM or processing power, and fewer messages related to players moving around.
1. PopDensity will now watch your number of players, and if the server empties, it will take advantage of that opportunity to scan resources without impacting players (still max once per six hours). Pretty smart, huh? =D
2. No more region notification messages (arrived, left) except for teleportations.
3. When build/break everywhere is enabled, players may only teleport from region post to region post. This means no more teleportation abuse to get out of the bad situations players put themselves in. You can still use the "teleport anywhere" config option to let players teleport from any location, if that's really what you want.
4. There's a new config option to disable scans while players are online entirely. Can be useful on servers with very few resources. However, it's possible that PopDensity could be waiting a VERY long time to get in a scan, especially when your server becomes popular and people are online 24/7. Therefore, you shouldn't turn on this option unless you also schedule a routine (daily, at least?) reboot or reload. During initialization, PopDensity will always take the opportunity to scan before players are allowed to join.
So my recent adventure in administering a server with the plugin running has me considering a couple of changes. Please post if you have a strong opinion.
1. I have build/break anywhere enabled, and my players are using /homeregion to safely venture into far off caves. I'm considering updating so that when that config option is enabled, players can only teleport from region posts.
2. Considering removing the "arrived" and "left" messages for random wanderings on foot. A couple of my players have built their houses very close to the boundary of a region, and so they're spamming the hell out of everybody just doing stuff around their houses. The notification messages would still stick around for teleportations.
3. Considering defaulting to build/break anywhere. Some players are having difficulty because they start building near a boundary, and can't finish their houses. So they use /movein, and find that they still can't finish their houses (now they can build the other half, but not the first).
I'm aware of two bugs - one where region posts don't get placed, and another where region posts keep spawning signs for players to pick up. I'll try to get them both fixed. The first is tough, the second easy.
Here's my server info. Due to having <1GB of RAM, I'm a little concerned about how long the region scan takes. Fortunately, it only scans at most four times per day. :) Please check out the server and send me your feedback. It also has GriefPrevention, so you can claim land to protect yourself from griefers.
sc18.servercraft.co:1292
1.9 Updates!
Added a /region command to tell you which region you're in.
Much improved memory management. Specifically, after a region is scanned, unneeded chunks are explicitly unloaded, and any lingering data structures in the heap (it's a java thing) are tossed out. Should reduce "out of memory" problems on servers with very little RAM (true of many hosted servers). Unfortunately, I don't think I can totally eliminate that problem, since scanning an entire 400x400 block region takes a lot of juice.
Fixed a bug related to region change notifications.
@freaky85
I've been taking bug reports and suggestions here in the comments, mostly because I think the ticketing system takes a little ramp-up for users to learn. If you try using the comments a bit and you're not satisfied with it, I'll look into opening ticketing.
can you put up a ticket system. we're going to use this plugin on our 40-slot server and we would like to maybe make bugreports or enhancement suggestions.
1.8 Updates!
Added a new config value which adjusts the population density for future regions. Use a lower number to reduce population density, spreading players farther apart, or a higher number to add more players to a region before moving on, which increases the density. Recommendation - leave this config value at the default for a long time before you go fiddling with it. The default was very carefully chosen based on lots of real server data.
If you do change it, very small adjustments (0.2 or less) are recommended, and will make a huge difference. It takes a long time to see the effects, because lots of players have to join your server and build, enough that a region is automatically closed, before you can look at the closed region and decide whether the population density you're seeing is what you want.
Added an option to disable the "welcome to X region" and "player has left/arrived" messages.
Added a possible fix for the "end portals in the managed world don't work" problem. I can't tell for sure - the current issue I'm experiencing is that I get teleported to the end, but in the void, and die. I can't be certain whether it's a general "extra end worlds" issue, or an issue the Bukkit guys are working out of the CraftBukkit builds right now. Anyway, the end is way overrated, and the only way your players can access it is if you update your config to allow them all to build and break everywhere. Hang in there for a new recommended craft bukkit build.