Liquid Lab

Liquid Lab

A fluid API to streamline the creation of custom fluids and gasses.

by
20 Downloads
fabriclibraryutility
Rent Server with this Mod

Screenshots

Example Use of API
Example Use of API

About this Mod

Description

Liquid Lab is a fluid API to streamline the creation of custom fluids, as most fluid attributes are hardcoded. Some features include setting fog color, custom mixing behavior, and the creation of gaseous fluids that flow upwards. This mod exists because fluids on fabric have limited functionality and it would be useful to have a way to create a high quality custom fluid.

Features

Base Fluid Changes

Lots of utility methods added to the base Fluid class

Fluid Mixing

  • Done through onFluidMix
  • Immediately called when your fluid touches another fluid
  • Params:
    • World the fluid is in
    • Block Positon of the calling fluid
    • Side the fluid was touched from
    • Fluid state that was interacted with

Entity Splashing

  • Done through onEntityEntry
  • Called when an entity first touches the fluid
  • Params:
    • World the entity is in
    • Entity that touched the fluid

Entity Interactions

  • Done through onEntityCollision
  • Called while an entity is within the fluid
  • Params:
    • World the entity is in
    • Block Position of the fluid
    • Entity that is within the fluid

Entity Viscosity

  • Done through getFluidMotion
  • Used for the fluid's push force and viscosity
  • Params:
    • World the entity is in
  • Returns:
    • XYZ velocity multiplier for an entity
    • Push force of the fluid
    • Movement speed for an entity actively moving

Item Viscosity

  • Done through getItemMotion
  • Used for an item entity's buoyancy and viscosity
  • Params:
    • World the entity is in
  • Returns:
    • XYZ velocity multiplier for an item
    • Maximum vertical velocity of an item
    • How fast an item rises in the fluid

Fog

  • Done through getFogProperties
  • Enables the fluid to have special fog
  • Params:
    • World the entity is in
    • Position of the cameara
    • Entity that is viewing the fog
  • Returns:
    • Fog start in blocks
    • Fog End in Blocks
    • RGB color of the fog

Rain Particles

  • Done through getRainParticle
  • Gives the fluid unique splash particles when rain falls onto it
  • Returns:
    • The particle to use when the fluid is rained on

Bucket Sounds

  • Done through getBucketEmptySound
  • Enables the fluid to not only have a custom filling sound, but also a custom emptying sound
  • Returns:
    • The sound to make when a bucket is emptied

Pathfinding

  • Done through canPathfindThrough
  • Allows a fluid to directly identify weather something should try to pathfind through it
  • Params:
    • The type of navigation an entity has
  • Returns:
    • If it is valid to pathfind through this fluid

Fluid Tags

7 fluid tags are added by the API:

  • liquid_lab:diveable
    • Defines that this fluid is swimmable and has sprint swimming
  • liquid_lab:swimmable
    • Defines if this fluid can be swum in
  • liquid_lab:drowns
    • Defines if this fluid will drown entities submerged within it
  • liquid_lab:evaporates
    • Defines if the fluid cannot be placed in the nether
  • liquid_lab:fall_damage_reducing
    • Makes the fluid affect fall damage the same way lava does
  • liquid_lab:fall_damage_resetting
    • Makes the fluid affect fall damage in the same way as water
  • liquid_lab:gaseous
    • Simply marks the fluid as a gas, does not have any other functionality

Gaseous Fluids

Additionally, the API also adds reversed fluids that flow upwards. Gas fluids are registered in the same way as regular fluids, except the block form is created with GasFluidBlock and the fluid form is created by extending FlowableGasFluid. To correctly render a gas fluid, use SimpleGasFluidRenderHandler, rather than SimpleFluidRenderHandler in your client initializer.

Utility

Some simple utility methods are added by the API to make registering certain aspects of fluids simpler.

Particle Utils

Contains methods related to registering block leak particles. The class allows for registering dripping, falling, and landing particles independently or all at once for fluids and gasses.

Available Versions

Liquid Lab 2.1.0release
MC 1.21.1fabric
May 23, 2026
Liquid Lab 2.0.0release
MC 1.21.1fabric
April 9, 2026

How to Install Liquid Lab on Your Server

1

Order Server

Order a Minecraft Java server with at least 3 GB RAM (4 GB recommended).

2

Set fabric Loader

In the panel under "Egg", select the fabric loader and matching Minecraft version (1.21.1).

3

Install Mod

Open the mod browser in the dashboard and search for "Liquid Lab". Click "Install" – done! Alternatively, upload the .jar via SFTP to the /mods folder.

Compatibility

Mod Loaders

fabric

Minecraft Versions

1.21.1

Server-side

Required

Recommended RAM

4 GB(min. 3 GB)

Frequently Asked Questions

Liquid Lab server crashes on startup – what to do?

Most common cause: wrong fabric version or insufficient RAM. Check the server log (latest.log) for "OutOfMemoryError" or "Mixin" errors. With Mado Hosting: ensure at least 3 GB RAM is allocated and the loader matches the mod version (1.21.1). You can switch loaders with one click in the panel.

Is Liquid Lab compatible with fabric?

Liquid Lab officially supports fabric for Minecraft 1.21.1. The Mado dashboard automatically detects incompatible loader combinations.

Server lagging with Liquid Lab – how to optimize performance?

Recommended RAM: 4 GB (per 8 players). Use /spark profiler to check if Liquid Lab consumes the most tick time. Common fixes: reduce server view-distance to 8-10, install "performant" or "starlight" as supplementary mods on Forge. With Mado Hosting, your server runs on NVMe SSDs with dedicated CPU cores for minimal latency.

Rent Modded Server

Install Liquid Lab with just one click on your server.

Recommended RAM
4 GBab €8/mo
Min. 3 GB | +1 GB pro 8 Spieler
Create Server Now
1-Click Mod Install
NVMe SSD Storage
DDoS Protection included

Details

License
MIT License
Server-side
Required

Supported Versions

1.21.1