EntitySuppressor
EntitySuppressor is a plugin designed to prevent unnecessary amounts of Mobs from spawning on your server, thus reducing server lag. It does this by supplying an efficient multi-step process to limiting monsters.
Code is written almost entirely by myself. Also see bergerkiller's NoLagg for further Lag-Fixes. Credit to NoLagg & LexManos's PerformanceTweaks for some original concepts.
Features!
Quote:
- Multiworld compatibility!
- Limits Monsters, Squid, Animals, Bats, and Villagers to configureable amounts in rather efficient way.
- Can limit how far and/or how many layers away monsters spawn.
- Reduces the frequency of mob-spawn ticks.
- Only limits naturally spawned and spawner-spawned Mobs.
- When a world has reached it's maximum, spawner mobs are queued until there is room.
- Ability to remove far away unnecessary monsters.
- Does not remove mobs that have picked up player items.
- Commands to count the number of living entities.
- Commands to remove living entities.
- Reloadable config.
- Configurable debug mode that prints extra information.
- CraftBukkitUpToDate compatibility.
- Anonymous statistic reporting to mcstats.org!
Commands & Permissions
- /es count - Returns a count of all Living Entities in the current world.
- /es remove <all / monsters / animals> - Removes all of the specified entity group from the current world.
- esuppressor.remove - Required to use /es remove.
- If "all" is added to the end of either of the above commands, it will do it in all worlds.
- If <world> is added to the end of either of the above commands, it will only do it in the specified world.
- /es reload - Reloads the config.
- esuppressor.reload - Required to use /es reload.
@Fishrock123
Yeah they spawn a bit more then normal like 5-8 ender-men a chunk
@FusSionzZ97
They spawn like crazy even with those settings?
Im trying to limit the ender-men spawning in the enderworld how could i do this, they spawn like crazy on my end world
@kalijason
Oh. I should probably do that. Along with a host of other things. Whenever time permits.
Can this exclude the specific mob type? such as slimes the big slimes wont be split into small ones, because of the limitation Thanks
@Robert107
Oops, sorry, never saw your reply. Perhaps We could try to add extra chunk unloading. Not sure.
@HavenOfKairos
No idea. DOes it only happen when ES is being used? What CB version? ES version?
Whats this mean?: [WARNING] Task of 'Mobs' generated an exception
<<reply 724197="">>
Okey, i will put them in the half. Also, look at this, there are 32 players right now:
03:53:26 [INFO] ES Count: (86): 72 monsters, 0 animals, 14 squid, and 0 players in
Pirates
03:53:26 [INFO] ES: 21863 chunks loaded in
Genubi
(CCM: 85)03:53:26 [INFO] ES: Maximum monsters in
Genubi
is: 10003:53:26 [INFO] ES: Maximum squid in
Genubi
is: 10003:53:26 [INFO] ES: Maximum animals in
Genubi
is: 102403:53:26 [INFO] ES Count: (3149): 0 monsters, 2699 animals, 433 squid, and 17 players in
Genubi
03:53:26 [INFO] ES: 31421 chunks loaded in
Benel
(CCM: 122)03:53:26 [INFO] ES: Maximum monsters in
Benel
is: 102403:53:26 [INFO] ES: Maximum squid in
Benel
is: 10003:53:26 [INFO] ES: Maximum animals in
Benel
is: 50003:53:26 [INFO] ES Count: (1524): 975 monsters, 492 animals, 45 squid, and 12 players in
Benel
The loaded chunks are almost twice than latter with less people =/.
What are the conditions of that bug? Large maps?
@Robert107
Bukkit does unload chunks if your far enough away, but, stuff does go awry sometimes. There is actually an obscure vanilla bug where the chunk hashmap overflows.
Your numbers seem normal, but I suggest trying to lower the monsters in Benel, and lower the animals in Genubi.
<<reply 724125="">>
Okey, thanks. But that means that bukkit nerver unloads the chunks? =/
Also what does CCM means?
NLE Says nothing relevant, the only picks i see are from SpoutPlugin(28ms), Towny(31,9ms), NoCheat(20ms), WolrdGuard(17ms) and Chunk Creation (9ms), in a 50 secs inspection. All the other plugins are below 4ms.
I don't know what it could be, im really stuck with this problem, i tried everything and nothing seems to work.
This is an "es count all", that i did just now:
22:00:57 [INFO] ES: 1142 chunks loaded in
Zu
(CCM: 4)22:00:57 [INFO] ES: Maximum monsters in
Zu
is: 10022:00:57 [INFO] ES: Maximum squid in
Zu
is: 4422:00:57 [INFO] ES: Maximum animals in
Zu
is: 8922:00:57 [INFO] ES Count: (9): 2 monsters, 0 animals, 0 squid, and 7 players in
Zu
22:00:57 [INFO] ES: 2379 chunks loaded in
Zu_nether
(CCM: 9)22:00:57 [INFO] ES: Maximum monsters in
Zu_nether
is: 46422:00:57 [INFO] ES: Maximum squid in
Zu_nether
is: 9222:00:57 [INFO] ES: Maximum animals in
Zu_nether
is: 10022:00:57 [INFO] ES Count: (61): 60 monsters, 0 animals, 0 squid, and 1 players in
Zu_nether
22:00:57 [INFO] ES: 879 chunks loaded in
Zu_the_end
(CCM: 3)22:00:57 [INFO] ES: Maximum monsters in
Zu_the_end
is: 17122:00:57 [INFO] ES: Maximum squid in
Zu_the_end
is: 3422:00:57 [INFO] ES: Maximum animals in
Zu_the_end
is: 10022:00:57 [INFO] ES Count: (155): 154 monsters, 0 animals, 0 squid, and 1 players in
Zu_the_end
22:00:57 [INFO] ES: 746 chunks loaded in
Pirates
(CCM: 2)22:00:57 [INFO] ES: Maximum monsters in
Pirates
is: 022:00:57 [INFO] ES: Maximum squid in
Pirates
is: 022:00:57 [INFO] ES: Maximum animals in
Pirates
is: 022:00:57 [INFO] ES Count: (30): 16 monsters, 0 animals, 14 squid, and 0 players in
Pirates
22:00:57 [INFO] ES: 13422 chunks loaded in
Genubi
(CCM: 52)22:00:57 [INFO] ES: Maximum monsters in
Genubi
is: 10022:00:57 [INFO] ES: Maximum squid in
Genubi
is: 10022:00:57 [INFO] ES: Maximum animals in
Genubi
is: 102422:00:57 [INFO] ES Count: (2050): 0 monsters, 1668 animals, 355 squid, and 27 players in
Genubi
22:00:57 [INFO] ES: 14771 chunks loaded in
Benel
(CCM: 57)22:00:57 [INFO] ES: Maximum monsters in
Benel
is: 102422:00:57 [INFO] ES: Maximum squid in
Benel
is: 10022:00:57 [INFO] ES: Maximum animals in
Benel
is: 50022:00:57 [INFO] ES Count: (1277): 1010 monsters, 208 animals, 45 squid, and 14 players in
Benel
@Robert107
view distance = sent chunks, not server loaded chunks. In my experience, a single player loads about 600-800 nearby chunks.
Also, what does NLExamine say?
<<reply 723942="">>
For me it is. I have 9 of view distance, that is 9x9 = 81 chunks for player, in that world were 30 players so 81x30 = 2430 chunks (or at least i think).
The size of the world it's 500mb on disc.
So, what it could be? The server has an i7 2600k, it starts nice but the time pass and you can see the CPU usage incrementing reaching the top of 100% and thats when the TPS of the servers starts to drop.
This is the list of plugins:
[0] => Spout 1110
[1] => Vault 1.2.16-b184
[2] => Multiverse-Core 2.4-b545
[3] => PermissionsEx 1.19.2
[4] => Questioner 0.6
[5] => MyHome 2.2
[6] => iConomy 5.01
[7] => Deadbolt 2.1
[8] => SpoutWorld 0.32
[9] => BKCommonLib 1.18
[10] => RedstoneClockDetector 0.2.5
[11] => Modifyworld 1.19
[12] => NoCheat 3.5.0
[13] => SimpleReserve 0.4.4
[14] => Jobs 2.8.1
[15] => WorldEdit 1121-144c0a9
[16] => Towny 0.80.1.0
[17] => EntitySuppressor 2.2.2 (1P2)
[18] => CreativeGates 1.3.3
[19] => CommandBook 2.1
[20] => Multiverse-NetherPortals 2.4-b544
[21] => VanishNoPacket 3.8.1
[22] => DeathControl 1.61
[23] => WorldGuard 624-18b5a4e
[24] => NoLaggExamine 1.06
[25] => ChestShop 3.39
[26] => TownyChat 0.29
@Robert107
How many players do you have? 23k isn't particularly unusual with 10 or so players and a decent world size.
@Pr07o7yp3
Listen, I have no idea.
One person says spawners don't work, the next person says that only spawner work, and so on. Both spawners and natural spawns are limited by ES by default, and lumped together. The problem somehow stems from the minecraft spawning algorithm.
Ask dinnerbone to hardcode a better spawning API into minecraft 1.3 :(
I have some more questions.
I use multiverse and have two main worlds. "world" and "super".
I want to limit the monsters only for world "world".
So my config is:
The problem is that the monster spawners doesn't work even in world "Super". Why?
@Pr07o7yp3
When you type /es count, what is your "CCM"?
Also, are these respawning up to 50? Because ES does not remove existing squid..
Ok, I know you told me the plugin works correctly but let's see something.
I have:
and
When I typed /es count I see the maximum squid is 1 but exactly there are 50 squids in the world. Why? Even when I look to the water I see about 10-15 but the max limit is 1.
Ok, where I wrong?
@Chaznuts
That would work, but it will cause split second lag every scan-interval
@Fishrock123
Is it possible for me to only remove monsters (not animals) at a certain configured player distance? I don't really care to limit monsters.. just remove unnecessary ones. Would I just set the configs to something like this? Obviously not changing the formatting.. just values.
LimitMonsters: true
MonsterMaximums: -1
RemoveAtDistance: 128
CancelSpawnAtDistance: 92 (Not sure if I'd even need this one. This relates to player distance as well?)
Thanks for the great plugin and any feedback! :)