Vexal Super Sponges
A Paper/Spigot plugin that adds powerful, configurable “super sponges” to clear water and/or lava in a chosen radius. Includes crafting recipes, per‑sponge properties (radius, uses, duration, cooldown), cooldown bypass permission, protection plugin support, and simple admin commands.
Requirements
Minecraft server: Paper or Spigot 1.17+ (api-version 1.17)
Java 17+
Optional (soft dependencies):
FastAsyncWorldEdit (FAWE) / WorldEdit
WorldGuard
Towny
GriefPrevention
GriefDefender
The plugin works without the soft dependencies, but will integrate with them when present to respect region/claim protections and to improve performance where possible.
Installation
Download the plugin JAR (VexalSuperSponges.jar) from your build or release page.
Place it in your server’s plugins folder.
Start the server to generate the default configuration files:
plugins/VexalSuperSponges/config.yml
plugins/VexalSuperSponges/messages.yml
Adjust settings as needed, then use the reload command or restart the server.
Features at a Glance
Multiple sponge types with custom:
Item appearance (name, lore, glow, flags)
Radius and uses
Activation duration and reuse cooldown
Target liquid: WATER, LAVA, or BOTH
Crafting recipe (enable/disable per sponge)
Cooldown system with a bypass permission
Integration with popular protection plugins (WorldGuard, Towny, GP, GD)
Clear player feedback via customizable messages
Commands
/vexalsupersponge reload
Permission: vexalsupersponge.reload
Reloads config.yml, messages.yml, and re-registers all sponge recipes.
/vexalsupersponge give [player]
Aliases: /vss, /supersponge, /sponge
Permission: vexalsupersponge.give
Gives the specified sponge to yourself or another player.
Examples:
/sponge give basic
/vss give ultimate Steve
/sponge reload
Permissions
vexalsupersponge.reload — Use the reload subcommand.
vexalsupersponge.give — Give yourself or others a sponge item.
sponges.bypass.cooldown — Bypass sponge cooldowns (configurable key in config.yml; default shown below).
Configuration
After first run, config.yml and messages.yml are generated using Okaeri Configs. Key options:
config.yml (conceptual overview):
spongeConfig.bypassCooldownPermission: Permission that bypasses cooldowns (default: "sponges.bypass.cooldown").
spongeConfig.sponges: A list of sponge definitions. Each sponge has:
id: Unique string id (e.g., "basic", "advanced", "ultimate").
item: ItemStack definition (name, lore, glow, flags) used to represent the sponge.
radius: Clearing radius in blocks.
uses: How many times the sponge can be used.
duration: How long the clearing task runs.
cooldown: How long the player must wait before reusing the sponge.
affect: WATER | LAVA | BOTH.
recipe: Crafting recipe settings:
shape: 3 strings like ["AAA","ABA","AAA"]
ingredients: Map of single character to Bukkit Material (e.g., 'A': SAND)
enabled: true/false to register the recipe.
messages.yml (highlights):
noPermission, cantFindPlayer, onlyForPlayer, invalidUsage(+ header/entry)
givenSponge (placeholders: {sponge}, {player})
reloadedConfig
cannotPlaceSponge, cannotPlaceSpongeProtected
spongePlaced (placeholder: {uses})
spongeStarted, spongeCompleted (placeholder: {blocks})
spongeAlreadyActive, spongeFailed
spongeOnCooldown (placeholder: {time})
Tip: You can use color codes supported by your chat component system (MiniMessage/legacy as configured by the plugin).
Crafting Recipes
Each sponge can have its own shaped recipe. Whether the recipe is registered is controlled by the recipe.enabled flag. When enabled, recipes are registered at startup and after /sponge reload. If you disable a recipe and run /sponge reload, it will be unregistered.
Example concept (fits the defaults):
basic sponge: Surround a SPONGE with SAND (shape AAA, ABA, AAA; A=SAND, B=SPONGE; enabled=true)
advanced sponge: Surround a SPONGE with COAL (enabled=false by default)
ultimate sponge: Surround a SPONGE with DIAMOND (enabled=false by default)
Adjust to your server’s economy and balance.
Protections and Safety
When a supported protection plugin is installed, VexalSuperSponges will attempt to respect region/claim flags and deny sponge placement or operation where the player lacks permission. Players will see a message like cannotPlaceSpongeProtected if they try to use a sponge in a protected area.
Cooldowns
Players are prevented from reusing a sponge during its cooldown.
The config value spongeConfig.bypassCooldownPermission defines a permission that bypasses cooldowns; default is sponges.bypass.cooldown.
The plugin also periodically cleans up expired cooldown data in the background.
Performance Notes
Clearing tasks execute with care to avoid server lag. If FAWE/WorldEdit is present, behavior may be optimized for bulk edits.
Keep radius within reasonable values for your player base and hardware.
Consider disabling certain recipes or raising costs on higher-tier sponges.
Troubleshooting
Command says "You do not have permission":
Make sure you granted the required permission node(s) via your permissions plugin.
"Cannot place this sponge here" or protected area message:
You may be inside a claim/region that disallows building or sponge usage; adjust flags/claims or move elsewhere.
Recipes not appearing:
Ensure recipe.enabled is true for that sponge and that you reloaded the plugin or restarted the server.
Placeholders not resolving in item lore:
Placeholders like {radius}, {uses}, {cooldown} are filled when items are generated; ensure you are using the freshly created item (e.g., via /sponge give) after changing config.
FAQ
Q: What Minecraft versions are supported?
A: api-version is 1.17; it should work on 1.17+ Paper/Spigot servers running Java 17. For older versions, compatibility is not guaranteed.
Q: Does it clear source blocks only or all flowing liquid?
A: It targets water and/or lava within the configured radius during the task duration as implemented by the plugin’s SpongeTask/SpongeAffect logic.
Q: Can I add my own sponge types?
A: Yes. Add a new entry to spongeConfig.sponges in config.yml with its properties and (optionally) a recipe.
Last updated