Custom Fluids

Supported by Forge on all versions, and Fabric on 1.18.2+

// Startup script
onEvent('fluid.registry', event => {
  // These first examples are 1.16.5 and 1.18.2 syntax
  // Basic "thick" (looks like lava) fluid with red tint
    .displayName('Thick Fluid')
  // Basic "thin" (looks like water) fluid with cyan tint, has no bucket and is not placeable
    .displayName('Thin Fluid')
  	.noBucket() // both these methods are 1.18.2+ only
  // Fluid with custom textures
  	.displayName('Strawberry Cream')
  // For 1.18.1 the syntax is slightly different
  event.create('thick_fluid', fluid => {
       fluid.textureThick(0xFF0000) // the texture method names are different in 1.18.1 and below, textureXyz instead of xyzTexture
       fluid.displayName('Thick Fluid')

In 1.18.1, 1.17 and 1.16 the texture method names are swapped, so textureStill and textureThin instead of stillTexture and thinTexture