Mods
Resource Packs
Data Packs
Modpacks
Shaders
Plugins
Mods Resource Packs Data Packs Plugins Shaders Modpacks
Get Modrinth App Upgrade to Modrinth+
Sign in
ModsPluginsData PacksShadersResource PacksModpacks
Sign in
Settings
Asahi

Asahi

Remove jittering of the moving sun caused by client desync!

9,761
44
Utility

Compatibility

Minecraft: Java Edition

1.21.x
1.20.x
1.19.x
1.18.x
1.17.x
1.16.x
1.15.x
1.14.x

Platforms

Fabric

Supported environments

Client-side

90% of ad revenue goes to creators

Support creators and Modrinth ad-free with Modrinth+

Links

Report issues View source

Creators

hugeblank
hugeblank Owner

Details

Licensed MIT
Published last year
Updated 4 months ago
DescriptionGalleryChangelogVersions

Client side Minecraft mod that removes daylight cycle rubber-banding caused by server lag!

If you ask for forge I'll steal your kneecaps

The problem

Every second (20 ticks,) the server sends a packet that syncs the world time between the client and the server. Since clients have no reference for the tick rate of the server, they assume that the server is running at the standard 20 ticks per second. As such, when the server is lagging, that 20 ticks takes longer to process, leading the client to display the sun ahead of where it is on the server. When that sync packet comes in the vanilla client snaps the sun to the server position, causing the issue that this mod fixes.

The solution

A rolling weighted average, and some interpolation! First, we take samples of the last 10 seconds of the amount of ticks that passed on the server per tick on the client. Then, since the sample from 10 seconds ago isn't as relevant as the sample in the last second, we weigh each of them exponentially less compared to the first. Taking the average of this weighted list, we can effectively predict the movement of the sun over the next second. The margin of error in the suns position caused by the prediction varies, but it is imperceptbile in comparison to the snap-back that happens with the vanilla logic.

Without Asahi:

Daylight cycle without Asahi

With Asahi:

Daylight cycle with Asahi

Please note that this gif is from an earlier version of the mod, the interpolation used has only gotten better since!

Circular Sun is part of a resource pack provided by vanillatweaks.net

Config

{
  // If the time received by the server is `skipDuration` or more seconds from the client time,
  // skip to the server's time, bypassing interpolation. 
  // Play around with this value if the daylight cycle is absurdly fast.
  "skipDuration": 60,
  // Amount of prior factors to use in the rolling average interpolation. 
  // Play around with this value if you notice the sun bouncing back and forth a lot without settling into position.
  "interpolateSamples": 10,
  // Initial daylight cycle tick per game tick. 
  // Increase/decrease this value if another mod is present that speeds up/slows down the daylight cycle  
  "initialFactor": 1.0,
  // The standard tick rate with relation to the resolution of the daylight cycle. 
  // Change if playing with mods that increase/decrease the standard tick rate OR the resolution of a daylight cycle (24000 ticks).
  // Note that to my knowledge there are no mods that do this.
  "standardTickRate": 20
}

Modrinth is open source.

new-orgs-page@a27b5f4

© Rinth, Inc.

Company

TermsPrivacyRulesCareers

Resources

SupportBlogDocsStatus

Interact

Discord X (Twitter) Mastodon Crowdin
Get Modrinth App Settings
NOT AN OFFICIAL MINECRAFT SERVICE. NOT APPROVED BY OR ASSOCIATED WITH MOJANG OR MICROSOFT.