HistatuFishing
The plan for fishing on Histatu: a cast, a fight worth winning, eighty species that are worth more than food, and a hundred and twenty pieces of tackle that are each right somewhere. Designed with the server's players in #landclaim-fishing-wishing, built on Hytale's own assets.
This is the design, not a changelog. Nothing described here is built, and the details will move as it gets made. It is published so the people who shaped it can see where their ideas landed and push back on the parts they disagree with.
What We Build On
Hytale ships no fishing, but it ships most of the content for it. There are thirty fish species sharing one item template:
Bluegill Catfish Clownfish Crab
Eel_Moray Frostgill Lobster Minnow
Pike Piranha Piranha_Black Pufferfish
Salmon Shark_Hammerhead Shellfish_Lava
Snapjaw Trout_Rainbow Tang_Blue
Tang_Chevron Tang_Lemon_Peel Tang_Sailfin
Trilobite Trilobite_Black Whale_Humpback
and six jellyfish.
Alongside them:
- Rarity is already an item state, not a separate item — one id covers every quality with its own drop particle. Our rarity ladder is that mechanism with more rungs, not new machinery.
-
A working fishing trap.
Tool_Fishing_Traponly places on water, runs on the farming stage system, and has a baited stage set that matures roughly twice as fast. Bait is already a vanilla concept that already works, so the passive tier is nearly free. - A weighted loot format that catch tables are authored in rather than reinvented.
-
Fish NPCs, drop tables and audio behind all of it, plus a
Tuluk_FishermanNPC — a questgiver without commissioning a model.
What is missing is the entire skill layer. Vanilla has fish, rarity, bait, loot tables, a passive trap and a fisherman. It has no rod, no bobber, no cast, no bite, no fight, and no record of who caught what. That gap is the product — and it means almost no fish art and no fish audio is needed. Art effort goes to the things with no vanilla equivalent: rods, reels, hooks, lines, lures and bait.
The Catch
The minigame is the centrepiece, and it is one mechanism from the first cast to the Kraken.
Miss the bite window and it drops back to floating — a rod's hook speed widens that window, which is the whole reason the stat exists.
The fight is a held input with a per-tick server callback. Hold and tension climbs while the fish comes in; release and tension bleeds off while the fish takes line back. The entire minigame is keeping one number inside a band:
Line strength raises the ceiling on the right. Control widens the band and softens the snap. Your difficulty setting scales the whole width — so the same fish is the same fight, just with more or less room to get it wrong.
The fish fights back
A fish is not a bar draining smoothly. Its stamina falls while tension sits in the productive band and its pull scales with what is left, so a big fish comes in through runs and lulls rather than at a constant rate. It takes line back. It jumps, and a jump taken at full tension snaps you. Per-species pull curves give each one a shape: a pike runs in long bursts, a catfish sits heavy at constant high pull, a bluegill headshakes in fast small spikes.
Two numbers sit alongside tension. Line length is what the fish grows and you shrink; losing all of it is a distinct failure from snapping. Reeling stamina is yours, and when it is spent you have to let the fish run to the end of the line, recover, and pull it back before it gets there. That is the one genuinely new mechanic in the loop, and it exists to stop the optimal play being to hold the button in the safe band forever.
The tuning brief is hard enough to be worth doing, never so hard that people stop bothering. A per-player difficulty setting scales band width and pull — easy widens the band, hard narrows it and adds a luck bonus.
The crude starter rod — string on a stick — has its own simpler style: toss it in, wait for the bite, yank the fish out, no tension bar at all. That is a better tutorial than a tooltip, and it makes the second rod feel like an event rather than a stat bump. Spear fishing sits one step earlier still, as the thing you do before you own a rod. Both are the same catch tables and the same records with the fight stripped out, so neither is a second system to maintain.
Bait attaches to the rod and is consumed on use, with a line naming what was spent rather than taking it silently. The rod shows it: one icon per rod per bait is out, but two states per rod — baited and bare — is affordable and worth having.
Every stat in the catalog maps onto exactly one number in that loop:
| Stat | Effect | Acts on |
|---|---|---|
| Line Strength (LS) | Tension ceiling before the line snaps | The fight |
| Reel Speed (RS) | Distance recovered per second while held | The fight |
| Control (CT) | Width of the safe band, and the snap grace | The fight |
| Hook Speed (HS) | Length of the bite window | The bite |
| Cast Distance (CD) | Launch velocity on the bobber projectile | The cast |
| Bite Rate (BR) | How often the per-tick roll produces a bite at all | The wait |
| Fishing Luck (LK) | Rarity roll weighting | The roll |
| Fish Size (SZ) | Size and weight roll weighting | The roll |
Eight is the ceiling. Each one is a term that already exists in the loop; a ninth would have to invent one.
Particles, sounds and camera shake are all fields on an interaction asset, as is the camera itself. The toss-bobber-then-camera-follows cast is authored rather than written, and the "I did not notice I caught something" problem goes away.
Fish
Eighty species across ten zones — ponds and lakes, rivers, swamps, frozen water, caves, reefs, deep ocean, volcanic water, night and supernatural, and boss encounters. Fifty are new; the thirty the engine ships are described the same way and obey the same rules, because there is no reason for a bass to behave differently from a Copperhead just because one of them came with the engine. Each species carries its spawn conditions, preferred bait, edibility, drops, and the content it links back to.
What you catch is a weighted roll against biome, zone, time of day, weather, water depth, water-body size, bait, rod luck and species mastery — every environmental rule is a field rather than a special case. A minimum water-body size means a puddle is not an ocean, and weather is one term like any other, read from ambient conditions and never forced.
Rarity and size are independent rolls. A fish can be a common species at trophy weight, or a mythic species that came up tiny — both are worth something, for completely different reasons.
Fish are materials, not meals
Only about a fifth of the catalog is straightforwardly edible. The rest are crafting materials, bait, aquarium stock, quest targets, trophies, or things you are not supposed to eat at all. The Copperhead is the pattern: not a meal, drops Copper Scales, and Copper Scales are what the Copperstrand Leader, the Copperfin Reel and the Emberbark Rod are made of.
That loop is what makes the species list and the tackle catalog one system rather than two. It also makes the catch tables load-bearing: a species that is hard to reach gates a component, and that component is what makes the next species reachable. Getting that ordering wrong is the real failure mode here, so the dependency graph gets drawn before any of it is built.
Specimens and the Cooler
Every caught fish carries its own stats — species, weight, length, size class, angler, location, date, bait. Nothing is graded into anonymous bulk.
That means no fish stacks, because carrying per-catch data is exactly what stops two items being the same item. Taken at face value that is a chests-full-of-singletons problem. It is survivable because the grid inventory is the wrong home for fish and always was.
The cooler is not a chest. It holds catch records — roughly forty bytes each — so four hundred fish is four hundred scrollable rows, not four hundred inventory slots. A record only becomes a real item when you take one out, and caught fish auto-route there rather than to the hotbar.
- Weight-scaled economy. A 12 lb bass is worth more than a 1 lb bass, because the shop prices the record. Stackable fish could never do that — this is an argument for per-fish stats, not a concession to them.
- Bulk actions become possible because fish are rows: sell everything under a weight, cook all commons, release everything below Large.
- Contents survive death, since the cooler is not a container.
- Vanilla recipes still work on anything taken out.
The catch record is permanent; the fish is a physical object with a normal lifetime. Sell it, cook it, release it — the personal best, server record, encyclopedia entry and leaderboard placement all still stand. Nobody has to hoard to keep the achievement, so hoarding becomes a choice about display and trophies.
A full cooler stops you fishing. Nothing is auto-released and nothing is overwritten — the rod will not cast until you make room. Every fish in there is a unique record rather than one of a stack, so the system never takes one away without being asked.
That puts a hard stop in the middle of an activity people do to relax, so it is paid back in two places. The warning arrives early — around eighty per cent, again at ninety-five, in the fishing HUD rather than in chat — so the stop is never a surprise. And clearing space is one action: the bulk operations above are what turn "you are full" from a wall into a five-second decision. Paid capacity upgrades sit on top of that as a sink, not as the fix.
Tackle
A hundred and twenty components across six slots, each with stats, a passive, lore, a source, and the stage of the game it belongs to.
| Slot | Items | What it mostly moves |
|---|---|---|
| Rods | 20 | Cast distance, line strength, control |
| Reels | 18 | Reel speed, tension handling |
| Lines | 18 | Line strength, control |
| Hooks | 22 | Hook speed, luck, size |
| Lures | 20 | Bite rate, what shows up |
| Bait | 22 | Bite rate, what shows up, size |
Sideways, not upwards
Almost every passive is conditional on something: a biome, a weather state, a time of day, a species, a water depth, a fishing style. The Reedwhistle Rod is a Common that gives +10% bite rate in water under four blocks deep, and in shallow water it beats things far above its rarity. Late-game builds keep reaching for low-rarity components because those components are correct somewhere.
That only works if the player can tell a passive fired. If they cannot, they fall back on the one signal that is always visible — rarity — and the catalog collapses into "use the highest tier you own", with all hundred and twenty items behaving like twenty. Nothing would look broken while it happened.
So the tackle screen shows them. Every equipped component lists its passive with a live or dormant state and the reason next to it — Shallow Water — active, depth 2, Storm Chaser — dormant, clear skies — and when a passive contributes to a catch, the result names it. The tackle screen is the right home because that is where the choice is made: you are looking at your gear, so that is the moment to learn the rod you are holding is asleep here and a different one is not. The line on the catch closes the loop from the other end, and turns a number in a tooltip into a reason to carry a second rod.
A condition that can only be applied is not enough — to render a state before the cast, the game has to be able to ask a passive whether it is currently true. That rules out hardcoding conditions per item and pushes them into the same authored form the catch tables use: biome, depth, weather, time, species, water type. It is decided before components are written, because retrofitting it across a hundred and twenty of them is considerably worse.
The same display is also the only practical way to tune a catalog this size. Standing in a swamp at night and reading which passives are live is how a balance problem gets found, and how anyone authoring a new component checks their condition fires at all.
Epic and above carry one Angler Modifier — Heavy, Lucky, Balanced, Longcast, Trophy Hunter's, Quickset, Weathered, Abyss-Touched — so loot varies without a new model per stat combination. It is the cheapest interesting drop available: the model is already made.
Where components come from
Not levels and crafting benches. Components are earned by doing something specific:
- Catch fifteen fish from the starter village pond without using bait.
- Collect intact web strands from cave spiders without being attacked.
- Catch one Rare-or-better fish at both sunrise and sunset on the same in-game day.
- Land five Trophy fish without snapping a single line between catches.
- Complete a nighttime Epic-or-better catch without letting tension enter the red once.
- Trade with an angler who only appears while it is raining.
Those look like quests — a trigger, a condition, a counter, a reward — and the plan here used to be a hundred of them authored in QuestLines. That turned out to be the wrong shape, and it is worth saying why. They are not a hundred different conditions; they are the same condition a hundred times, with seven fields filled in differently — how many, of what species, at what size, over what weight, in what water, at what hour, in what weather. Written out a hundred times in another system, nothing can check that a species name is spelled right, that a weight is one any fish in the catalog can reach, or that two of them have quietly claimed the same component. A hundred chances to get one wrong, and no symptom when you do: the piece simply never appears, and looks exactly like a piece nobody has earned yet.
So the condition lives on the component, as data, and the build checks all hundred of them every time it compiles. What a player reads on the tackle screen is generated from that same data rather than written by hand, so the sentence and the rule can never drift apart. Quests are not shut out — a handful of components are marked bought or traded for and wait for a shopkeeper, and any quest can still hand over any piece.
Bait is the one exception, and it is an instructive one. Bait is spent, so handing one over the way a reel is handed over means it comes back free the moment the condition is checked again — an infinite supply nobody would notice was wrong. So a bait's condition buys the recipe, once, and the supply comes from tying it out of what fish drop. Which is the truer sentence anyway: landing twenty Copperheads does not give you a jar of copper roe, it teaches you how to cure one.
And five baits are not earned at all. They are dug up with a trowel — worms out of dirt, grubs out of roots, crickets out of long grass after dark, glowgrubs off deep stone — so a brand new angler has bait before they have caught anything to make bait out of. The rule that stops that becoming a worm farm is not a cooldown: the ground you have already turned over stays empty until you have worked through a good many other blocks. A cooldown on the tool just makes it slower and a cooldown on the block makes you stand there waiting; remembering where you have been makes you walk, which is what foraging was supposed to be.
What a swing settles, though, is changing. Turning over the right block and waiting on a hidden roll is a coin flip with a walk between each one, so the roll is being replaced by a small skill test: click a block, and if something could live there you play for it — four different games depending on what you are digging, a real chance of coming away with nothing, and a better dig paying more than a scrappy one. That is its own page: Foraging.
The catalog goes in broadly whole. Horizontal progression cannot be demonstrated with a thin slice: a player only discovers that a Common rod is the right rod for shallow water if there is a full spread of alternatives to compare it against. Twenty components would teach people the wrong thing about what this is.
The cost that remains is the wording, not the wiring. A hundred conditions are a hundred small judgements about what is fair to ask, and those get read and re-read on a live server. The engine underneath them is one predicate.
Events and Challenges
Fourteen events and six challenges, each tied to specific components and specific fish. Low Tide exposes ground that is normally underwater and is the only way to collect shed Coralspines. The Great Storm rewrites the catch tables and carries the weekly tournament. Blood Moon brings out aggressive and supernatural species. There is a meteor shower where you fish falling shards out of the water before they sink, a whale migration you follow to a wreck, and a siren you find by following singing across the ocean at night.
| Event | Where | What it changes | Gates |
|---|---|---|---|
| Low Tide | Coasts, reefs | Water recedes, exposing seabed | Coralspine Rod, Mudskipper Plug |
| Great Storm | Many biomes | Rain, lightning, rough water, altered tables | Stormglass Rod, Stormcoil Reel, Stormfang Hook |
| Blood Moon | Night, global | Aggressive and supernatural fish appear | Bloodmoon Hook, Moonmoth Wings |
| Aurora | Frozen water | Unusual cold-water species unlock | Iceglass Smelt, Cryofin |
| Blizzard | Frozen water | Visibility drops, ice changes | Frostbite Clutch |
| Geothermal Surge | Volcanic water | Thermal pools become active | Magma Koi, Obsidian Gar |
| Maelstrom | Deep ocean | A rotating current forms a hazard zone | Maelstrom Engine |
| Meteor Shower | All water | Shards to catch before they sink; Rare+ up | Starthread |
None of these are built one at a time. Underneath sits a set of per-world multipliers on the numbers that decide how fishing feels — time before a bite, minigame speed, window size, line strength, junk and treasure chance — so balance is found by moving a dial rather than by rebuilding. An event is then a named, time-boxed set of those multipliers plus catch-table overrides, scoped to a world or a region. A fish frenzy is bite time at a quarter. A treasure hunt is treasure chance turned up. All fourteen are expressible that way, the environmental dressing (fog, tide height, aurora) is presentation rather than logic, and the server gets its tuning dials for free.
Weekly tournaments, biggest-fish contests, weekend derbies, and server-wide accumulation — a hundred fish triggers a frenzy, a thousand triggers a bigger one — all sit on the same two things: a leaderboard over catch records, and the multipliers above. None of it needs new fishing mechanics, which makes it unusually good value per hour spent. Water that gets richer the more it is worked is the one genuinely new mechanic in that group, and the one that would most change where people go.
Progression
There is no need to build a fishing level. MMOSkillTree already has one, and
it is already wired for exactly this: FISHING is a declared skill alongside
cooking and mining, and CATCH_FISH is a declared trigger that
nothing currently fires — because there is no vanilla fishing to fire
it with. This is what it was waiting for.
That hands us the level, the same curve every other skill uses, level-up feedback and HUD, a fishing skill-tree branch with luck and bonus-XP nodes that can feed rod stats directly, achievements, statistics, and server-first claims for things like the first Kraken capture. The level-unlock table becomes that skill tree.
Per-species mastery stays ours — eighty individual counters do not belong in a skill tree.
Tanks and Trophies
A tank that renders the specific fish you caught is not possible — there is no dynamic texture rendering and there are no item frames. What works is adjacent and close. The vanilla fish template already carries a spawn-NPC interaction, so releasing a caught fish as a live NPC works today; the real risk was never rendering but entity cleanup sweeping up a loose fish. So a tank block holds its stock as data and spawns the fish only while someone is nearby: cleanup can never take it, and an empty room costs nothing. Wall trophy mounts are cheaper still and are where the satisfaction actually lives.
Tanks are not only decoration. The Glowkelp Filament — an Epic line — is made by growing captured Glowkelp to maturity inside a player aquarium and harvesting a strand, which makes the tank a production building with a timer and a much better reason to own one than looking at it. If one component works that way, others can: an aquarium that grows bait is an obvious second use.
The Golden Koi points the other direction. It cannot be cooked, and releasing one after capture grants a temporary luck blessing — a fish whose reward is deliberately not keeping it. That works because the record is permanent and the fish is not: you keep the entry, the trophy and the leaderboard placement, and let the animal go.
The Kraken
A four-stage, capture-not-kill deep-ocean encounter on a shared seven-minute timer, ending in a boss version of the fishing minigame. A shipwreck rises, harpoon rowboats spawn around it, and the Kraken circles.
Each stage takes a quarter of its health, and the four share one clock, so time lost repositioning in Stage 1 is time missing from the final fight. The curve is deliberately not "more damage": it moves from coordination, to coordination under fire, to precision, and finally to fishing skill and gear. Harpoons must land within about ten seconds of each other or the earlier lines rip free, which is what forces the first two stages to be played as a team rather than as three people fishing near each other. Nine named attacks carry their own tells, and the run is graded S to C on time, with four distinct ways to lose it.
Stage 4 is the part worth protecting. The boats are gone, every player casts into the Kraken, and each attached line contributes pull strength scaled by that player's own rod, reel, line and hook. Too much tension and lines snap; too little and it recovers distance. A player whose line breaks can recast, but the shared clock makes that expensive. It is the tension minigame played by five people at once against one animal.
Whatever time is left when the Kraken is landed becomes a fishing window inside the arena with Rare-and-better and Trophy rates raised — and it is the only source of Abyssworm, a Legendary bait. That turns a boss kill into a reason to stay and gives the completion rank a tangible payout instead of a letter on a screen. It requires the encounter timer to keep counting past the victory, which is worth building in from the start rather than retrofitting.
Stage 4 gets built first
Everything above is buildable today except the boats: the deep-ocean trigger, the rising shipwreck, arena bounds and leash-out failure, fog and darkened sky, tentacles and telegraphed slams, wave adds that players destroy by casting at them, the shared countdown, the four-stage health gate, the boss bar, ranks, drops, journal records and every failure condition. Stages 1 to 3 are built around rowing a boat into position, and Hytale has no boats until Chapter 1. Harpoons could be an item interaction firing a projectile, but "row into position" cannot be faked into something that feels like it was meant to.
So Stage 4 goes in first, as a standalone Leviathan boss: cast at it, team-fight it on the tension minigame, land it or lose it. It is the most original mechanic here, it needs nothing that does not already exist, and it proves out the multiplayer fight code. Stages 1 to 3 slot in front of it when boats land, with no rework — the stage machine is already four slots, and by then Stage 4 will have been live and tuned for months. Third-party boat mods exist, but the server's biggest fight is not built on another mod staying installed and working.
Five further encounters are reserved — Maelstrom Ray, Ancient Carp, King Salmon, Sea Serpent, and one unnamed — and stay undesigned until the Kraken has been built and learned from. What they establish is that the encounter system takes more than one boss, which is the argument for building the stage machine as data rather than as Kraken-specific code.
Assets
This is the Abyssal Covenant, the Mythic rod at the top of the rod table — the actual model file, rendered live rather than a screenshot of it.
Abyssal Covenant — Mythic rod, deep-sea and boss fishing. Seventy-seven cubes on a 128×128 texture. Drag to rotate, scroll to zoom.
Dark ocean wood and salvaged bronze, an abyssal tentacle around the lower shaft, bioluminescent accents, deep-sea bone spines and the Abyssal Eye at the tip. Modelled by PinchiChango.
Everything the community has finished is on the asset list, rendered the same way — that page is the running record of what has been made and who made it.
Rods are the only models
A hundred and twenty components cannot each have an item model and an icon — the texture atlas has a hard ceiling and this would go through it. So rods get real models; everything else does not. Two or three generic parts cover the other five slots visually, and reels, lines, hooks, lures and bait live as stat modifiers in the tackle screen where their names and numbers are what matter anyway.
That takes the modelling job from a hundred and twenty items to about twenty-three, which is the difference between a burden and a project. It also puts the art budget on the one item players actually see — the one held in their hands.
There is now a second held item: the Bait Trowel, for turning over ground to find bait. It ships on vanilla's crude-shovel model so nothing was blocked on art, but it is on the asset list as a replacement — something smaller and more hand-made than a shovel, the sort of thing kept in a tackle box rather than a tool rack.
Reuse Hytale's own textures. This runs on the engine's assets, and sampling the existing palette is what will make a community-made rod sit next to a vanilla item without looking imported. Matching the palette is a feature, not a shortcut. Rod colours follow the lore rather than the recipe, too — the tiers are themed rather than material-based: cedar that bends with the current, iron bands over old pine, a grip that stays cold beside a fire, blue crystal that flickers before thunder.
The engine wants .blockymodel, and models have already been built to the
wrong asset type and had to be redone. Two people are modelling without a written spec; a
short note on format, scale, pivot and texture size would save more work than it costs to
write.
Build Order
No dates and no release to plan around — this is a plugin for one server. The ordering exists for two reasons: the first playable version should already fix the loudest complaints, and nothing later should mean going back and reshaping the data. Phases 1 to 3 are the core; 4 to 6 are what gets added while people are already fishing.
| Phase | Contents |
|---|---|
| 1. Vertical slice | Rod, cast and fight, bobber, bite feedback, the tension minigame, the vanilla thirty as the catalog, size and weight rolls, per-fish stats, the cooler, fight HUD, records, and fishing XP into MMOSkillTree. The cooler is here rather than late precisely because every fish carries stats — it is not a convenience feature, it is the inventory. |
| 2. Depth | All eighty species with biome, zone, time, weather, depth and body-size gating, and the tuning multipliers underneath. Encyclopedia with server records, discovery XP, junk and treasure, the vanilla trap extended with our bait, and the fishing skill tree. The multipliers land here because phase 4's events are built out of them. |
| 3. Tackle | The component catalog, broadly whole and across every stage — rods with real models, the other five slots as tackle-screen modifiers — plus the tackle screen with live/dormant passive states, durability and repair, bait crafting, Angler Modifier sockets, and the crude starter rod on its simpler no-minigame style. Unlock conditions start plain and are replaced by their authored versions as those get written. |
| 4. Social and events | Weekly leaderboards, the rotating species challenge, ad-hoc tournaments with announcements, the fishing shop and its currency, titles, crates, server-first claims — and the named events, which by this point are data on top of phase 2's multipliers rather than new code. |
| 5. Long tail | Freezer, cooking recipes and buff meals, trophy mounts, tank blocks, species mastery, fishing quests through QuestLines Core. |
| 6. Encounters | Special catches — "Something enormous has taken the bait..." — reusing the fight loop with a harder profile. Then the Leviathan, and the Kraken around it. |
Credits
Designed in the open in #landclaim-fishing-wishing. Most of what is on this page came from someone other than the person writing it.
| Contributor | Brought |
|---|---|
| PinchiChango | The component catalog, the species sheet, the events table, the Kraken encounter, size and trophy classes, weekly leaderboards, species mastery, habitat gating, the Angler Journal — and the first finished rod model. |
| Mintomalous | Bite feedback, the tension-and-stamina fight, the crude rod as its own simpler style, bait shown on the rod, difficulty options, aquariums and display, skill-cost durability, bait crafting, and rod models. |
| ODDMANGAMING | The fight as the fun part — tension against fish stamina, jumps and runs, line-length control. Fishing apparel and tackle, water that gets richer the more it is worked, derbies and community frenzies. |
| Jeerood | Per-world tuning multipliers, and the observation that events are those multipliers with a name on them. The compendium, upgradable rods, lures, location-specific fish, treasure. |
| Wander | Gutting fish for materials, rarity-tiered recipes, fishable monsters, hostile oceans. |
| Evil2fish | Size-dependent difficulty, environment and time gating, minimum water-body size, selectable reel styles. |
| swiftlyfalling | Keeping the floor low — one rod, one bait, cast anywhere — auto-routing to the bag, and tournaments. |
| JFP GG | Spear fishing as the stage before rods, and the bait-consumed notification. |
| D.Elena, Jormy, Megapile | Prizes and XP rewards, rod augments, storm atmosphere. |
| RedStoner | The camera-follows-the-bobber cast, the fisher NPC with daily quotas, catch events, and the feasibility calls throughout. |