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:
| 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! |
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.
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.
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.
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!
Conversation