
Fluidlogged API
A library mod that adds highly customizable fluidlogging to 1.12.2!
Обновлён 7 июня 2026 г. · опубликован 9 июня 2023 г.
A library mod that adds highly customizable fluidlogging to 1.12.2!
Fluidlogging is a mechanic that's inspired by Vanilla's Waterlogging mechanic, and that functions very similarly. The main difference is that Fluidlogged API has support for non-source fluids and all modded fluids!

If you're a modpack developer wanting to add Fluidlogged API to a modpack distributed outside of CurseForge or Modrinth, use File Director to avoid reuploading Fluidlogged API's files.
Any blocks can be made fluidloggable or non-fluidloggable through Fluidlogged API's configs, however it does make certain types of blocks fluidloggable by default. Any properly coded modded variants of these blocks are supported by default. Mods may also add fluidloggable blocks from their end. To see the full list of fluidloggable blocks, run the /fluidlogged_api print command in-game to create text files containing all active fluidlogging information.
Along with this, Fluidlogged API will download and apply community configs! This is to minimize the amount of work that players must do to have complete fluidlogging across mods, but this behavior can be fully disabled in fluidlogged_api/general.cfg if desired.
Fluidlogged API also heavily improves fluid collision accuracy, and fixes various Vanilla and modded fluid-related issues. Some Vanilla bug fixes include:
- MC-2591 Walking over the corner of lava deals damage
- MC-4533 Water graphical glitch when connecting diagonally
- MC-68129 Smooth lighting doesn't work properly underwater
- MC-100886 Falling sand with ID of water or lava does not render
- MC-125771 Block selection not showing up underwater
- MC-127030 Flowing water attempts to connect to waterlogged blocks when it shouldn't
- MC-127108 Waterlogged blocks turn lava into obsidian or cobblestone on physically unconnected sides
- MC-127270 Visual water level inside waterlogged blocks does not adjust correctly
- MC-227302 Smooth lighting doesn't work properly on the water surface
| Known Incompatibilities | Known Solutions |
|---|---|
| Better Water Mesh | None. |
| Corail Tombstone | Use Corail Tombstone v4.6.0 or later! |
| Oceanic Expanse | Use Oceanic Expanse v1.2.0 or later! |
| Phosphor | Use Alfheim or 燐/Hesperus instead! |
| The Aether II | Phosphor comes bundled with The Aether II. Luckily there exists The Aether II: Phosphor Not Included, which does as the name suggests! |
| Vintagium | Use Celeritas instead! |
Q / A:
How does this mod work?
Reading through the source code would be the best way of truly understanding the inner workings of this mod, but I'll describe a simplified version here:
For each block in the world, Vanilla has two features that get stored in each chunk: a required IBlockState and an optional TileEntity. Fluidlogged API adds a third feature that gets stored in each chunk: an optional FluidState, which stores the fluidlogged fluid if present.
This mod applies ASM (a bytecode manipulation library that's bundled with Forge) to allow Vanilla and Forge to properly read and make use of FluidStates.
Is this mod safe to add to existing worlds?
It's generally a good idea to always back up your worlds before adding any new mods. That being said, this mod doesn't change the behavior of IBlockStates, so adding it to existing worlds should be fine! Removing this mod from existing worlds should also be fine, just note that existing FluidStates will be removed and won't be recoverable upon doing so.
How do I use this mod's configs? How do I use this mod as a dependency?
This mod's wiki will eventually cover both of those topics, for now it only covers how to use this mod's config. If you want to use Fluidlogged API as a library (optional or required dependency), the best I can do until I finish the wiki is reference you to the source code of these other projects of mine: Campfire, Seared Ladder Backport, Subaquatic.
What should I do if I run into any bugs, crashes, or mod incompatibilities?
Reporting anything you find to this mod's issue tracker would greatly help me improve this mod! Without people generously taking the time to do so, this mod would not be where it is today!
If you want fluidlogging for versions beyond 1.12.2, check out Fluidlogged (not affiliated with Fluidlogged API) and Towelette!
Direct contact: jbred.dev@gmail.com
This mod will not be ported.
Версии
| Версия | Канал | Игра | Загрузчики | Дата | Скачать |
|---|---|---|---|---|---|
| 3.3.2 | Релиз | 1.12.2 | forge | 7 июня 2026 г. | .jar (783 КБ) |
| 3.3.1 | Релиз | 1.12.2 | forge | 23 мая 2026 г. | .jar (783 КБ) |
| 3.3.0 | Релиз | 1.12.2 | forge | 22 мая 2026 г. | .jar (781 КБ) |
| 3.2.0 | Релиз | 1.12.2 | forge | 5 февраля 2026 г. | .jar (764 КБ) |
| 3.1.3 | Релиз | 1.12.2 | forge | 4 января 2026 г. | .jar (757 КБ) |
| 3.1.2 | Релиз | 1.12.2 | forge | 12 ноября 2025 г. | .jar (753 КБ) |
| 3.1.1 | Релиз | 1.12.2 | forge | 1 октября 2025 г. | .jar (752 КБ) |
| 3.1.0 | Релиз | 1.12.2 | forge | 19 сентября 2025 г. | .jar (751 КБ) |
| 3.0.6 | Релиз | 1.12.2 | forge | 7 апреля 2025 г. | .jar (724 КБ) |
| 3.0.5 | Релиз | 1.12.2 | forge | 27 марта 2025 г. | .jar (724 КБ) |
| 3.0.4 | Релиз | 1.12.2 | forge | 8 марта 2025 г. | .jar (717 КБ) |
| 3.0.3 | Релиз | 1.12.2 | forge | 6 марта 2025 г. | .jar (715 КБ) |
| 3.0.2 | Релиз | 1.12.2 | forge | 6 марта 2025 г. | .jar (715 КБ) |
| 3.0.1 | Релиз | 1.12.2 | forge | 5 марта 2025 г. | .jar (715 КБ) |
| 3.0.0 | Релиз | 1.12.2 | forge | 4 марта 2025 г. | .jar (715 КБ) |
Показаны последние 15 из 19 версий. Все версии — на Modrinth.
Ченджлог
3.3.2Релиз1.12.2 · 7 июня 2026 г.
Bug Fixes:
- Fix occasional visual flickering while moving underwater (fixes #299).
- Make it harder for the player to clip their camera into water without applying the correct fog or overlay.
3.3.1Релиз1.12.2 · 23 мая 2026 г.
Bug Fixes:
- Fix crash during mod load if Dynamic Surroundings is not installed (fixes #297) (this bug only affected v3.3.0 of Fluidlogged API).
3.3.0Релиз1.12.2 · 22 мая 2026 г.
Features:
- Improve water particle water collision detection:
- Accounts for fluid height.
- Allows water particles to survive in any blocks that can create them (entities swimming in blocks that return true for
isAABBInsideMaterial, but aren't a fluid, for example).
- New config setting that allows FluidState redstone behavior to be disabled.
Bug Fixes:
- Block material entity acceleration now only caches chunks as-needed (probably fixes #290).
- Fix a couple very rare crashes related to fluid entity collision.
- Fix a crash that would happen if a mod attempted to render a fluid block without a world loaded.
- Fix a possible crash related to
MutableBlockPosmulti-threading (probably fixes the 1st half of #289). - Fix fluid collision not working at all for very small fluid heights.
- Much better fix for MC-2591 (it actually works now).
- Rewrite the FluidState redstone logic implementation. This fixes many (maybe all?) modded redstone-related conflicts!
Compatibility Fixes:
- Cleanroom Mod Loader:
- Fix a strange crash with Cleanroom on mobile (fixes #292).
- Should no longer require the Fugue mod for Fluidlogged API to run.
- Dynamic Surroundings:
- Account for FluidStates when checking fluid color for the position.
- Add FluidState support for Dynamic Surroundings' underwater breathing effect.
- Fluid drop particles no longer phase through FluidStates.
- Now plays all ambient/random block effects for FluidStates!
- Rain drop particles no longer phase through FluidStates.
- Rain drop particles now create water ripples on FluidStates.
- Steam jet effect now accounts for FluidStates when counting the amount of surrounding "hot" blocks.
- Water splash jet effect is now FluidState-sensitive.
- Galacticraft:
- Fix a crash when fire checks whether certain Galacticraft fluids are flammable (fixes #291).
- Make Galacticraft's fluid drip particle account for FluidStates during its collision check.
- Immersive Engineering:
- Wires (and other IE-like wires from other addons like Industrial Wires) now correctly trigger electrocuted damage + knockback with this mod installed (fixes #286).
- NuclearCraft:
- Make all NuclearCraft source gas fluid blocks only vaporize their FluidState while fluidlogged instead of the whole block (fixes 2nd half of #289).
- OreLib:
- Allow OreLib's
IBlockAccessExclass to read FluidStates. This fix was originally part of my Subaquatic mod, but I'm moving it so it can be updated here as necessary.
- Allow OreLib's
- Tropicraft:
- Allow Tropicraft's fish hook entity to account for FluidStates when deciding which blocks to play splash effects for.
API Changes:
- Blocks without a material of lava are automatically marked as entity flammable if they return true for
Block.isAABBInsideMaterial(world, pos, aabb, Material.LAVA). - Buckets now correctly pass the player into
FluidUtil.tryPlaceFluid. This fixes a very minor unintentional code behavioral difference between forge and this mod. - Fix a bad return value in
PluginWorld.Hooks.setBlockToAir(client now returns true if a fluid is at the position instead of false). This makes the client & server return the same value. - New
api.world.ICubeDatainterface:- Represents a 16x16x16 section of block data, without a reliance on using Chunks.
- New
FluidloggedUtilsmethods that acceptICubeDatainstead of a chunk. The old chunk-based methods still exist for backwards compatibility.
- New
api.world.ICubeDataProviderinterface:- Allows custom
IBlockAccessimplementations to supplyICubeData.
- Allows custom
- New
api.world.IFluidEventListenerinterface:- Allows code to be executed when a FluidState changes somewhere in the world.
- This is intended to be used the same way as
IWorldEventListener.notifyBlockUpdate. IFluidloggable.onFluidChange,Block.onBlockAdded, andBlock.neighborChangedshould still be enough for most cases.
3.2.0Релиз1.12.2 · 5 февраля 2026 г.
Features:
- Add Modrinth
updateJSONurl. - Minor performance improvements.
Bug Fixes:
- Fix concurrency issue with
FluidFlowHandler::getFlowVec(fixes #275 and #283). - Fix crash with Java 9+ (fixes #284) (this bug only affected v3.1.3 of Fluidlogged API).
- Fix minor inconsistency with normal fluid flow logic.
Compatibility Fixes:
- Gauges and Switches:
- Fix blocks not emitting a redstone signal (fixes #282).
- Schematica:
- Fix crash when rendering schematica with fluids (fixes #279).
API Changes:
- New method:
...api.util.IFluidloggable.canFluidConnect(IBlockAccess, BlockPos, IBlockState, EnumFacing). - New method:
...api.util.FluidloggedUtils.canFluidConnect(IBlockAccess, BlockPos, IBlockState, EnumFacing). - Restore
FluidloggedUtilsmethods that were accidentally removed in v3.0.0.
3.1.3Релиз1.12.2 · 4 января 2026 г.
Bug Fixes:
- Fix bugs if certain transformers are run twice, by resetting asm plugin search index ints before running them.
- Fixes FutureMC scaffolding asm conflict (fixes #273).
- Fixes possible weird fluid rendering when "fancy fluid rendering" is disabled.
- Fix concurrency issue with
FluidState::withLevel(fixes #274). - Fix "fluidlogged_api is missing the required element 'version' and a version.properties file could not be found" console error.
Compatibility Fixes:
3.1.2Релиз1.12.2 · 12 ноября 2025 г.
Bug Fixes:
3.1.1Релиз1.12.2 · 1 октября 2025 г.
Compatibility Fixes:
- Astral Sorcery:
- Crystal cluster creation now accounts for FluidStates (only if the block there is replaceable).
- Fix crystal tool item entity crash (#266).
- Liquid Starlight now uses this mod's fluid collision system, fixing some bugs.
3.1.0Релиз1.12.2 · 19 сентября 2025 г.
Features:
- Fluidlogged API's config gui is now translucent while in a world. This will probably be added to all of my other mods as well!
Bug Fixes:
- Fix a possible crash (#243 (comment) & #257).
- Fix a possible
FluidState.withLevelcrash (#252). - Fix fluid collision for "pseudo-fluid" blocks (#258).
- Redownload community configs if the internal versions.jsonc file got corrupted. This fixes a possible crash.
- Server-side fluidlogging configs are now always sent to connected players.
- While "nonSourceFluidlogging" was disabled, source fluid blocks could be created with non-source fluid blocks, by flowing into a fluidloggable block with other non-source fluids on two different sides. Now adjacent source blocks are required for this behavior once again, like in v2.x.x (#249).
Compatibility Fixes:
- Chisels and Bits:
- Allow chiseled bits to be placed inside replaceable blocks.
- Fix chiseled blocks voiding fluids on placement.
- Fix fluid collision for chiseled blocks (#248).
- Galacticraft:
- Fix crash with old Galacticraft (non-legacy) versions (#255).
- Industrial Foregoing:
- Fluidlogged pink slime fluid no longer removes the block when spawning a pink slime entity (it only removes the fluid now).
- The fluid pump now (actually) accounts for FluidStates.
- The resource fisher now accounts for FluidStates.
- The water collector now accounts for FluidStates.
- Optifine:
- PneumaticCraft:
- Allow Empty PCBs to be filled using FluidStates.
- Random Things:
- Fix wireless redstone (#253).
- Ruins:
- Forcibly prevent Ruins structures from being able to contain old FluidStates (#254).
- Thermal Expansion:
- The Aquatic Entangler now accounts for FluidStates.
- The Aqueous Accumulator now accounts for FluidStates.
API Changes:
...mod.common.message.SMessageSyncRuntimeConfigshas been renamed to...mod.common.message.SMessageSyncConfigs. This is an internal class, so it shouldn't affect any mods.- New interface:
...api.message.IServerMessageHandler. Functions as a server-side counterpart toIClientMessageHandler. - New method:
...api.message.IClientMessageHandler.isCtxValid(REQ, MessageContext). - New method:
...api.message.MessageUtils.readJson(ByteBuf). Utility method that reads a JsonElement with UTF8 byte encoding from the buffer. - New method:
...api.message.MessageUtils.writeJson(ByteBuf, JsonElement). Utility method that writes a JsonElement with UTF8 byte encoding to the buffer. - New method:
...api.util.FluidloggedUtils.positionDripParticle(World, BlockPos, FluidState). Utility method that returns the position to spawn a drip particle, or empty if one cannot be spawned. - Split
ToFluidloggedDataFixerfunctionality from the legacy data fixer. This change allows for separate versioning between them, and allows other mods besides Fluidlogged API to increment theToFluidloggedDataFixerversion (other mods increment it automatically when adding a newIFluidloggedDataMapper).
Полная история изменений — на Modrinth.
Комментарии
Загружаем…






