NoLagg

Version: 1.90.4 | CB 1.7.2
Quote from lenis0012:NoLagg has not been updated since 1.7.10, for more info, check BKCommonLib
Description
NoLagg is made out of multiple completely separate components which you can enable and disable freely. Together they offer:
- Send chunks more gracefully with lowered network stress and reduced processing spikes Read more...
- Remove entities, resend chunks in case of chunk holes and clean up server memory Read more...
- Examine server tick rate performance with deep view into per-tick processes of the server Read more...
- Stop a large amount of items from spawning and spawn at a later time to avoid frozen clients Read more...
- Stack items with a configurable per-world radius Read more...
- Fix lighting errors that cause clients to recalculate lighting (and thus lag) Read more...
- Keep track of server performance such as entities, tick rate, memory and more Read more...
- Fix various bugs the server has (Patches component)
- Schedule autosaves and force data to be written to disk to prevent data loss on server crash (Saving component)
- Limit the amount of entities allowed to spawn per world or globally Read more...
- Watch events closely to warn when plugins execute main-thread methods from another thread Read more...
- Show a detailed message explaining the cause for a server freeze (lock) [read more]
- New TNT execution algortithm that is not only more efficient, but also avoids server freezes Read more...
Important
When first installing NoLagg, open up config.yml and disable components you do not need. This is very important, as some components may conflict with other plugins you use, or may not function on the type of demand you have. If you get a warning message [Severe] followed up with a stack trace in the log, this has to do with the main thread not having responded within 10 seconds. The warning is NOT an error and is no bug, and not a bug related to NoLagg. To disable this feature, disable 'threadlocknotifier' in the config.yml. This feature is mainly intended to notify you what plugin is causing the server to freeze, may it ever happen. It is used to debug plugins in general, as they may get stuck for whatever reason. If NoLagg DOES show up in there, it is a bug you should report.
FAQ
Separating into jar files
NoLagg consists of multiple components you can individually enable and disable. Reasons for not publishing it as a separate jar file for every component can be read here. Please don't ask to separate the components, I will just link you to here.
Spigot server
Not all components are needed when you use the Spigot server. The ItemStacker, ItemBuffer, Spawn Limiter, Thread Checker and Thread Lock Notifier components are not needed, since Spigot has it's own implementations to deal with that. If you still wish to use one of these components, you can, but it's best to disable the Spigot alternative then.
The other components (such as TNT, Chunks, Lighting, Common, etc.) are not implemented in Spigot (yet?) and offer additional functionality.
PTweaks
Since people keep asking about this, I went ahead and compared the two plugins. I am not going to discuss which is better in functionality, I'm just going to state which features overlap and which do not. Both plugins offer a TNT-lag solving solution, feel free to choose which solution you like better. (the solutions are different) Both plugins also offer a way to change when and how chunks are saved, NoLagg adds to this that you can configure when the server writes data to disk. PTweaks offers a way of showing used memory, NoLagg Monitor too with a bit more information. Again, preference. Chunk Persistence is something PTweaks offers and NoLagg does not. Reason I excluded it from NoLagg is that the implementation used up more processing power than that it solved (I did have this for a while). If you want to give it a try, PTweaks is your answer. Monster Limiter is incorporated in NoLagg as well but then for all entities, and more options. ChunkEdits is a tricky one: NoLagg chunks does something similar, with the difference being that it also changes at what rate chunks are sent, which is the main feature NoLagg chunks offers. In addition, the ability to increase the amount of threads running to process chunk packets and the re-using of packet raw data offers some benefits PTweaks does not offer.
Then there are a lot of other features NoLagg has and PTweaks does not, such as examining server tick rate, item stacker, item buffer, fixing lighting, cleaning up server memory, resending chunks, removing entities on command and others (see description).
In short: Both plugins offer some overlapping features, and you need to pay close attention to the configuration of PTweaks and NoLagg and disable things that conflict. Having two TNT explosion altering plugins is going to have strange results, for example. Compare the functionality, decide, and enable in NoLagg what you do not want in PTweaks, and vice versa.
NoLagg showing up in error stack traces
The examine component inserts various hooks into the server to gather measurements. Specifically, you will find that the following lines show up now and then. These hook classes do absolutely nothing when not examining and can not be the cause for any issues, unless the stack trace ends there (first line after the exception shows this stack trace)
- org.timedbukkit.craftbukkit.*
- com.bergerkiller.bukkit.common.internal.ChunkProviderServerHook
Video
Here is a video by BlueDevonMovies (lenis0012):
Metrics
This plugin sends server count statistics to MCStats.org. You can (globally) opt out in the PluginMetrics/config.yml file.







-
View User Profile
-
Send Message
Posted Aug 7, 2012@bergerkiller
@bergerkiller, when you "reply" it just shows "@856589="":" at the top, which is why i was confused as to who you were talking to. Thanks for updating so quickly, i'll check back here once in a while if you don't mind posting when you have uploaded again.
-
View User Profile
-
Send Message
Posted Aug 7, 2012<<reply 856589="">>
I fixed both issues you mentioned.
Buut....
I will probably have to re-upload it once again today. The block updating bit is heavily flawed. For example, redstone doesn't update, same for rails. Must have to do with the anitloader thing of NoLagg chunks. Will look into fixing it.
-
View User Profile
-
Send Message
Posted Aug 7, 2012@bergerkiller, not sure which of your, if any, replies was directed at me. NoLagg seems to run okay in game but not sure about that "[SEVERE] Could not pass event WorldLoadEvent to NoLagg org.bukkit.event.EventException" also not sure if you saw my edit about "/nl reload" throwing some errors.
-
View User Profile
-
Send Message
Posted Aug 7, 2012[global announcement]
I had to re-upload 1.87 twice (yes, TWICE) to fix some smaller bugs and I didn't feel like incrementing the version.
Fixed as well:
The classcast exception (ConcurrentLinkedSometihng can't be cast etc etc antiloader package)
/lag fix throwing an array index out of range exception
Hopefully it stops there...
-
View User Profile
-
Send Message
Posted Aug 7, 2012@bergerkiller
While I haven't had a chance to test much yet, I can confirm that the Orebfuscator error from the first version of 1.87 is gone with the newer version.
Thanks!!!!
-
View User Profile
-
Send Message
Posted Aug 7, 2012<<reply 856312="">>
That worldedit bug I saw too, but I don't think it is related to NoLagg. More to WorldEdit. (they still need to update)
<<reply 856389="">>
Re-uploaded 1.87 on GitHub, that version does work with the latest orebfuscator. (I tested, can't be 100% sure)
<<reply 856424="">>
Are you using the recommended CraftBukkit build with this? It's slightly strange that it starts complaining about casting from ConcurrentLinkedQueue to a List...there is no queue in the PlayerManager class in nms...
if this persists, disable the 'dynamic view distance' in the config.yml (chunks component)
-
View User Profile
-
Send Message
Posted Aug 7, 2012It looks like there could be an issue with MultiVerse (which I do not think has an update at this time)
-2012-08-07 15:43:50 [SEVERE] Could not pass event WorldLoadEvent to NoLagg
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:332)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
at org.bukkit.craftbukkit.CraftServer.createWorld(CraftServer.java:730)
at org.bukkit.Bukkit.createWorld(Bukkit.java:155)
at org.bukkit.WorldCreator.createWorld(WorldCreator.java:235)
at com.onarandombox.MultiverseCore.utils.WorldManager.addWorld(WorldManager.java:137)
at com.onarandombox.MultiverseCore.utils.WorldManager.addWorld(WorldManager.java:91)
at com.onarandombox.MultiverseCore.utils.WorldManager.loadWorlds(WorldManager.java:557)
at com.onarandombox.MultiverseCore.MultiverseCore.onEnable(MultiverseCore.java:242)
at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:217)
at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:365)
at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:381)
at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:265)
at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:247)
at net.minecraft.server.MinecraftServer.i(MinecraftServer.java:296)
at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:275)
at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:225)
at net.minecraft.server.DedicatedServer.init(DedicatedServer.java:140)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:380)
at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
Caused by: java.lang.ClassCastException: java.util.concurrent.ConcurrentLinkedQueue cannot be cast to java.util.List
at com.bergerkiller.bukkit.nolagg.chunks.antiloader.DummyPlayerManager.<init>(DummyPlayerManager.java:58)
at com.bergerkiller.bukkit.nolagg.chunks.antiloader.DummyPlayerManager.<init>(DummyPlayerManager.java:52)
at com.bergerkiller.bukkit.nolagg.chunks.antiloader.DummyPlayerManager.convert(DummyPlayerManager.java:26)
at com.bergerkiller.bukkit.nolagg.chunks.antiloader.DummyPlayerManager.convert(DummyPlayerManager.java:31)
at com.bergerkiller.bukkit.nolagg.chunks.NLCListener.onWorldLoad(NLCListener.java:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:330)
... 21 more
-also on reload:
nl reload
15:55:50 [SEVERE] [NoLagg Chunks] Failed to reload NoLagg component 'Chunks':
15:55:50 [SEVERE] java.lang.ClassCastException: java.util.concurrent.ConcurrentLinkedQueue cannot be cast to java.util.List
15:55:50 [SEVERE] at com.bergerkiller.bukkit.nolagg.chunks.antiloader.DummyPlayerManager.<init>(DummyPlayerManager.java:58)
15:55:50 [SEVERE] at com.bergerkiller.bukkit.nolagg.chunks.antiloader.DummyPlayerManager.<init>(DummyPlayerManager.java:52)
15:55:50 [SEVERE] at com.bergerkiller.bukkit.nolagg.chunks.antiloader.DummyPlayerManager.convert(DummyPlayerManager.java:26)
15:55:50 [SEVERE] at com.bergerkiller.bukkit.nolagg.chunks.DynamicViewDistance$2.handle(DynamicViewDistance.java:91)
15:55:50 [SEVERE] at com.bergerkiller.bukkit.common.Operation.doWorlds(Operation.java:46)
15:55:50 [SEVERE] at com.bergerkiller.bukkit.nolagg.chunks.DynamicViewDistance$2.run(DynamicViewDistance.java:88)
15:55:50 [SEVERE] at com.bergerkiller.bukkit.common.Operation.<init>(Operation.java:27)
15:55:50 [SEVERE] at com.bergerkiller.bukkit.nolagg.chunks.DynamicViewDistance$2.<init>(DynamicViewDistance.java:86)
15:55:50 [SEVERE] at com.bergerkiller.bukkit.nolagg.chunks.DynamicViewDistance.init(DynamicViewDistance.java:86)
15:55:50 [SEVERE] at com.bergerkiller.bukkit.nolagg.chunks.NoLaggChunks.onReload(NoLaggChunks.java:87)
15:55:50 [SEVERE] at com.bergerkiller.bukkit.nolagg.NoLaggComponent.reload(NoLaggComponent.java:48)
15:55:50 [SEVERE] at com.bergerkiller.bukkit.nolagg.NoLagg.command(NoLagg.java:103)
15:55:50 [SEVERE] at com.bergerkiller.bukkit.common.PluginBase.onCommand(PluginBase.java:225)
15:55:50 [SEVERE] at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40)
15:55:50 [SEVERE] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168)
15:55:50 [SEVERE] at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:492)
15:55:50 [SEVERE] at org.bukkit.craftbukkit.CraftServer.dispatchServerCommand(CraftServer.java:488)
15:55:50 [SEVERE] at net.minecraft.server.DedicatedServer.ah(DedicatedServer.java:248)
15:55:50 [SEVERE] at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:213)
15:55:50 [SEVERE] at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:476)
15:55:50 [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:408)
15:55:50 [SEVERE] at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
15:55:50 [INFO] [NoLagg Saving] will write world data to all region files every 12000 ticks (10.0 minutes)
15:55:50 [INFO] Configuration of all NoLagg components reloaded!
-
View User Profile
-
Send Message
Posted Aug 7, 2012@bergerkiller Still have issues with Orebfuscator 1.5.7 and Nolagg 1.87. But take you time:
-
View User Profile
-
Send Message
Posted Aug 7, 2012Thanks for the update, bergerkiller!!
Now that the vanilla server forms its own itemstacks, should I still run that feature in NoLagg?
-
View User Profile
-
Send Message
Posted Aug 7, 2012Ok, I have some issues with this plugin, default config. First, worldedit changes do not appear, I have to relog. Second, redstone works, but it does not show me that it is working, I.E. it does not light up. Third, I place a torch on the ground, break the block beneath it and the torch stays, but also drops another torch, i can then break the original torch and have 2 torches. Fourth, I can hear explosions, but not see them.
Essentially I only want this for maybe 2 things, the firs which I definitely want is the TnT lag prevention, second, that I may do without is the chunk loading, how it sends the ones in front of the player first, is there any way I can just enable those?
-
View User Profile
-
Send Message
Posted Aug 7, 2012<<reply 856261="">>
Asked a lot, but this is not possible. It's up to the author of WorldEdit to handle huge block changes on another thread, writing them to the world on a slower basis to reduce lag. Another plugin can't and shouldn't try to push these things to another thread, as it can cause the server to crash.
I uploaded the new 1.87 version on GitHub already to support 1.3.1 properly. Not sure if Orebfuscator is supported, though, I'll have to look into that later. Got a lot of projects to update...
-
View User Profile
-
Send Message
Posted Aug 7, 2012When can we see this hooked into WorldEdit? This would definitely encourage me to donate...
-
View User Profile
-
Send Message
Posted Aug 7, 2012@Theway2cool1
A man does not simply remove all lags with 1 plugin.
-
View User Profile
-
Send Message
Posted Aug 7, 2012Test version: http:forums.bukkit.org/threads/fix-admn-nolagg-v1-86-prevent-common-lag-causes-on-your-server-2222.36986/page-109#post-1257256
If people haven't found it yet.
-
View User Profile
-
Send Message
Posted Aug 7, 2012@Nerdoguy12
One does not simply "prevent all lag"
-
View User Profile
-
Send Message
Posted Aug 7, 2012Need update for 1.3.1 !!!
13:56:01 [INFO] [NoLagg] Enabling NoLagg v1.86 13:56:01 [SEVERE] java.lang.Exception: Field 'u' does not exist in class file 'W orld'! 13:56:01 [SEVERE] at com.bergerkiller.bukkit.common.SafeField.<init>(SafeF ield.java:25) 13:56:01 [SEVERE] at com.bergerkiller.bukkit.common.WorldListener.<clinit> (WorldListener.java:19) 13:56:01 [SEVERE] at com.bergerkiller.bukkit.nolagg.spawnlimiter.NoLaggSpa wnLimiter.onEnable(NoLaggSpawnLimiter.java:15) 13:56:01 [SEVERE] at com.bergerkiller.bukkit.nolagg.NoLaggComponent.enable (NoLaggComponent.java:59) 13:56:01 [SEVERE] at com.bergerkiller.bukkit.nolagg.NoLagg.enable(NoLagg.j ava:49) 13:56:01 [SEVERE] at com.bergerkiller.bukkit.common.PluginBase.onEnable(Pl uginBase.java:179) 13:56:01 [SEVERE] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlug in.java:217) 13:56:01 [SEVERE] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin( JavaPluginLoader.java:365) 13:56:01 [SEVERE] at org.bukkit.plugin.SimplePluginManager.enablePlugin(Si mplePluginManager.java:381) 13:56:01 [SEVERE] at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftSe rver.java:265) 13:56:01 [SEVERE] at org.bukkit.craftbukkit.CraftServer.enablePlugins(Craf tServer.java:247) 13:56:01 [SEVERE] at org.bukkit.craftbukkit.CraftServer.<init>(CraftServer .java:199) 13:56:01 [SEVERE] at net.minecraft.server.ServerConfigurationManagerAbstra ct.<init>(ServerConfigurationManagerAbstract.java:50) 13:56:01 [SEVERE] at net.minecraft.server.ServerConfigurationManager.<init>(SourceFile:11) 13:56:01 [SEVERE] at net.minecraft.server.DedicatedServer.init(DedicatedSe rver.java:105) 13:56:01 [SEVERE] at net.minecraft.server.MinecraftServer.run(MinecraftSer ver.java:380) 13:56:01 [SEVERE] at net.minecraft.server.ThreadServerApplication.run(Sour ceFile:539) 13:56:01 [SEVERE] [NoLagg SpawnLimiter] Failed to initialize spawn limiter: coul d not bind to world entity listener 13:56:01 [INFO] [NoLagg Saving] will write world data to all region files every 12000 ticks (10.0 minutes) 13:56:01 [SEVERE] [NoLagg Saving] Failed to bind to the field to enable Auto-sav e interval changer!
-
View User Profile
-
Send Message
Posted Aug 7, 2012@Nerdoguy12
A plugin canÄt be able to remove all server lagg, but it can do it's best. If you use the new 1.3.1 craftbukkit snapshot, using using any kind of anti lagg doesn't make sence because craftbukkit is too buggy yet.
I also have to restart my server all 2 to 3 hours because - for any reason - the load average of ubuntu is larger than 12 and the server gets a ping of more than 10 seconds.
I suggest doing the same as I do: restarting the server every few hours when it gets laggy.
-
View User Profile
-
Send Message
Posted Aug 6, 2012Not working for me with 1.3.1 :/
-
View User Profile
-
Send Message
Posted Aug 6, 2012MY SERVER STILL LAGGS! :(
-
View User Profile
-
Send Message
Posted Aug 6, 2012Not goint to lie, nolaggs mob limiter is fucking shit.