
Offline Mode Fix
A Fabric mod that fixes chat lag spikes and UI warnings on offline-mode Minecraft servers
Offline Mode Fix
A lightweight, plug-and-play Fabric mod that fixes the random chat lag spikes, annoying UI warnings, and texture loading crashes when playing on offline-mode Minecraft servers.
Features
- Zero Chat Lag: Prevents the random network timeout lag spikes that trigger after periods of inactive chat on offline servers.
- Clean UI: Removes the ugly red/gray "Not Secure" sidebars from player messages, restoring the classic chat look.
- Player Head: Restores player head in Player Tab for offline server.
- No Annoying Toasts: Hides the "Unverified Server" popup that appears every time you join the world.
- No Texture Crashes: Stops the log spam and client crashes caused by strict signature validation on custom offline skins.
- Smart Premium Compatibility: Automatically detects if you are using a premium account and lets vanilla checks run normally. You can safely leave this mod installed when playing on premium servers like Hypixel.
Installation
- Install the Fabric Loader: https://fabricmc.net/
- Download the correct
.jarfor your Minecraft version from the releases page. - Drop the
.jarinto your.minecraft/modsfolder.
Building from Source
This project uses Stonecutter to seamlessly support multiple Minecraft versions from a single unified codebase. You will need Java 21+ and Git installed on your system.
-
Clone the repository:
git clone https://github.com/louiszn/offline-mode-fix cd offline-mode-fix -
Build the project using the Gradle wrapper. To compile all supported Minecraft versions at once, run:
-
Windows:
gradlew buildAndCollect -
Linux / macOS:
./gradlew buildAndCollect
-
-
Once the build process finishes, you will find the compiled
.jarfiles for every version cleanly organized in the/versions/xxx/build/libs/directory.
IDE Setup for Development (IntelliJ IDEA)
Because Stonecutter relies on dynamic comments to switch code between mapping versions:
- Install the Stonecutter Dev plugin by KikuGie from the IntelliJ Plugins Marketplace for proper syntax highlighting and error resolution.
- Open the Gradle tab, navigate to
Tasks -> stonecutter, and double-clickSet active project to xxxto swap your active workspace to a specific Minecraft update (e.g.,1.21.11).
How it works (Technical)
Offline-mode servers suffer from several distinct client-side issues introduced in different Minecraft updates:
- 1.16.4 (The Social Manager): Minecraft checks every incoming message against the
PlayerSocialManagerblocklist. In offline mode, looking up unauthenticated Version 3 UUIDs causes unnecessary synchronous network requests and processing delays. - 1.19+ (Chat Signing): Minecraft attempts to fetch and refresh cryptographic public keys from Mojang's API to verify chat signatures. On offline servers, these background refreshes fail, causing random lag spikes (often triggering after ~30 seconds of inactive chat) and forcing the game to flag all messages as "unsecure" (UI warnings).
- 1.20.2 (Authlib Strict Validation): The game enforces strict Base64 signature validation for player textures (skins/capes). Dummy signatures provided by offline skin plugins (like
BUILDER_APPALLED_PUMPKIN) instantly triggerIllegalArgumentExceptionlog spam and texture loading failures.
This mod uses surgical Mixins to:
- Detect offline (Version 3) UUIDs to instantly bypass the
isBlockedandisTextFilteringEnablednetwork checks. - Intercept the chat GUI renderer to hide the "Not Secure" tag.
- Block the specific "Unverified Server" toast from being added to the screen via the
ToastManager/ToastComponent. - Bypass
YggdrasilServicesKeyInfostrict Base64 property validation if a dummy signature is detected.
Contributing
Contributions are always welcome. If you have an idea for an improvement or find a bug, please open an issue first to discuss what you would like to change. Pull requests are greatly appreciated.
