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.
@bigscary
Thanks for the replies.
As to the sign, I hope you don't mind I cracked open the jar to see how you built the sign / change the material & signs myself. In there I found an error related to the /city /home sign I was talking about in the DataStore.AddRegionPost() method. Which also explains why the sign looked so odd to me.
PopulationDensity 1.5
@rayblasdel
Under the "no teleportation" config, the /homeregion sign would be gone, leaving only the /cityregion sign. That's why /homeregion is mentioned on the /cityregion sign. Similarly, other configs have the home sign, but not the city sign. Anyway, I suspect players are most likely to use /cityregion if it's available, so I want to take that opportunity to remind them about /homeregion so that they don't get lost (help, admin!).
If more ask for customizability on region post materials, I'll probably do it. But I don't want to code it and add even more config variables for folks to learn about if most won't be using them, so I'll play that suggestion by ear.
@rayblasdel
MINUTES? Wow. And I thought 30 seconds was a long time for (me) to wait. If you're not testing pop density itself, maybe just moving it out of your plugins folder while you fiddle with the other plugins will save you time (same as having a config variable, in that case).
I really don't want to add that config variable, because I think that it will be a big potential pitfall (sounds good, but in many cases it would mean NEVER opening new regions). I want this plugin to work for everyone, especially those who don't want to think too hard about plugins but still have a great server.
Also, two issues you may encounter related to not having enough CPU or RAM muscle.
First, players may lose connection while the region scan is ongoing. To them, it will look like a crash, but actually they can reconnect again right away (as soon as the scan finishes). That issue has to do with CPU speed.
Second, in extreme cases where MANY regions in a row are not suitable for new players (as in the case with a giant, already crowded world before installing population density), you may actually run out of RAM during the scan, causing the server to crash. There's no permanent damage in that case, and you can restart the server knowing that the scan will pick up where it left off (it won't start over and crash again).
Neither of these issues can be remedied through code right now. The first is because Bukkit API calls can't be multithreaded, and the second is because Bukkit doesn't proactively unload uninhabited (no players) chunks when running low on memory.
@LordBoos
Yes sir, that's normal. Because the resource scan is looking for "easy" resources near the surface, it's extremely rare that you will see any gold, redstone, or diamond. I have seen it a couple of times, but that's all.
Also, you might be curious why some unexplored regions have "player" blocks. That's because some blocks like fence posts, wood blocks, and cobblestone do actually get generated into the world (abandoned mines, strongholds, dungeons). However the threshold for player blocks is at 15,000, and I've so far never seen more than 400 initial "player" blocks from world gen.
Is it normal, that it ALLWAYS founds 0 Diamons, 0 Gold and 0 Redstone? I tried many new maps and many regions, allwas 0, 0, 0.
Working more with it tonight, a few more things.
1) On the guide posts, the "visit the city" sign has both the /cityregion and /homeregion commands listed. Seeing as there is a sign specifically for "home" I'm assuming that's a typo. Anyway we could customize the static sign text?
2) Would also love to be able to control what materials the guide posts are created out of.
A brilliant solution to one of the greatest Minecraft Server issues. Love it.
Am slightly curious, if at least for debugging / production purposes, could you have a configuration switch for boot region checking? I'm creating a new server and am continually starting and reloading my server. Having to wait minutes to load up each time is a bit pesky when I know nothing has changed.
@NavidK0
Hey Navid, I'm glad you like it! How have you configured it, all defaults?
Cool plugin! Really useful, I love it! It's great for my temp server, because I'm constantly changing maps and don't have a specific built spawn. Great work!
@micdoodle8
Change the config variable for manged world to the name of your existing world.
Yeah, it's possible the posts might land on top of people's houses. That's the only downside to managing an existing world.
@bigscary
Turns out I just had to restart again and it was fine.
Agreed :P It works fine on my test server with a new world, but how would this work with an existing world? Would it reset people's spawns/homes or would the region marker generate right into some people's homes?
Thanks :3
@micdoodle8
Well it's like you said... with no error message to go on, I couldn't guess the issue. No one else has complained about a problem with world guard. Does the problem disappear when delete PopulationDensity.jar? Also, you say it "stops", but that's pretty normal, right? Can you not log into your server?
I'm glad you like the idea. :) I know I personally hate playing on servers when I have to play two hours just to get started, and then no other new players are around me to play with.
Hey, trying out the plugin :)
Currently, after dragging and dropping I get this in my server.log: http://pastie.org/2998865
I assume this is normal, except when after it enables WorldGuard, it just stops. No error or message at all.
This doesn't happen without Pop. Density, so I assume that this is incompatible with WG?
Thanks, love the idea for this :D
Tweaked the data layer to delay load player data. That means not loading stuff into memory until it's needed, which will reduce boot time for big servers without noticeably impacting performance elsewhere.
Also updated the repository with changes for both 1.3 and 1.4.
@po5
Sorry, seems a little too server-specific to me to implement on my end. Maybe you could add code to your server that automatically executes the /homeregion command or /newestregion command for a player when he stands in a specific portal?
This is far out. But imma request is anyway.
On my server i have a portal world, which people spawn in for the first time. here they can choose which world they wanna explore. I use stargates to conncet the worlds.
Would it be possible to make a stargate link with your plugin so they get teleported to the newest areas?
running now *thumbs up*
Thanks to Mumblerit of MuttsWorldMine.com for providing real world data so that I could tweak my player block count limit. I think it's much, much closer to the ideal balance between maintaining wilderness to explore and develop in a region while ensuring players have plenty of neighbors to meet and play with.
After some examination, I estimate a "medium" structure (house with living and storage space, plus a greenhouse big enough to sustain one player indefinitely) takes about 500 blocks. Based on that number and examination of several other regions in the 500 - 150,000 player block range, I've increased the maximum player blocks before a region closes from 1,000 to 15,000.
I'm really excited about this. This will make PopulationDensity a better fit for servers which want to use the plugin to manage an expansive existing world, and also for creative servers where players don't need to collect resources, but still want to maintain an optimal distance between builds.
Thanks, Mumblerit! Everybody go play on his server - seriously, he's running this plugin. :) I don't know when exactly he'll update to the latest version.
@micdoodle8
Hey Micdoodle, care to share your server information? Maybe in a private message if you don't want others to see it. I'd like to come and visit to see how you've configured and how well it's working out for you. :)
Great job on this, you've done a great job developing and improving this plugin. Using this now :)