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.
Well, while the comments are rolling, I wanted to mention about a couple of minor features coming.
You probably noticed that on many public servers, there's also a starvation problem with animals, and to a lesser extent, grass (for seed). The first batch of new players coming into a fresh region tend to corral or kill most of the animals, leaving none for other players, and can even make grass hard to find.
Vanilla does respawn animals, but at an extremely slow rate. So I'm experimenting with a new idea - increasing the animal spawn rate, and when an animal spawns, growing some tall grass around it. The only question is what to default the spawn rate to so that we have enough animals but not too many.
Tell me if you have any thoughts on the matter. :)
Meh, I don't think so. I also just paged through the top 200 or so, and I don't see anything that screams "OH NOES, PD!". I also updated my local box to the beta, and can't repro the issue myself. It must be something specific to your world, I guess. Or maybe something to do with your test environment... I can't begin to guess.
Is it a new world? Did you log in without PD enabled to check the regions to make sure they're not oceans?
https://bukkit.atlassian.net/browse/BUKKIT-903
how about that one.
It's possible what you're seeing is a craftbukkit bug. I'm going to try the beta build on my local machine now and see what happens. I don't see the problem when I run on 1.1-R6, though. Since I didn't change anything in the scanning code for several versions now, I think it's very unlikely that this issue is on my end.
You might try looking through bukkit's bugmanagement system, wherever it is, to see if anything jumps out at you.
@mumblerit
build 2034 was promoted to beta, it is fairly stable.
@mumblerit
im sorry, i cant read for some reason, on 1.2.3
@bigscary
yes sir, it is fairly stable at this point.
@mumblerit
You're on 1.1-R6?
unfortunately this means the world never loads as it continually searches for a region with more then x resources, but continually sees 0
@mumblerit
confirmed by moving the data directory, the plugin is having issues reading regions for some reason.
@bigscary
error seems to be gone, altho now i am getting a lot of failed regions on startup with 0 starting resources found, not sure if its ocean or what.
2.4 Updates!
@mumblerit
I tried to reproduce that error and failed. Is it possible you might have been using a mismatched version? PD 2.3 was for Bukkit 1.1-R4. The build I just released is compatible with 1.1-R6. If you keep seeing that issue, please post again. I'll look some more.
@bigscary
23:46:51 [INFO] PopDensity: running idle task 23:46:51 [WARNING] Task of 'PopulationDensity' generated an exception java.lang.NoSuchMethodError: org.bukkit.entity.Player.getVehicle()Lorg/bukkit/entity/Vehicle; at me.ryanhamshire.PopulationDensity.AfkCheckTask.run(AfkCheckTask.java:34) at org.bukkit.craftbukkit.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:126) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:520) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:452) at net.minecraft.server.ThreadServerApplication.run(SourceFile:490)
@mumblerit
Thanks very much for that candid feedback, Mumblerit! I'll make adjustments accordingly. Maybe something like a config variable for # of slots reserved for admins.
For the short term while I work on that change, I want to mention that any kicked player is immediately pushed to the front of the queue. I know getting kicked sucks, but that's some mitigation.
@bigscary
started using the login queue, not terrible so far, altho i havent reach capacity due to the issues inherent with 1.2. However I have noticed that Op's will be set to kick people when they login, honestly id prefer a system where no one is ever kicked..while allowing certain players to join, like a softlimit.
example: 150 players on, queue kicks in, however staff/vip wants to join, it allows 151 in.
Kicking players inherently looks bad.
2.3 is a major update! Please read:
1. Added a login queue system, which is on by default.
2. Temporarily, there's a LOT of information about the queue going to your logs. That will be reduced in the future, but it's important for now so that you can report any issues you might discover.
3. You will always have one slot left open, so consider increasing your max players by 1.
4. Players with populationdensity.kicktologin permission (default ops) will actually boot players out to log in when the server is full. Other players will be advised of their place in a queue, and must re-connect every 5 minutes to keep their place.
5. Players who recently disconnected for any reason go to the front of the queue.
6. You can assign a player login priority (default is zero) using /loginpriority. Priority is 0 to 100, where 100 is equivalent to the kicktologin permission mentioned above. populationdensity.prioritylogin = 25, populationdensity.elitelogin = 50.
I'll add a couple of levels via permissions, but the slash command will give you more precision.
@bigscary
is the slash command on top of the permission settings? honestly permissions are the easiest to manage from an admins perspective with many players
@mumblerit
Hi Mumblerit, thanks for the tip! I looked over the docs there. As it stands today, my queue has all those features, and it's easier to configure and use. Basically, you don't have to configure it, it just works.
Also:
@bigscary
havent had any issues with the afk booter so far, seems good.
as far as the queue system, see loginqueue2 for some ideas, as that is the most used queue system, by far, altho quite outdated.
not really outdated, just old 8^)