An experiment at improving the performance of PaperMC.
This project uses ASM and the attach api to modify Paper classes as they are defined. Because of this paperbin can even be run on top of other paperforks!
Make sure you have read the License. Then download paperbin and run the following command using a version 8 JVM, ideally either hotspot, openjdk or graal:
java [any jvm arguments] -noverify -jar PaperBin.jar ActualPaper.jar [any paper arguments]
paperbin did lots of impovements to my server i can f***ing handle 15k entities in 4 chunks without tps drop
(Kaspian#8508)
thanks for making such a helpful server tool
(Gav#7669)
This plugin is currently active on oldfag.org
, feel free to connect and test it out, there are no rules.
- Multithreaded mob ai goal calculation
- Anti Chunk Ban
- Anti Crasher (book exploit)
- Anti Dupe (portal entity exploit)
- Anti Elytra Fly (infinite durability exploit)
- Anti Grief (various exploits to break end portals)
- Anti Nether Roof (prevent people glitching above/below bedrock or outside the world border)
- Anti Portal God Mode (exploit allowing invincibility after travelling through a portal)
- Anti Unicode Chat
- Block Tick Rate Limiter (limit the rate at which blocks are ticked)
- Chunk Loading Optimisations (remove some unecessary locks)
- Faster Game Rule Lookups (average O(1) vs original O(n))
- Mob AI Rate Limiting
- Optimised everyone sleeping checks
- Tps Compensation for events such as food/potion consumption, furnace/brewing progress etc
- Village rate limiter (rate limit the rate at which villages are updated)
Configuration is stored in paperbin.properties
, here is an example:
antiCrasher=true
chunkLoadOptimisations=true
antiPortalGodmode=true
villageRateLimit=true
antiNetherRoof=true
antiChunkBan=true
antiUnicodeChat=true
antiElytraFly=true
tpsCompensation=true
antiGrief=true
fastGameRule=true
packetOptimisations=true
blockRateLimit=true
debug=false
optimisedEveryoneSleeping=true
antiDupe=true
mobAiMultithreading=true
mobAiRateLimit=false
antiNewChunks=false
Thank you YourKit for supporting this project with their amazing profiler.
YourKit supports open source projects with innovative and intelligent tools for monitoring and profiling Java and .NET applications. YourKit is the creator of YourKit Java Profiler, YourKit .NET Profiler, and YourKit YouMonitor.