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
Yea, the time thing.... This is actually the reason why I do not offer my plugins on Bukkit. Can't stand the pressure of so much people relying on me updating, fixing and improving stuff asap, when I barely have time for it. ^^
Heyho Fishrock123,
any news for an update?
@CubieX
Actually, if you have the source code of the plugin you are making lying around, I wouldn't mind checking your implementation of this in it. (Not that I can't do it myself, I would still be, but It would probably make the update come quicker and be more efficient.)
@CubieX
Agreed. That has been on the books for ages. Sure, it would fix the lag, but It wouldn't fix anything else.
I suppose I could work on doing that though. If I uh, get time. :/
Hm. Perharps it would help to split the calculations of the ESScanner to a certain maximum amount of players and/or animals each tick? This is something I'm doing in one of my plugins that's currently under development. There are checks that can get quite heavy and they are performed for every player on the map. So to avoid spikes in proccessing time, which causes lagg, I let the plugin check not more then 5 players per tick. So when 50 players are online, it would need 10 ticks to perform the checks on all players surroundings, but this way, I distribute the proccessing time from one single tick evenly to 10 ticks.
I had a look at your sourcecode and I think using such mechanism could reduce or prevent a time consumption that exceeds the 50 ms limit for one tick. I'll probably try this out by myself, because this plugin is way too good and way too important for us, as there is no other alternative for it. At least none I know of.
@CubieX
I realize that. I don't know what ES should really be doing or how to do it without a gigantic config.
Is there a usable alternative available?
Without ES the server gets flooded with animals and monsters which causes lagg. And with ES, it causes massive lagg every now and then, because the ESScanner task consumes about 11 times the time allowed for a single tick every 5 seconds, as far as Nolagg examine shows me.
So either way, it's not as reliable as it once was. Bukkits built in spawn limits only allow to limit the spawns per chunk. But not a total limit for the entities in the world nor does it remove entities like ES does when no one is around. So Bukkit alone cannot do the job. At least, currently not.
@MrMime22
Because if you haven't seen, the last version was for CB 1.2.5 ....
causing mass lag
Its still working, except for the chunk limitation.
@EszesBence92
Do mean that it does work? It might. ES was never directly broken, CraftBukkit did some funny stuff during 1.3. O_o
Its work on 1.4.2 bukkit ?:S
@Endless123
Turns out that in the months since last update Bukkit does have some of this functionality baked in. ES will be a managing plugin for the in-built limits. I just need to figure out how to manage them well.
@Endless123
Yeah, I've worked on it here and there when people bug me about it.
It's just a headache. I don't do nearly as much Minecraft servery stuff anymore. :/
A huge bunch of unnecessary functionality needs to be removed, entity counts need to be sanely maintained somehow (bukkit needs this...), distance scans need to be spread across multiple intervals, and the config needs a serious kick.
Please be honest,
are you actually working on it? Do you need help or anything?
I really liked this plugin, and i would love to see an update for this.
Please, we are a community, we are there to help
@Waterworth12
'Little' update? hahaha, yeah right.
@Fishrock123
Please do, this is a fantastic plugin and a life saver on reducing mob lag. Just needs a little update :)
@javoris767
@Blake380
Yeah... blerg this is a messy plugin. It's a headache. I need to pretty much re-write it. (This is discounting the fact that the Bukkit API doesn't support this kind of thing very well efficiency-wise.)
Since the Mojang API is taking so long and I have some odd inspiration I'll poke it a bunch.
Could this be updated :3 My world has about 7k entity and that's a lot. lol