Skip to main content
Version: 26.1.x

Fluid Hooks

Helper classes that expose fluid behavior which differs between loaders. Most of the common ones are also reachable through FluidStack directly.

FluidStackHooks

dev.architectury.hooks.fluid.FluidStackHooks

Naming, serialization, and physical properties of fluids.

MethodDescription
getName(FluidStack) / getTranslationKey(FluidStack)Display name / translation key.
bucketAmount()The amount representing one bucket (1000 on NeoForge, 81000 on Fabric).
read(...) / write(...)Read/write a FluidStack to a buffer or NBT tag.
getLuminosity(fluid, level, pos)Light level, 0–15.
getTemperature(fluid, level, pos)Temperature in kelvin (300 ≈ room temperature).
getViscosity(fluid, level, pos)Viscosity (1000 for water); lower flows faster.

The property getters accept either a FluidStack or a Fluid, and the level/pos may be null.

int light = FluidStackHooks.getLuminosity(stack, level, pos);
int temp = FluidStackHooks.getTemperature(Fluids.LAVA, null, null);

FluidBucketHooks

dev.architectury.hooks.fluid.FluidBucketHooks

Fluid fluid = FluidBucketHooks.getFluid(someBucketItem);

Returns the fluid a BucketItem contains - handled here because NeoForge defers the fluid on its bucket items.

ClientFluidStackHooks

dev.architectury.hooks.client.fluid.ClientFluidStackHooks

Client-only helpers for fluid rendering - the textures and tint a fluid draws with:

MethodReturns
getStillTexture(...)The still TextureAtlasSprite.
getFlowingTexture(...)The flowing TextureAtlasSprite.
getColor(...)The tint color.

Each accepts a FluidStack, a Fluid, or a FluidState (with optional level and position).

TextureAtlasSprite still = ClientFluidStackHooks.getStillTexture(stack);
int tint = ClientFluidStackHooks.getColor(stack);
Client-only

Only call ClientFluidStackHooks from client-side code.