From ba41c8b890159e32476df84d8b65f59a8e859add Mon Sep 17 00:00:00 2001 From: Biquaternions Date: Tue, 21 Jul 2026 23:45:40 -0500 Subject: [PATCH 1/3] Configurable TPS catchup --- .../sources/net/minecraft/server/MinecraftServer.java.patch | 2 +- .../io/papermc/paper/configuration/GlobalConfiguration.java | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/paper-server/patches/sources/net/minecraft/server/MinecraftServer.java.patch b/paper-server/patches/sources/net/minecraft/server/MinecraftServer.java.patch index 595172fa7bfd..f5233f3e5c44 100644 --- a/paper-server/patches/sources/net/minecraft/server/MinecraftServer.java.patch +++ b/paper-server/patches/sources/net/minecraft/server/MinecraftServer.java.patch @@ -824,7 +824,7 @@ + final long ticksBehind = Math.max(1L, this.tickSchedule.getPeriodsAhead(thisTickNanos, tickStart)); + final long catchup = (long)Math.max( + 1, -+ 5 //ConfigHolder.getConfig().tickLoop.catchupTicks.getOrDefault(MoonriseConfig.TickLoop.DEFAULT_CATCHUP_TICKS).intValue() ++ io.papermc.paper.configuration.GlobalConfiguration.get().misc.catchupTicks + ); + + // adjust ticksBehind so that it is not greater-than catchup diff --git a/paper-server/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/paper-server/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java index 232bc5e8b7cb..4ad992feb620 100644 --- a/paper-server/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/paper-server/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java @@ -319,6 +319,7 @@ private void postProcess() { } } public int maxJoinsPerTick = 5; + public int catchupTicks = 5; public boolean sendFullPosForItemEntities = false; public boolean loadPermissionsYmlBeforePlugins = true; @Constraints.Min(4) From 6d9c082e939c82267b6a1fffb01898dfa9174fd6 Mon Sep 17 00:00:00 2001 From: Biquaternions Date: Sat, 25 Jul 2026 10:19:09 -0500 Subject: [PATCH 2/3] Use IntOr.Default --- .../sources/net/minecraft/server/MinecraftServer.java.patch | 2 +- .../io/papermc/paper/configuration/GlobalConfiguration.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/paper-server/patches/sources/net/minecraft/server/MinecraftServer.java.patch b/paper-server/patches/sources/net/minecraft/server/MinecraftServer.java.patch index f5233f3e5c44..07b66846e9fb 100644 --- a/paper-server/patches/sources/net/minecraft/server/MinecraftServer.java.patch +++ b/paper-server/patches/sources/net/minecraft/server/MinecraftServer.java.patch @@ -824,7 +824,7 @@ + final long ticksBehind = Math.max(1L, this.tickSchedule.getPeriodsAhead(thisTickNanos, tickStart)); + final long catchup = (long)Math.max( + 1, -+ io.papermc.paper.configuration.GlobalConfiguration.get().misc.catchupTicks ++ io.papermc.paper.configuration.GlobalConfiguration.get().misc.catchupTicks.or(5) + ); + + // adjust ticksBehind so that it is not greater-than catchup diff --git a/paper-server/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/paper-server/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java index 4ad992feb620..64e97821c1e6 100644 --- a/paper-server/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/paper-server/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java @@ -319,7 +319,7 @@ private void postProcess() { } } public int maxJoinsPerTick = 5; - public int catchupTicks = 5; + public IntOr.Default catchupTicks = IntOr.Default.USE_DEFAULT; public boolean sendFullPosForItemEntities = false; public boolean loadPermissionsYmlBeforePlugins = true; @Constraints.Min(4) From 3a18d3aa687c235012d8befd9a602a6b7eb15875 Mon Sep 17 00:00:00 2001 From: Biquaternions Date: Sat, 25 Jul 2026 10:28:13 -0500 Subject: [PATCH 3/3] Add constraint to be min 0 --- .../java/io/papermc/paper/configuration/GlobalConfiguration.java | 1 + 1 file changed, 1 insertion(+) diff --git a/paper-server/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/paper-server/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java index 64e97821c1e6..936f8388c84b 100644 --- a/paper-server/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java +++ b/paper-server/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java @@ -319,6 +319,7 @@ private void postProcess() { } } public int maxJoinsPerTick = 5; + @Constraints.Min(0) public IntOr.Default catchupTicks = IntOr.Default.USE_DEFAULT; public boolean sendFullPosForItemEntities = false; public boolean loadPermissionsYmlBeforePlugins = true;