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.
Requirements
- v6.0 and higher require Java 21
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.
Sponsors:

Got a question, suggestion, or problem? Post it on the issue tracker.

-
View User Profile
-
Send Message
Posted May 19, 2012<<reply 714051="">>
Hmm. Okay, it was only happening with my test player. Got my wife to log in and it worked correctly for her. :/
Possibly I'm not erasing every trace of the test player's data each time.
-
View User Profile
-
Send Message
Posted May 19, 2012Hmm.
I'm trying this out. I have NewPlayersSpawnInHomeRegion set to false. New players spawn in the right x,z area, but at really terrible altitude--generally very very low. For example:
2012-05-19 09:32:48 [INFO] <player> [/<ip_address>:2559] logged in with entity id 358 at ([world] 9.5, 0.6200000047683716, -4.5)
2012-05-19 09:45:05 [INFO] <player> [/<ip_address>:2595] logged in with entity id 434 at ([world] -8.5, 0.6200000047683716, 0.5)
I thought maybe I was connecting the new player too soon after start up, so I waited until the region 0 0 scan was complete and PD saying that the region was resource rich enough and tried again. Same result:
2012-05-19 09:57:28 [INFO] <player> [/<ip_address>:2648] logged in with entity id 434 at ([world] -8.5, 0.6200000047683716, 8.5)
Player dies each time and then spawns at the region post.
-
View User Profile
-
Send Message
Posted May 17, 2012Hey guys I decided to delay the new features a couple of days. They're done and tested, but just to get some confidence, I'm going to run them on my server for a couple of days just to make sure I didn't break anything before I give those changes to you guys. Some of the changes were a pretty big deal (on my end), so I want to play it safe.
-
View User Profile
-
Send Message
Posted May 8, 2012Ryan commentary here also? Why not!
Here it is: This plugin place my user automaticly! Before, i had spawn, and then 10 KM around I had no trees! So players were mad! The best spawning plugin!
-
View User Profile
-
Send Message
Posted May 6, 2012@bigscary
old players look at the newregion as a sort of free for all, robbing new players of trees etc.
-
View User Profile
-
Send Message
Posted May 6, 2012@Xerati
But if the lava is underneath the platform, how is that a problem? You can't fall in it if it's underneath the solid platform right?
Sure, I can add a config option to skip the posts.
-
View User Profile
-
Send Message
Posted May 6, 2012@mumblerit
What problem motivates your request? Overcrowding in the new area by old players?
-
View User Profile
-
Send Message
Posted May 5, 2012I need a permission node for newestregion.
-
View User Profile
-
Send Message
Posted May 4, 2012I noticed that there is "spawn area protection" which I do want, however, it doesn't go below the spawn platform.... People can dig around under it, and put in lava....
can you expand the protected area down 15 blocks or so? atleast?
And also add in an option to not have the platform/pillar? I'm trying to use it on my vanilla gameplay server, and the concept is PERFECT for getting new players to spawn in different areas
-
View User Profile
-
Send Message
Posted May 3, 2012@zedadiaswick
Sadly, PD isn't even close to as popular as GriefPrevention. I don't think there are enough people using it to warrant building a public API for others to build on. Maybe in the future. I see the value too, but it won't be easy to code, and even when done, it will have a big performance impact on PD. So I'll leave it in the "maybe" pile for now. :) Thanks very much for giving this plugin some good thought!
To move the region post up, just build something overtop it and then use /addregionpost. It always spawns on the highest block. You'll probably want to destroy the old one on the surface.
Yeah, I'll look for a way to clean that up so that only the very last region is announced. I think your situation is rare, though. :)
@Fluffgar
I don't even know what that error message means. Source meaning what, source code? Since when does there need to be source code on dev.bukkit.org? Besides that, there's no place to post source code here, except to link to a repository, which I've done. If you figure out what that means, let me know. :)
-
View User Profile
-
Send Message
Posted May 3, 2012CraftBukkitUpToDate message:
[INFO] No source for PopulationDensity v2.7.1 ask the Author to add it to dev.bukkit.org
-
View User Profile
-
Send Message
Posted May 2, 2012@bigscary
On the subject of GP integration, could you not add an additional plugin, or an external file perhaps, to allow for adding additional checks to the region scans. Allowing you to add claim checks for GP, but also other plugins to be included; or just any other checks like checking if local biomes match certain kinds (down to taste) for example. Then they could be coded and added by the community. This would mean GP could be integrated, but the additional code only included when server operators actually choose to include the code.
This problem isn't something i've encountered yet, but I can see the benefits.
EDIT:
Also, just been discussing a build project with a couple of players. They want to build a large-scale project, and build it up in the air. Oddly enough, they came to me separately to talk about two similar, but separate projects within the same hour. I suggested I could move the region post up to their build, so players could travel to their sky build directly, instead of travelling to the ground and then having to find some way to get up there. As it turns out, this isn't necessary as players spawn on the tallest point above the region post anyway. Still should replicate the appearance of the region posts so players arn't confused. Would be good, though, if I cold move the region post up there and have it automatically update itself as per normal. It seemed to cope with being world-edited vertically just fine. Not an essential point, though. The players would need to edit close to the region post, but as it is I can only give them access to edit near ALL region posts; obviously not ideal. Would it be possible to add in a command to grant a player permissions to edit the current regions' region post? (or by region name in the command, perhaps?)
Also also, before I forget: Is it possible to have the 'new region is open' messages announced AFTER the scan has finished and decided it is suitable? At-least so they are hidden from regular players, my last region that opened took about 14/15 different regions before it found a suitable one. It effectively spammed the chat whilst it opened up all these regions.
-
View User Profile
-
Send Message
Posted May 1, 2012@Phonix420
Thanks for your kind comments. :) I don't want to add grief prevention integration because it's not clear to me at this point that most everyone is using GP. If at some point in the future admins wake up and realize there's nothing better than GP and all of them start using it, then maybe. But until then, I don't want to add code inside PopulationDensity that's specific to just one other plugin.
I have encountered that problem you described myself on my own server, but it's very rare, I think. I just used /addregion to skip over that mostly-claimed region.
You can find my server info by searching "damn near vanilla" on planetminecraft.
@rebel24
Are you sure the problem is spout? Check your log during boot. If you haven't set the "managed world" config variable, then most commands won't work.
@CronosDage
Thank you very much, Cronos. :)
@lostinmyhead
If you just leave the "managed world" config option empty and ignore the on-boot error message, you'll be left with essentially just the idle boot and login queue. I'm very glad you like those features!
-
View User Profile
-
Send Message
Posted May 1, 2012This is definitely a plugin done right.
-
View User Profile
-
Send Message
Posted May 1, 2012@rebel24
Doesn't work at all with spout :/
-
View User Profile
-
Send Message
Posted May 1, 2012I did /whichregion and got:
org.bukkit.command.CommandException: Unhandled exception executing command 'whichregion' in plugin PopulationDensity v2.8 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:166) at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:624) at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:821) at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:781) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:764) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:103) at net.minecraft.server.Packet3Chat.handle(Packet3Chat.java:34) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:169) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:85) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:622) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:506) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) Caused by: java.lang.NullPointerException at me.ryanhamshire.PopulationDensity.PopulationDensity.onCommand(PopulationDensity.java:196) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40) ... 14 more
-
View User Profile
-
Send Message
Posted Apr 30, 2012Bigscary, can you take the idling and login priority aspects and put them in a light-weight plugin? If not, how about a flag to disable all other aspects of the plugin? I prefer your method of controlling logins and idlers to others that I have found.
-
View User Profile
-
Send Message
Posted Apr 30, 2012@bigscary (EDIT) Jeez you're updating your plugins faster than I can make tl;dr comments about them....lol
Awesome idea and thanks for the clarification. Also, thanks for pointing out a griefing potential. Thinking about it, players could still find ways to dump lava on the posts. I'll just put GP admin claims around each post (not like there's a ton of em atm)
I also had an idea. I'm sure this would be an easy thing for you to add, it would be fantastic and logical to add a function when assigning players to regions, that searches for existing area protections. Of course I don't care about all the other fools using anything other than GP, so it would be awesome if it examined a region and was smart enough to know that some or most of it is claimed by someone other than the player, and it therefore is not a feasible spot for players to call home, thus assigning them to a more feasible region. For example, I happened to claim a huge mushroom biome before installing PopDensity, and PopDensity created a region pretty much right beside it since it was close to spawn and contained lots of resources. It assigned a few players to that region, who couldn't do anything with it because I had it claimed already, when it should have assigned them to a region with more unclaimed land. Just a long winded thought I figured I'd throw your way.
Still loving this plugin though, you never cease to amaze me with your innovation! I would love to stop by your server sometime and get an idea of how you're using this and GP together, and hopefully catch you there!
-
View User Profile
-
Send Message
Posted Apr 30, 20122.8. Updates
-
View User Profile
-
Send Message
Posted Apr 30, 2012@CharlesWCrete
Can't do it.
@Phonix420
Yes, just in case somebody has dumped lava nearby and it has rolled over onto the post. This way respawning and teleporting players never land directly in any bad stuff.
@Lius98
That's odd, let me look into it. I probably fumbled something minor somewhere. Glad to hear it's working well for you. :)