
FastPackLoad
Faster resource pack loading, and no more freeze when you join a server with a big pack. Client-side only, no Fabric API needed.
About this Mod
FastPackLoad
Vanilla does a lot of unnecessary resource pack work on the render thread. With a large
server pack that shows up as a multi-second freeze when you join or switch servers, sometimes
long enough for Windows to grey the window out as "not responding".
FastPackLoad removes most of that work.
What it changes
Pack discovery runs in parallel. Vanilla opens every pack and parses its metadata one at
a time, on the main thread, before the loading screen even appears.
Zip packs are indexed once. Vanilla walks the whole archive every time a reloader asks
about a resource folder, rebuilding and decoding every entry name on each pass.
Font work comes off the render thread. Glyph coverage is resolved across cores, and with
hundreds of fonts it is resolved by a different algorithm entirely. A warm-up loop that only
does anything for TrueType fonts is skipped when a pack has none.
Atlas mipmaps are generated across cores. Vanilla builds every sprite's mipmaps in a
single task on one worker, while the rest of the reload pool has nothing to do.
The loading screen stops waiting around. A finished reload still sits through a grace
period and a fade, up to three seconds of nothing. That one is a behaviour change, so it has
its own switch.
A vanilla race is fixed. The lazy ZipFile handle in the pack reader is unsynchronised,
even though a reload reads packs from several threads at once. That can leak a file handle
per race, or hand a reader an archive another thread just closed, which surfaces asIllegalStateException: zip file closed part-way through loading.
Measured
On a server whose pack ships 746 font providers:
| before | after | |
|---|---|---|
| Render thread frozen | 4384 ms | 448 ms |
| Full reload | ~7.2 s | ~3.7 s |
Your numbers will differ. Packs that are light on fonts have less to gain.
When it still freezes
A watchdog samples the render thread and, if frames stop arriving, logs the stack it is stuck
in, along with the package that stack points at. Every reload also logs a short summary of
what blocked and for how long, so a slow pack can be pointed at instead of guessed about.
Notes
Client-side only; nothing is required on the server. No Fabric API dependency. Every change
can be switched off individually in config/fastpackload.json if you need to rule something
out.
Available Versions
How to Install FastPackLoad on Your Client
Install the Mod Loader Locally
Install fabric for your local Minecraft version.
Download the Matching File
Choose the FastPackLoad file for fabric and Minecraft 26.2.
Install Mod
Place the .jar file in your local .minecraft/mods folder and restart Minecraft. No server-side installation is required.
Compatibility
Mod Loaders
Minecraft Versions
26.2, 26.1.2, 26.1.1 (+3 more)
Server-side
✗ UnsupportedRecommended RAM
4 GB(min. 3 GB)Frequently Asked Questions
Does FastPackLoad need to be installed on the Minecraft server?
No. Modrinth marks FastPackLoad as unsupported on the server side. Install it only in your local Minecraft mods folder. Your server can remain unchanged unless the mod page lists an additional dependency.
Which version and loader does FastPackLoad require?
Use a file for fabric and your exact Minecraft version. Supported versions include 26.2, 26.1.2, 26.1.1. Files for different loaders are not interchangeable.
FastPackLoad is not working – what should I check?
First check the Minecraft version, loader version and required dependencies. Put the .jar file in your local .minecraft/mods folder and remove older duplicates. Because this mod is client-side, adding server RAM will not fix it.
Similar Mods
Minecraft Server for Your Group
FastPackLoad stays on your client. Host a compatible world for your group.