Links
Tags
Creators
Details
0.3.0+26.3
Compatibility
Changes
Afterburner 0.3.0 (Forge 26.3)
Forge 26.3 catches up with Fabric: the work of Fabric 0.2.10 and 0.3.0 is in this build. World generation fills in new land with less CPU, redstone dust remembers its power, TNT looks block shapes up once per explosion, light work and multiplayer packets cost less, chunks are meshed from one block array, mobs and items are drawn with bulk vertex writes, mobs skip repeated checks, and collisions with full blocks and slabs need no shape objects. Each of these was compared with vanilla and gave identical results before it was switched on. New options still being tried are off by default.
Fixes
- No more crash with Opal installed.
- On PCs under 6 GB, worlds load as fast as in vanilla again: the smaller memory headroom now only starts once you are playing.
- Items dropped in lava burn again; tall mobs notice lava and cobwebs at head height again.
- Each world opened in single player is no longer kept in memory after
/locatewas used in it. - World generation makes far less garbage for the bedrock and deepslate layers (same blocks).
New, on by default (each can be switched off in the settings)
- Block Array Per Chunk Build: Building a chunk reads the block next to every face and around every smooth-lit corner; the blocks of the chunk and the ring around it are now read out once and looked up from an array. Same chunks as vanilla, about a tenth less building time in an offline test.
- Block Updates Reuse One Position: A changed block tells its six neighbours, and each told block got its own new position object even when it does nothing with it. Now blocks that ignore the news share one. Same updates in the same order.
- Bulk Vertex Writes: Mobs, players, armour and items are drawn from boxes and quads made of many vertices. Now each is stored into the vertex buffer in one go instead of vertex by vertex. The same picture, less work for the render thread.
- Cached Biome Zoom: Which biome a block is in is found from the eight quart corners around it, each nudged by a pseudo-random number. The surface layer of new land worked those numbers out again for every column. Now each corner is worked out once per chunk. Same biomes as vanilla.
- Cached Registry Sync On Join: The registries and tags sent to a player who joins are built once and reused for the next players, until a reload or any change of tags or registries. The packets are the same as the game would build.
- Cap on Eager Chunk Saves: While the server is running late, at most two changed chunks are saved per tick instead of up to twenty; the rest wait. Fewer long ticks; nothing is lost.
- Cheaper Light Queue: The light thread keeps its task list with less copying and fewer objects, and tells the main thread about changed light in one message per round. The light and the packets come out the same as vanilla.
- Cheaper Mob Checks: Mobs in a crowd, and mobs near walls, repeat three small checks every tick (is my block a ladder, is my head in a wall, who can I push). They now keep or skip the repeated work. Same results as vanilla.
- Cheaper Precipitation: The random freezing and snow tries in each chunk stop early when it is not raining and the top block is not water. Same results as vanilla.
- Cheaper Region Compression: Chunks are saved with lighter compression, which costs the saving thread less CPU but makes the world files bigger. Any other tool or game version reads them.
- Collisions Without Shape Objects: When something moves, the game made a new shape object for every block it might touch and clipped the move against each. Now the common block shapes (full blocks, slabs, farmland, paths) are clipped straight from their numbers; stairs, fences and the rest are clipped as before. Same results as vanilla, to the last digit.
- Compact Scheduled Ticks: Water, lava, redstone and other scheduled block ticks are kept in each chunk in one array instead of a hash set and a queue of objects, and checking for a scheduled tick makes no garbage. Same ticks in the same order as vanilla.
- Comparators Read Once: A comparator told of a change read the container or item frame it measures twice, and a chest is counted slot by slot each time. Now it is read once. Same decision, about a third quicker per comparator; it shows in worlds with many comparators.
- Containers Skip Empty Comparator Look-Around: A container whose contents changed looked at 8 blocks around it for comparators. Now it skips that when its chunk section has no comparator at all. Same updates; no quicker.
- Count Dropped Item Copies: Only counts and logs how many dropped item stacks are drawn and how many times their models are submitted. Changes nothing you see.
- Dust Memory Ignores Faraway Changes: The redstone dust memory used to drop an answer when any block changed in the same chunk sections. Now it drops it only when a block within 2 blocks of the dust changed. Same redstone as vanilla.
- Entity Shadow Cache: Entity shadows read the blocks under each entity again every frame. This keeps them while nothing around changes. Meant to be the same picture as vanilla, but not yet checked in a real game.
- Explosion Sound Cap: At most 8 explosion sounds a tick; the extra ones in a big chain reaction are not played. Particles and blocks are not affected.
- Faster Explosion Drops: The items an explosion's blocks drop are collected into stacks by kind instead of checking every stack so far for each drop. The same stacks in the same order.
- Faster Explosion Exposure: An explosion works out how much of each nearby entity it can see by sending rays through the blocks in between. This looks each block's shape up once instead of at every step of every ray. The same result.
- Faster Explosion Particles: Each explosion particle finds its explosion with a binary search instead of a walk through the list, which helps in chain reactions. The same particles appear.
- Faster Inventory Advancement Checks: Picking up or moving an item checks only the advancements that wait for that item, instead of every unfinished recipe unlock. Same advancements, same order as vanilla.
- Faster Terrain Fill: New land is filled in block by block, with a palette lookup and two height checks for every block. Now a run of the same block down a column is written in one go and the height checks that cannot change anything are left out. Same blocks, same heights, same saved files.
- Fewer Surface Rule Checks: The top layer of new land is chosen by a list of rules (bedrock, ore veins, grass and sand by biome, deepslate) that was asked about every stone block of every column. Now it is worked out from the list itself where each rule can possibly give a block, and a rule is left out at heights where it cannot. A list with a rule this does not know is used the vanilla way. Same blocks as vanilla.
- Kept Mob Count For Spawning: Every tick the game counts all mobs in the world, walking every entity there is, items and experience orbs too. Now it keeps a list of just the mobs and looks each chunk up once. Same counts as vanilla. No measurable gain. Needs Faster Mob Spawning.
- Lazy Nearby-Mob Sorting: A mob's list of living things nearby was sorted by distance at every scan, though most scans nothing reads the order. Now it is sorted when first read, from the distances at the scan. Same order as vanilla. No measurable gain.
- Less Garbage While Generating Land: Generating new land made many small short-lived objects, which the game then has to clean up in pauses. A few of the biggest sources now reuse what they need or skip making it. Fewer pauses while exploring, the same land.
- Light Read Once Per Chunk Build: While a chunk section is built, the light data of the sections around it is looked up once and the light of every block is read from that, instead of going through the light engine each time. Same light. Not yet checked in a real game.
- Mobs Remember Fluid Checks: A mob near water that is not in it looked at every block of its box for fluid each tick. Now it keeps the answer until the blocks around it change. Same results as vanilla.
- Move Model Corners Once: The boxes of mobs, players and armour have 8 corners, but the game moved each one three times. Now once. The same picture, but it measured no faster.
- No Needless Ticket and Clock Saves: The chunk ticket and world clock files are no longer rewritten at every autosave when nothing in them changed. The files are the same.
- Occlusion Culling With Shaders: Occlusion and entity culling also work while a shader pack is on, using the pack's own depth. Not yet checked on more setups. Hidden mobs still cast their shadows.
- Paced Light Updates: Light updates from the server are applied for about 2.5 ms a frame, the rest in the next frames, in order. Fewer stutters when many chunks arrive; the light is the same once they are done, but a chunk can look dark for a moment.
- Paced Server Packets: Packets from the server are handled for about 5 ms a frame, the rest in the next frames, in order. Fewer stutters after a lag spike; things in a backlog arrive a few frames later.
- Pack Packets Without a Copy: Packets are packed where they lie instead of being copied first. The bytes sent are the same; less garbage.
- Particle Quads Without Garbage: Particles are turned to face the camera with a few reused objects instead of five new ones per particle per frame. Same picture as vanilla, but not yet checked in a real game.
- Rain Column Cache: Rain and snow look up the ground height, the weather and the light of up to 441 columns around you every frame. This keeps the answers while nothing changes. Meant to be the same picture as vanilla, but not yet checked in a real game.
- Redstone Dust Remembers Its Power: Redstone dust worked out its power again for every neighbour update, mostly with nothing around it changed. Now it keeps the answer until a block in the chunk sections around it changes. Same redstone as vanilla.
- Redstone Dust Updates Without a Set: A wire whose power changed built a set of 7 positions to update its neighbours in the set's order. Now the same order is worked out without the set. Same updates, same order; no change in tick time.
- Remembered Text Layout: Text drawn from plain strings, such as the F3 screen and many HUD labels, keeps its laid-out letters from frame to frame instead of building them again each frame. Same picture. Not yet checked in a real game; chat, tooltips and names are not covered.
- Resting TNT Memory: A lit TNT lying still remembers how far it can move until something around it changes. It is not shown on a long run yet.
- Reused Region Compressor: Chunks saved to region files are compressed with one compressor per thread instead of a new one for every chunk. The saved bytes are the same as the game's own.
- Shared Entity Packet Compression: An entity packet sent to several players that is big enough to be packed is packed once and the same bytes are sent to each. Most entity packets are too small to be packed, so it rarely does anything.
- Shared Multi-Player Packets: Light, block entity and block update packets sent to several players are packed once and the same bytes go to each.
- Single Screen Clear: The screen is wiped once per frame in the world instead of twice. The picture is the same. Off while a shader pack is active.
- Skip Back Faces While Bobbing: Lets the skipping of back faces of entity models work while view bobbing moves your eye, judging by where the eye really is. Needs Skip Back Faces. Until it has been checked in a real client.
- Skip Chunks Hidden In Thick Fog: Chunk sections that lie wholly in fully opaque fog (in lava, powder snow, with blindness or darkness, in the Nether) are not drawn or built. They would show the fog colour anyway. Never with a shader pack. Not yet checked in a real game.
- Skip Re-Hashing Cached Server Packs: A server resource pack kept from an earlier join is not read through and hashed again when a small record next to it matches the file's size and modified time. A pack edited without changing its size and time would go unnoticed.
- Skip Repeated Light: Server: light that is byte for byte what a chunk last sent is left out of its light packets, so players get fewer light packets and their games rebuild fewer sections.
- Skip Repeated Light Rebuilds: When the server sends light for a chunk section that is exactly what the game already has, the section and its neighbours are not rebuilt. Not tried in a real game yet.
- Skip Saving Unchanged Player Files: Autosave no longer rewrites a player's statistics or advancements file when it would be exactly the same. The files are the same.
- Still World Behind Blurred Menus: While the pause menu or the options opened from it blur the background, the world is drawn once and kept, and drawn again once a second, instead of every frame. Much lighter on a weak graphics chip, but the world behind the blur stands still. Chat, the inventory and other screens that show the live world are not affected. Off while a shader pack is active.
- Walking Mobs Skip Block Effects: A mob that walks through empty surroundings no longer runs the step in which blocks act on it, until something around it changes. Same results as vanilla.
Everything else is as in 0.2.9.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:o0kOtaIS:xSkkM48c"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:o0kOtaIS:xSkkM48c"
}

