promotional banner

Dwurdy Sharks

All the sharks. Maintained.** A credited community fork of Ben's Sharks for NeoForge 1.21.1, with 26 registered marine entity types and the wild-shark despawn fix.
Back to Files

Dwurdy Sharks 1.4.1 for Minecraft 1.21.1

File namedwurdysharks-1.4.1.jar
Uploader
dwurdydwurdy
Uploaded
Sep 22, 2026
Downloads
25
Size
2.3 MB
Mod Loaders
NeoForge
File ID
8950139
Type
R
Release
Supported game versions
  • 1.21.1

Curse Maven Snippet

NeoForge

implementation "curse.maven:dwurdy-sharks-1693295:8950139"

Learn more about Curse Maven

What's new

Dwurdy Sharks 1.4.1 — Minecraft 1.21.1

Dwurdy Sharks 1.4.1 is the server-administration release. The server config is now a complete balance surface — population ceilings, damage/speed/health tuning per species, behavior toggles, and despawn control — and every mod gamerule is namespaced dwurdySharks* so /gamerule output clearly shows what belongs to this mod.

⚠️ Migration notes

  • All seven gamerules renamed with a dwurdySharks prefix: aggressiveSharksdwurdySharksAggressiveSharks, largeSharkLocalCapdwurdySharksLargeSharkLocalCap, ambientFishLocalCapdwurdySharksAmbientFishLocalCap, sharkSpawnCapRadiusdwurdySharksSpawnCapRadius, enforceCapForManualSpawnsdwurdySharksEnforceCapForManualSpawns, largeSharkGlobalCapdwurdySharksLargeSharkGlobalCap, ambientFishGlobalCapdwurdySharksAmbientFishGlobalCap. Gamerule values are stored per world by name — worlds that customized the old names revert to defaults; re-apply them under the new names.
  • Config file is additive-only. dwurdysharks-server.toml keeps every 1.4.0 key at the same path; new sections (population, movement, behavior, despawn) are added alongside. Existing edits carry over.

Added

  • Whole-dimension global caps (population.largeSharkGlobalCap, population.ambientFishGlobalCap, default 0 = unlimited) plus per-world gamerule overrides dwurdySharksLargeSharkGlobalCap / dwurdySharksAmbientFishGlobalCap (-1 = inherit config). Complements the 1.4.0 radius-local caps. (#38)
  • Speed tuning: movement.sharkSpeedMultiplier global multiplier plus movement.speciesMultiplier.<species> for all 24 species. (#37)
  • Damage tuning: damage.speciesMultiplier.<species> stacked on sharkDamageMultiplier, and damage.speciesHealth.<species> absolute max-health overrides. (#37)
  • Behavior toggles: behavior.itemEatingEnabled (disable food-item eating mod-wide) and behavior.aggroFollowRangeMultiplier (how far aggressive sharks notice targets). (#41)
  • Boat deterrent: behavior.sharksAttackBoats (default false) — large sharks seek out and ram occupied boats and chest boats, breaking them after a few hits. Empty boats are ignored and tamed sharks never attack, so named/persistent sharks work as canal-border guards. Independent of the aggression gamerule. (#55)
  • Dryout timing: behavior.dryoutDelayTicks (default 600; 0 disables dryout entirely) and behavior.dryoutDurationTicks. (#40)
  • Despawn distance: despawn.hardDespawnDistanceBlocks (default 128 = vanilla WATER_CREATURE behavior, range 16–512). Tamed, named, and persistence-required entities never despawn. (#39)
  • Config schema v2: configVersion marker, explicit valid ranges on every numeric key, and units documented in comments. (#36)
  • Admin docs: docs/CONFIG.md (every config key) and docs/GAMERULES.md (every gamerule + rename table). (#42)

Fixed

  • Wild sharks despawned while no players were online. The despawn check treated "no nearest player" as "nearest player at distance 0", instantly discarding wild sharks on empty servers and during GameTest runs. (#52)
  • Sharks could not finish attacking floating boats. The water check rejected sharks floating exactly at the waterline — where ramming a boat happens — and a 20-tick hit cadence was fully healed by vanilla boat damage decay. Both fixed; verified on a live dedicated server. (#56)

Verification

  • gradlew runGameTestServer: 33/33 required tests passed on the release commit, including five ≥300 s wall-clock stress profiles (stress_population_100, stress_population_500, stress_item_eat, stress_dryout_beached, stress_baseline).
  • All ten static guard scripts in tools/ pass.
  • Dedicated-server RCON proof: global cap via gamerule and config-inherit, speed multiplier applied to live attributes, despawn fix, boat attacks destroying an occupied boat and leaving empty boats untouched.

This release is for Minecraft 1.21.1 + NeoForge only. Other Minecraft versions and loaders require separate ports and verification.