Dwurdy Sharks 1.4.1 for Minecraft 1.21.1
Curse Maven Snippet
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
dwurdySharksprefix:aggressiveSharks→dwurdySharksAggressiveSharks,largeSharkLocalCap→dwurdySharksLargeSharkLocalCap,ambientFishLocalCap→dwurdySharksAmbientFishLocalCap,sharkSpawnCapRadius→dwurdySharksSpawnCapRadius,enforceCapForManualSpawns→dwurdySharksEnforceCapForManualSpawns,largeSharkGlobalCap→dwurdySharksLargeSharkGlobalCap,ambientFishGlobalCap→dwurdySharksAmbientFishGlobalCap. 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.tomlkeeps 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, default0= unlimited) plus per-world gamerule overridesdwurdySharksLargeSharkGlobalCap/dwurdySharksAmbientFishGlobalCap(-1= inherit config). Complements the 1.4.0 radius-local caps. (#38) - Speed tuning:
movement.sharkSpeedMultiplierglobal multiplier plusmovement.speciesMultiplier.<species>for all 24 species. (#37) - Damage tuning:
damage.speciesMultiplier.<species>stacked onsharkDamageMultiplier, anddamage.speciesHealth.<species>absolute max-health overrides. (#37) - Behavior toggles:
behavior.itemEatingEnabled(disable food-item eating mod-wide) andbehavior.aggroFollowRangeMultiplier(how far aggressive sharks notice targets). (#41) - Boat deterrent:
behavior.sharksAttackBoats(defaultfalse) — 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;0disables dryout entirely) andbehavior.dryoutDurationTicks. (#40) - Despawn distance:
despawn.hardDespawnDistanceBlocks(default 128 = vanillaWATER_CREATUREbehavior, range 16–512). Tamed, named, and persistence-required entities never despawn. (#39) - Config schema v2:
configVersionmarker, explicit valid ranges on every numeric key, and units documented in comments. (#36) - Admin docs:
docs/CONFIG.md(every config key) anddocs/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.
This mod has no additional files
