Version: 1.89.9 | CB 1.5.1 and CB 1.5.2
Not compatible with BukkitForge
Quote from lenis0012:in case you are using Orebfuscator, make sure you have ProtocolLib Installed
Important
If you get a warning message [Server] 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.
Description
NoLagg is made out of multiple completely separate components. 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. Spawn limiter is improved a lot from 1.88.4 and onwards, though, and no longer uses a tick task to enforce limits. However, there are other plugins that can do it, and often dedicated plugins are better fitted to do the job.
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.
Prevent lag caused by many items
Every time an item gets spawned, it is buffered per chunk. For example, you spawn 30 items using Q and the maximum allowed items per chunk is 20, then the 10 remaining items are not spawned. They are spawned as soon the item count in this chunk is < 20 again.
Form item stacks - fully automatically
Whenever two or more (configurable) items or experience orbs get near each other, they form a single stack of that item type. If someone drops 64 dirt blocks on the ground using Q, it will show a single item of 64 dirt instead.
Prevent lag caused by TNT
This plugin takes over tnt ignition caused by explosions. When exploding stacks of tnt, it does not rush all tnts into a single tick, but detonate them nicely in sync. This results in pretty awesome fireworks. :)
Prevent lag caused by lighting glitches
Whenever a new chunk is generated, it's lighting information is generated and all nearby players receive the updated chunk data. If the auto-method fails, you can use /nolagg fix to do it manually. This fixing fixes, for example, dark spots in and around caves lagging the client.
Set entity spawn limits
You can set a spawn limit on virtually every entity in the game. From mobs to items to TNT. Only thing being excluded is Players, since I can't simply kick someone 'like that'. :) Note: It removes already spawned entities too. So, if you want to keep your animals alive, don't set mob or animal limits, or it will possibly clear your farm animals. (or you can disable the spawn limiter all together)
Global auto-saver
Since asynchronous chunk saving is now implemented internally, it is no longer a problem to save entire worlds frequently. You can set auto-save intervals in the configuration. If used with an interval higher than 400 ticks (20 seconds) it will use a scheduled task instead of the internal saver to prevent chunks never getting saved. Another benefit is that player information is also auto-saved, preventing your players losing their inventory state.
It also adds a new interval: a world save WRITE interval. Writing is now buffered internally, but when the server crashes all this data would be gone. The saving component will ensure that world data is updated every other time. This can help prevent you losing a lot of progress in your world.
New chunk sending mechanics
Instead of loading chunks all around the player, the player direction is used to load the visible chunks first. This means that players can expect chunks in front of them to load quickly, while chunks on the sides take a bit longer to appear. When the player looks into another direction, the direction changes and thus the new visible chunks get loaded first. Only if all chunks ahead of the player are loaded, chunks around the player are sent. This all can be configured using a simple minimum and maximum sending rate. It also adds a dynamic view distance, combined with lazy chunk loading to reduce the amount of chunks loaded at once when players move. This can reduce tick lag a lot.
Examining the server tick rate
If you encounter very low tick rates and you want to find out what plugin is causing it, you can use the examine component to find it out. It comes with a graphic viewer, which makes bug tracking the easiest thing ever.
Prevent cross-thread access for events
As it seems, some plugins don't follow the rules and use Bukkit methods in another thread. This plugin will notify you whenever this happens so other plugins understand their mistake. If you encounter a lot of spam in the console, first check the stack trace for the plugin that caused the error. Report this error to the author or remove the plugin, if you have questions you are free to ask. Note: Bukkit add isSynchronous() to the event. A lot of plugins are, however, uninformed about this property. Until it is well-known, this feature will be in NoLagg.
Links
Development builds
Facts
- Date created
- Sep 19, 2011
- Categories
- Last update
- May 12, 2013
- Development stage
- Release
- Language
- enUS
- License
- GNU General Public License version 3 (GPLv3)
- Curse link
- NoLagg
- Downloads
- 635,365
- Recent files





- Reply
- #2850
bergerkiller May 21, 2013 at 08:58 UTC - 0 likes@Chrispm84: Go The latest version of NoLagg found on the CI build server now shows, for all events, the amount of times the event was cancelled + the amount of times it was executed. Just go through all your plugins and check how often the event is cancelled. You can use event view to make this process easier, and look at the ChunkUnloadEvent.
- Reply
- #2849
bergerkiller May 21, 2013 at 06:37 UTC - 0 likes@UnDrac: Go I doubt that is caused by NoLagg, if you are using Spigot or CraftBukkit or Libigot, then that could be the problem. They do in fact alter the entity view distances and do alter chunk unloading (garbage collecting) behaviour. Like Chrispm said: try to figure out what plugin or server software is causing it by adding plugins one by one (or in groups) until the issue re-occurs.
I am not experiencing the issues on my simple test server, chunks unload just fine, so it is most certainly a plugin conflict or plugin bug. I will consider adding a chunk unload monitor so you can keep track what plugins cancel what chunk unloads.
- Reply
- #2848
Chrispm84 May 19, 2013 at 22:34 UTC - 0 likes@bergerkiller:
I've done some more testing on the chunks not unloading issue. I have a local test server on my home PC. So, I pulled all the plugins/configs/etc. from my server and made sure my test server was identical to the actual server. The only thing that's NOT identical is the OS. On my test server I could NOT reproduce the problem. Chunks seem to unload fine on the test server.
I'll be trying to find the cause of this issue over the next few days. If I find the cause, I'll let you know what it was.
- Reply
- #2847
Patryk122PL May 19, 2013 at 15:16 UTC - 0 likes@UnDrac: Go I noticed that Minebackup cause problem with unloading chunks from memory with Nolagg plugin installed, so check if you have it.
@bergerkiller: Go Thanks. Now it works! :)
- Reply
- #2846
UnDrac May 19, 2013 at 14:47 UTC - 0 likesI noticed a problem, but I can't tell if it's from NoLagg or some of the other plugins we have installed, but Chunks don't seem to unload, at all.
It doesn't matter what we set in the config or in the Server's config, chunks just don't get unloaded, and monsters seem to stop spawning while the server is up and they spawn only during a server restart, and that's not all, hostile mobs are supposed to go Idle after a certain distance from the player and disappear if they are 128 blocks away from any player, however I still see hostile mobs that I trapped on a chunk even after going a few thousand blocks away.
- Reply
- #2845
mc_RROD May 19, 2013 at 09:34 UTC - 1 likeThat banner at the top of the page looks like one of those ads where I've apparently just won a car T_T
BFAK:90569703,0f218c405a54b7c6750c70026e8e023297f5263224027afc5031fc1b13f5d833
- Reply
- #2844
craftik7 May 19, 2013 at 08:25 UTC - 0 likes@PocK123: Go
No shit Sherlock.
OldDays | Nordic Reloaded | ChatControl | AntiGive | RemoteChunkDeleter
- Reply
- #2843
PocK123 May 19, 2013 at 07:13 UTC - 0 likesWorks on 1.5.2?
- Reply
- #2842
bergerkiller May 18, 2013 at 17:42 UTC - 0 likes@Patryk122PL: Go I think you are right, I'll have to look into that. I suspect that the tnt explosion event is broken in Bukkit...
EDIT
Fixed in latest dev build.
@rfsantos1996: Go The 1-interval task takes over the previous chunk sending logic of the server, as a result it inherits some of the processing time from there. The average shown (0.6133 ms) is not high at all, but I do notice that it occasionally exceeds 50ms in one tick. In case you have a very high chunk sending rate set in the config.yml, lower it. I'll improve nolagg examine a bit in the next version so that it shows all the separate operations properly.
- Reply
- #2841
Patryk122PL May 17, 2013 at 13:08 UTC - 0 likesTNT limiter doesn't seem to work. I tested it out and changing detonation interval or rate does no effect at all. Still all tnt are detonated almost together. So is this broken or disabled or I can't configure it properly? My config file. I think this should trigger 5 nearby tnt per 7 seconds but all I get is 20 tnt after 1 sec, 300 after another sec and so on which of course cause serious server lag (5000 tnt test). I'm using this nolagg ver and this BKCommonLib on bukkit 1.5.2-R0.1 beta build.