Minecraft PluginReleased✦ Featured

InfiniteBuckets

Customizable infinite water and lava buckets for modern Paper servers. Give your players endless fluids in a safe, configurable way

InfiniteBuckets

Customizable infinite water and lava buckets for modern Paper servers. Give your players endless fluids in a safe, configurable way β€” with beautiful names/lore using MiniMessage, per-bucket permissions, optional Nether restrictions, and smart behavior like waterlogging support. Fully Folia compatible.

InfBucket_Banner


✨ Features

  • Player-friendly

    • Right-click to place water or lava
    • Automatically waterlogs blocks when possible
  • Fully customizable

    • Define any number of infinite buckets in config.yml
    • Custom name, lore, material, permission, and Nether rules
  • Permission-driven

    • Control access per bucket (infb.use.water, infb.use.lava, or your own)
  • Modern & safe

    • Paper API 1.21
    • Java 17+
    • Folia supported
    • Async update notifier for admins
  • Integrations

    • Hooks prepared for WorldGuard, GriefPrevention, Towny, Lands, PlotSquared, Residence
    • Explicit build-privilege check for SuperiorSkyblock2
  • Performance-friendly

    • Lightweight and optimized for busy servers
  • Custom branding

    • MiniMessage support for gradients, colors, and lore
  • Ready out-of-the-box

    • Comes with Infinite Water & Lava Buckets preconfigured

πŸ“₯ Installation

  1. Requirements:

    • Paper/Paper-fork 1.21+ (Folia supported)
    • Java 17+
  2. Download the latest jar from Modrinth and place it in your server’s plugins folder

  3. Start the server to generate default configuration, config.yml, and messages.yml


πŸ“œ Commands

  • /infinitebuckets (aliases: /infb, /ib)

    • help β€” Show help menu
    • reload β€” Reload config, messages, buckets, and hooks
    • give <player> <bucketId> [amount] β€” Give infinite bucket items

Examples:

  • /infb help
  • /infb reload
  • /infb give Steve water 1
  • /infb give Alex lava 16

πŸ”’ Permissions

  • infb.admin β€” Admin access (/infb reload, /infb give, tab completion)
  • infb.use.water β€” Use the Infinite Water Bucket
  • infb.use.lava β€” Use the Infinite Lava Bucket
  • infb.use.<bucketId> β€” Custom buckets use their own permissions

βš™οΈ Configuration

plugins/InfiniteBuckets/config.yml # =================================================================== # # GENERAL SETTINGS # # =================================================================== #

Enable this to see detailed diagnostic messages in the console.

This is useful for debugging issues with hooks or bucket usage.

debug-mode: false

Enable automatic update checking and notifications for admins

update-checker: enabled: true notify-admins: true check-interval: 24 # hours

Performance and safety settings

performance:

Maximum number of blocks that can be affected by drain-area buckets per use

max-drain-blocks: 1000

Global cooldown between bucket uses (in ticks, 20 ticks = 1 second)

global-cooldown: 5

Enable async processing for large drain operations

async-processing: true

Integration settings for protection plugins

integrations:

Automatically detect and hook into protection plugins

auto-detect-hooks: true

List of protection plugins to explicitly enable/disable

hooks: worldguard: true griefprevention: true towny: true lands: true plotsquared: true residence: true superiorskyblock: true

World restrictions

world-settings:

Worlds where infinite buckets are completely disabled

disabled-worlds: []

Default nether restrictions (can be overridden per bucket)

default-nether-restriction: false

Worlds with special rules

world-rules: # Example: # nether: # allow-water-buckets: false # allow-lava-buckets: true

===================================================================

BUCKET DEFINITIONS

===================================================================

Bucket definitions have been moved to buckets.yml for better organization

and more advanced configuration options. Please refer to buckets.yml to

configure all bucket types and behaviors.

plugins/InfiniteBuckets/buckets.yml

===================================================================

InfiniteBuckets - Advanced Configuration

Author: djtmk

===================================================================

This configuration file defines all bucket types available on the server.

It includes built-in presets that can be toggled, plus custom buckets

defined by server administrators.

Schema Version: 1

version: 1

===================================================================

BUILT-IN PRESETS

===================================================================

These are the default bucket types that come with the plugin.

You can disable any of them by setting enabled: false

presets:

Standard water bucket behavior

water_bucket: id: "water_bucket" displayName: "Infinite Water Bucket" lore: - "<!italic>β€’ Never runs out of water" - "<!italic>β€’ Right-click to place water" - "<!italic>β€’ Works in most dimensions" icon: "minecraft:water_bucket" mode: "vanilla_like" fluids: ["minecraft:water"] capacity: 1 crafting: enabled: false permissions: use: "buckets.use.water" craft: "" enabled: true

Standard lava bucket behavior

lava_bucket: id: "lava_bucket" displayName: "Infinite Lava Bucket" lore: - "<!italic>β€’ Never runs out of lava" - "<!italic>β€’ Right-click to place lava" - "<!italic>⚠ Use with caution!" icon: "minecraft:lava_bucket" mode: "vanilla_like" fluids: ["minecraft:lava"] capacity: 1 crafting: enabled: false permissions: use: "buckets.use.lava" craft: "" enabled: true

Sponge-like bucket that drains water from an area

empty_sponge_bucket: id: "sponge_bucket" displayName: "Infinite Sponge Bucket" lore: - "<!italic>β€’ Absorbs water in a 5x5x5 area" - "<!italic>β€’ Right-click to drain water" - "<!italic>β€’ Removes waterlogging too!" icon: "minecraft:bucket" mode: "drain_area" behavior: radius: 2 # 5x5x5 cube around use point maxBlocksPerUse: 200 cooldown: 10 # ticks waterlogged: true # removes waterlogging from blocks fluids: ["minecraft:water"] # only drains water crafting: enabled: false permissions: use: "buckets.use.sponge" craft: "" enabled: true

===================================================================

CUSTOM BUCKETS

===================================================================

Define your own custom bucket types here. Each bucket must have a unique ID.

Available modes:

- vanilla_like: Normal bucket behavior (fill from source, place fluid)

- drain_area: Sponge-like behavior (drain fluids in radius)

For vanilla_like buckets, specify fluids/fluidTags to control what can be collected

For drain_area buckets, use the behavior section to configure drain behavior

customBuckets:

- id: "milk_bucket"

displayName: "Infinite Milk Bucket"

lore:

- "<!italic>Cures all that ails you."

icon: "minecraft:milk_bucket"

mode: "EFFECT"

action: "CLEAR_EFFECTS"

permissions:

use: "buckets.use.milk"

enabled: true

===================================================================

EXAMPLE CUSTOM BUCKETS

===================================================================

Here are some examples of custom buckets you can create.

Remove the # at the beginning of each line to enable them.

Example 1: Multi-fluid bucket that can hold any fluid

#customBuckets:

- id: "custom:universal_bucket"

displayName: "Universal Fluid Bucket"

icon: "custom:universal_bucket"

mode: "vanilla_like"

fluidTags: ["#minecraft:fluids"] # accepts any fluid

capacity: 5 # can hold 5 units

permissions:

use: "buckets.use.universal"

craft: "buckets.craft.universal"

crafting:

enabled: true

recipe: "universal_bucket_recipe"

enabled: true

Example 2: Super sponge that drains large areas

- id: "custom:super_sponge"

displayName: "Super Absorbent Sponge"

icon: "custom:super_sponge"

mode: "drain_area"

behavior:

radius: 4 # 9x9x9 cube

maxBlocksPerUse: 500

cooldown: 20

waterlogged: true

fluidTags: ["#minecraft:water"] # drains all water-type fluids

permissions:

use: "buckets.use.supersponge"

craft: "buckets.craft.supersponge"

crafting:

enabled: true

recipe: "super_sponge_recipe"

enabled: true

Example 3: Lava-specific drain bucket

- id: "custom:lava_absorber"

displayName: "Lava Absorber"

icon: "custom:lava_absorber"

mode: "drain_area"

behavior:

radius: 3 # 7x7x7 cube

maxBlocksPerUse: 300

cooldown: 40

waterlogged: false # doesn't affect waterlogged blocks

fluids: ["minecraft:lava"] # only drains lava

permissions:

use: "buckets.use.lavaabsorber"

craft: ""

enabled: true

===================================================================

CONFIGURATION NOTES

===================================================================

Field Descriptions:

id: Unique identifier for the bucket (required)

displayName: Name shown to players (required)

icon: Item icon/texture identifier (optional)

mode: Bucket behavior type - "vanilla_like" or "drain_area" (required)

capacity: How many fluid units can be stored (optional, default: 1)

fluids: Array of specific fluid IDs this bucket can handle (optional)

fluidTags: Array of fluid tags this bucket accepts (optional)

enabled: Whether this bucket is available (optional, default: true)

For vanilla_like buckets:

- Must specify either fluids or fluidTags (or both)

- Capacity determines how much fluid can be stored

For drain_area buckets:

- behavior section is required

- radius: Manhattan distance for drain area (max 6 without unsafe flag)

- maxBlocksPerUse: Safety limit on blocks drained per use (max 5000 without unsafe)

- cooldown: Ticks between uses

- waterlogged: Whether to remove waterlogging from blocks

- unsafe: Set to true to bypass safety limits (not recommended)

Permissions:

- use: Permission required to use this bucket type

- craft: Permission required to craft this bucket (if crafting enabled)

Crafting:

- enabled: Whether this bucket can be crafted

- recipe: Recipe identifier for crafting system

Security Notes:

- Large radius or maxBlocksPerUse values can cause server lag

- Use the unsafe flag only if you understand the performance implications

- Consider setting appropriate permissions for powerful buckets

Supports MiniMessage formatting β†’ docs here


πŸ”— Integrations

Respects build rules when possible. Hooks initialized for:

  • WorldGuard
  • GriefPrevention
  • Towny
  • Lands
  • PlotSquared
  • Residence
  • SuperiorSkyblock2 (explicit BUILD privilege check implemented)

---

πŸš€ Why Use InfiniteBuckets?

  • Save players from the hassle of refilling buckets
  • Prevent griefing with fine-grained permission and Nether rules
  • Lightweight and performance-friendly β€” designed for modern Paper/Folia servers
  • Out-of-the-box ready with water & lava buckets, plus easy customization for more
  • Trusted by protection plugins, so your server stays safe
πŸ›

Found a bug?

Report it via our ticket system and we'll look into it as soon as possible.

Open a Ticket