
Afterburner: FPS & Server Optimization
FPS, lag and chunk generation optimization for Fabric, Forge and NeoForge: batched chunk rendering, occlusion culling, parallel world generation, faster server ticks, lighting and memory. Every part can be switched off.
Compatibility
Minecraft: Java Edition
Platforms
Supported environments
Links
Tags
Creators
Details
Afterburner makes Minecraft run faster without changing how the game looks or plays. It works on a client, on a server, or both: the rendering and memory parts are for players, the world, mob and server parts do their work on the server alone (players don't need the mod there). Every optimization has its own switch in Options > Video Settings > Afterburner (or config/afterburner.properties), and when a mod that does the same job is installed, Afterburner leaves that part to it.
What it improves
Rendering (FPS)
- Batched chunk drawing: each 128x64x128 block region is drawn with one call instead of one call per chunk section.
- Smaller chunk vertices: 16 bytes per vertex instead of 28, so the graphics card reads less for every block face. Chunks also take less graphics memory.
- Occlusion culling: chunks hidden behind nearer terrain (hills, caves, walls) aren't drawn. Works on OpenGL and Vulkan.
- Entity culling: mobs, chests, signs and other entities hidden behind terrain aren't drawn.
- Face culling: block faces that point away from the camera are skipped.
- Translucent face culling: the same for water, glass and ice.
- Leaf culling: faces deep inside a tree's leaves, which the leaves in front hide, are skipped.
- Faster draw prep: skips the per-frame work for chunk layers that have nothing to draw.
- Off-screen chunk building: chunks around you get built while the builders have time, not only once you look at them, so turning around shows fewer holes.
- Cheaper texture filtering: smooth filtering reads each texture 4 times per pixel instead of 8 or 9. The picture stays the same.
Memory
- Smaller chunk buffers: GPU memory for chunks grows as needed instead of being reserved 128 MB at a time. On laptops with built-in graphics, that memory is your normal RAM.
- Freed build copies: chunks let go of the copy of the blocks they were built from. Vanilla keeps one per chunk.
- Memory trim: while the game is paused or in the background, Java gives unused memory back to the system.
- Leaner chunk sections, shared block shapes, leaner block states: less memory for every block and biome container.
World and server
- Parallel world generation: trees, ores and structures are placed on every CPU core instead of one. If a generation step ever fails, Afterburner goes back to one thread for the rest of that run.
- Faster lighting: light updates remember the sections they're working in instead of looking them up for every block. It uses the same algorithm as vanilla, so the result is the same.
- Faster collisions, entity searches, mob AI, explosions, redstone dust and spawning: less work per block, per search and per mob.
- Sleeping idle furnaces and campfires, and scheduled ticks parked where nothing is happening.
Forge and NeoForge only (server side)
- Hoppers: a hopper that has nothing to do goes to sleep until something changes (and wakes now and then to double-check), and hoppers remember the container next to them. In our NeoForge test, 1,800 stuck hoppers cost 16-18 ms a tick without Afterburner and 0.2 ms with it, and every container read the same.
- Faster water and lava flow, pathfinding, entity tracking, item merging, and finding structures off the main thread.
- Cheaper network work: chunk packets are shared between the players who get them, packed once, and packed at a lighter zlib level.
Other
- Lower worker priority: background workers run just below normal priority, so frames come first when every core is busy.
- Accurate ping and Clicks at Once (26.3): a player's ping is measured when the reply arrives, not when the busy main thread gets to it; an attack or placed block is sent the moment it is pressed.
Slow connections (Minecraft 26.3)
For a player with very little bandwidth, on a Forge 26.3 server:
/afterburner slow <player>(op) gives a listed player a smaller view distance and the strongest packing. A player whose connection stays backed up gets it on their own./afterburner net(op) shows what the server sends each player, by kind of packet.- Smaller chunks from Afterburner servers (Fabric 26.3 client, in the settings, off by default): chunks arrive packed with LZMA2, without their light (the game works it out), and as a 16-byte reference when you kept the chunk on your disk from last time. In our tests: about a third fewer bytes for chunks seen the first time, two thirds to four fifths fewer when you've seen them before. Other servers are not affected, and ViaProxy passes it through.
Settings by dimension (Forge 26.3 server, off until you switch it on)
config/afterburner-dimensions.properties sets things separately for the Overworld, the Nether, the End and any other dimension:
- Dropped items (
dimensionItemsswitch): how long an item lasts, how close items must be to merge, and how many item entities one chunk may hold (past it the oldest go). The file starts the Nether and the End at half the item lifetime and a wider merge range, and leaves the Overworld as in vanilla. Item farms that leave items lying around may want longer lifetimes or no limit. - Slower AI for far mobs (
farMobAiswitch): how far from a player mobs start thinking less often, per dimension.
Experimental (off until you switch it on)
A shader pack loader, FSR-style upscaling and far terrain (land past the render distance, drawn from chunks the game has seen) come with the mod (Minecraft 26.3, and 1.21.1 on Forge, NeoForge and Fabric). They do nothing until you choose them, far terrain starts off, and they turn themselves off with Sodium or Embeddium, Iris or Oculus, Voxy or Distant Horizons. Expect rough edges and tell us what you see.
Versions
The list of optimizations differs between versions: Minecraft 26.3 has the most. See the files' notes, or Features.java in the source.
| Minecraft | Fabric | Forge | NeoForge |
|---|---|---|---|
| 26.3 | yes | yes | |
| 26.2, 26.1.2 | yes (beta) | ||
| 1.21.11 | yes | ||
| 1.21.10, 1.21.8, 1.21.5, 1.21.4, 1.21.3 | yes (beta) | ||
| 1.21.1 | yes (beta) | yes | yes (beta) |
Fabric needs Fabric API. The Minecraft 26.x builds need Java 25; the 1.21.x builds Java 21.
Compatible with
Afterburner is built to leave a part to the mod that does the same job: Sodium and Embeddium (rendering), Lithium and Radium (game logic), FerriteCore and ModernFix (memory), Starlight, C2ME (chunk system), Iris and Oculus (shaders). The overlapping part is simply off while the other mod is there. We have not tried every combination, so tell us if one misbehaves.
Notes
Made with a lot of help from AI (Claude). Claude went through Minecraft's code with me to list what could be made faster, and wrote the shaders and the code comments. The rendering part (chunk batching, compact vertices, face culling) was also done with AI.
Credits and licenses: MIT. Sodium, Lithium, FerriteCore and Iris are credited for the designs this follows (no code of theirs is used); AMD's FidelityFX Super Resolution 1 (MIT) for the upscaling. The full notices are in THIRD_PARTY_NOTICES.md inside every jar.

