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 Mar 11, 2013@x_clucky
Your BKCommonLib is outdated:
BergerKiller recently changed stuff in the Metrics package.
Please use BKCommonLib 1.50
-
View User Profile
-
Send Message
Posted Mar 10, 2013Tried newest dev build (1.89.8), didn't even work:
And I found this error in the header... :/
-
View User Profile
-
Send Message
Posted Mar 10, 2013@WoZo It's not all that bad though, it's just that NoCheat has to do a lot of processing whenever players move to check whether they are cheating. I don't think they can make that any more efficient. (also, I am not here to fix other plugin's issues, NoLagg examine is a tool, not a help service)
-
View User Profile
-
Send Message
Posted Mar 10, 2013@bergerkiller
Oh! Hehe! I'll get to work on that right away. Cheers!
-
View User Profile
-
Send Message
Posted Mar 10, 2013@WoZo
Longer list of the examine: http://pastebin.com/5ShQiS4f
-
View User Profile
-
Send Message
Posted Mar 10, 2013@bergerkiller
Everything seems to work now, thanks. I'm getting low TPS again with a few plugins from the PlayerMoveEvent.
Here's a bit of the examine: http://pastebin.com/gVtKc8Pe
Any help as to what's causing the problem would be really appreciated.
-
View User Profile
-
Send Message
Posted Mar 10, 2013I installed bkcl (v1.5) and nolagg (v 1.89.8). when server starts up it shows a msg [severe] no lagg could not start (paraphrasing).
Any ideas?
-
View User Profile
-
Send Message
Posted Mar 9, 2013@hunted2 After starting the server for the first time, these nodes should be generated. Anyhow, this is what SHOULD be there: http:pastie.org/6436341
@WoZo You need v1.89.8, which I already uploaded but is awaiting approval. You can get it from the development builds until then.
@x_clucky Yeaaah....I think using the 1.89.8 will help a lot there. Also, delete the permissiondefaults.yml file and restart everything when you updated it, the file you sent is suffering from an old bug I had to fix. (it uses * everywhere)
@lastrachris I suppose you have the same WoZo has, use the development build. (BukkitDevs gogogo)
-
View User Profile
-
Send Message
Posted Mar 9, 2013@bergerkiller
Sorry for long reply, i came down with the Influenza Virus (better known as the flu) about 2 days ago and haven't been able to move around until today. Here is a link to the permissionsdefault.yml: http://wocl.net/errors/NoLagg/PermissionDefaults.yml
As for the .exam files, they're not even generating when the command /nolagg examine 10000 is sent from console, so there is definitely an issue linking into the plugin.
I am using the most recent official build, not a developmental one. Should I be using a developmental one?
-
View User Profile
-
Send Message
Posted Mar 9, 2013Updated ProtocolLib and BkCommonLib and this plugin wouldn't work at all.
Getting this: http://pastebin.com/ZUdFikzX
-
View User Profile
-
Send Message
Posted Mar 9, 2013So:
Would enable this? Where do you set the 'multiple configured threshholds'?
That's my confusion as it's been a while since I've used nolagg.
-
View User Profile
-
Send Message
Posted Mar 9, 2013I keep getting this error when starting up my server. What am I doing wrong? It has been working for several months, and one day just quite. The only change I made was at one point I had a plugin that required ProtocolLib for NoLagg to work, and I sense removed both that dependency and the plugin. Any help?
-
View User Profile
-
Send Message
Posted Mar 9, 2013@bergerkiller
I like what you do, bergerkiller.
I have zero issues with BKCommonLib, i think it is an excellent way of isolating all the issues to one library that all the plugins then use.
I have Vault, TagAPI, BKCommonLib all installed on my server, the bonus is that because a lot of the plugins we use on our server rely on things like Vault, it means each plugin can talk to each other without having to know exactly how that plugin works.
Take Vault for example, if i install an economy plugin that vault supports, then any other plugin that wants to do economy and also uses vault can just call up the vault public functions.
Instead of a developer having to make their plugin work with 20 different economy plugins, they can let Vault deal with that issue and then they use Vault.
jQuery is another excellent example, years and years ago, we used to have to do things like document.getElementById("myID"); you still can, nothing really stopping you, but you also had to deal with cross browser inconsistencies in javascript implementations.
The beauty of libraries like jQuery and Prototype is that they dealt with all those issues for you so that you could do what you love doing, which is designing functional websites.
Anyway, that's my rant about people who are complaining about all these extra libraries, they are inevitable, nothing is perfect, these libraries help to shield developers from having to deal with them.
-
View User Profile
-
Send Message
Posted Mar 9, 2013@Crazdale Then sorry to bust your bubble, but 90% of the code in BKCommonLib was in NoLagg. For the guys bashing it...let me guess, mbaxter? Look, people do not like BKCommonLib because it has grown so much. The reason it exists is to make the amount of bugs in other plugins less.
What you see in BKCommonLib is all errors, issues and other crap previously occurring in other plugins. The reason I did this is to reduce the amount of uploads needed to fix common bugs.
The 'disconnect.spam' issue was fixed weeks ago, BKCommonLib is written in such a way that ANYTHING going wrong is detected in time, contains hundreds of safety checks for everything it does, and provides countless of safe alternatives for plugins to use. It keeps plugins compatible accross all future and current CraftBukkit/Spigot builds, and possibly more. You can request all you want, but BKC is 500 kb. Guess why?
There are reasons plugins depend on ProtocolLib, BKCommonLib, TagAPI or whatever other library available. They have to. Deal with it admins, seriously, plugins DO NOT FUNCTION without the use of libraries anymore.
Finally, you have to use the latest NoLagg development build with BKC 1.50. I am uploading this one now to dev-bukkit (notice a few comments back) and asked everyone to report bugs in this build. No one reported anything, so I suppose all is well.
-
View User Profile
-
Send Message
Posted Mar 8, 2013Can you drop the dependency with BKCommonLib? BKCommonLib was kicking all my players "Disconnect: Spam" and when I went to update it, turns out that now your plugin no longer works, because NoLagg is far too outdated to run with BKCommonLib now.
Anyways, it's a bad combo. Another Dev floating around here was bashing the programmin' in that plugin as well. While it would be nice to run NoLagg, I cannot see running it when it requires a buggy and shady built plugin such as BKCommonLib. ;(
-
View User Profile
-
Send Message
Posted Mar 8, 2013I'm getting this in my log and don't know if it's significant:
2013-03-08 12:55:17 [WARNING] [ProtocolLib] [PacketFilterManager] [BKCommonLib] Unsupported client packet ID in current Minecraft version: 20
BKCommonlib 1.50 NoLagg 1.89.8.64 ProtocolLib 2.3.0
-
View User Profile
-
Send Message
Posted Mar 8, 2013@hunted2 Oh it's still there, but you have it disabled. Disabled components will not load, and thus no information about the counts (the default) is generated. Enable the component, start and stop the server, and it should show the entity counts again.
AFAIK it is not a max count per chunk, reasons being that entities can move. You can set it globally for the entire world, though.
-
View User Profile
-
Send Message
Posted Mar 8, 2013I just loaded NoLagg 1.89.8.
Did you do away with the max entity limiter? I'd like to set a max global and (if available) per chunk/region entity limit to eliminate lag I'm getting with .dotick() and .tickentity() on a LARGE world with 6000-7000 chunks and 2000-3000 entities loaded.
I remember having this feature before.
I see this in the config, it seems the setting for "keep entity counts below multiple confi..." has been removed?
-
View User Profile
-
Send Message
Posted Mar 7, 2013I am a bit hesitant about uploading an official build yet, since NoLagg has undergone so many drastic changes the past few days. The following dev-build (latest) has my preference of uploading right now.
BKCommonLib v1.50 is already uploaded officially; there are no (more) tickets to be found that relate to bugs in that library. MyWorlds and SignLink are also updated. TrainCarts is in progress of fixing some final quirks reported.
http:ci.ecocitycraft.com/job/NoLagg/64/
If there are ANY bugs with this build (in combination with the latest BKCommonLib), let me know ASAP. If the plugin is proven to be clean tomorrow (friday evening) I'll upload it as official. It would be a shame to still have to re-upload NoLagg after the long wait...
-
View User Profile
-
Send Message
Posted Mar 6, 2013@x_clucky Can you send your permissionDefaults.yml? I suspect it got corrupted or something, because it worked fine here. Also note that /lag and /lag mem and etc is part of the monitor component, not examine. Examine is there to generate tick rate performance showing .exam files.
Finally, is this on the latest development build or official build? I could not reproduce it on the latest dev build...