SeagullDigestion
Seagulls actually eat the food they steal and leave a poop behind. Sells for a randomised price, and eating it costs you.Changelog
1.7.1
- Fixed poop landing hundreds of metres away in open water instead of next to you. It was going to the same place every time — the world origin — which in a world spawned on a far island is around 680 m from anywhere you can stand, well outside the part of the map you actually play on. Every digestion left another one out there, they stayed for the rest of the session, and they were written into the save, so a long session quietly accumulated a raft of networked physics items floating outside the play area.
- The cause: How to Fish keeps a player's body on a different transform from the
Playerobject itself. The object is the networking root; the game spawns it straight off the prefab without a position and then never moves it, so it sits at (0, 0, 0) for the whole session while the body you walk around with moves independently. The drop code read the root, so "a few metres from the player" was measured from the origin. It reads the body now — the same one the game's own nearest-player, line-of-sight and position-sync checks all read. - Nothing about this was visible in the log, and it could not be seen from the drop code alone: reading the wrong transform compiles, runs, throws nothing, and quietly hands back the origin.
- Added a sanity check to go with the fix: a drop that would move poop more than 250 m from the seagull that ate it is refused, and the poop is left where the bird was (the pre-1.6.0 behaviour) with a warning in the log. Nothing legitimate travels that far, so if this class of bug ever returns it will be loud instead of silent.
- Poop already stranded out there from an earlier session stays where it is. This release stops new poop going there; it cannot fetch back the old. Sell or destroy any you can reach, or clear them out of the save.
- 1.7.0 was packaged but never released — the drop bug turned up first, so 1.7.0's changes (inert digested weapons, the DisarmWeapons setting) ship here instead. They are listed under 1.7.0 below and are unchanged.
1.7.0
- A gun a seagull digested was still a gun. It kept the orange weapon dot on the HUD, and you could pick the poop up and fire it, reload it, aim down sights with it and swing it — while the model was a turd and the item card said Seagull Poop. Knives, melee weapons and fishing rods behaved the same.
- Digested weapons are now replaced rather than disguised. The weapon is destroyed with the game's usual little puff of smoke and an ordinary item is spawned in its place, and that is what becomes the poop. It was never a weapon, so there is nothing left to fire, reload, aim or swing, and the dot is ordinary white like any other loose item.
- Why it was not simply a new poop item to begin with: the game resolves networked items from a list fixed when the game was built, so a mod cannot add one without an asset bundle that every player in the lobby installs. What it can do is spawn something the game already knows and dress that up, which is what this release does.
- Fish are unchanged. They were already plain edible creatures, so they keep being transformed where they lie — that path has worked since 1.0 and swapping it would only risk it.
- Quest items and boss creatures are never swapped, so digestion can no longer destroy something you cannot get again.
- New setting SwapToRealItem (default on), and ChassisItem for choosing which item the replacement is built from. Leave it empty and the mod picks the lowest numbered ordinary fish itself and writes the choice to the log.
- New setting DisarmWeapons (default on). This is the safety net for anything still transformed in place — a quest item, or a lobby where no ordinary fish could be found. It strips the weapon behaviour so that even then the poop cannot be fired.
- Worth knowing: a swapped weapon is gone for good, exactly as a digested fish is. If you would rather seagulls never touched your guns at all, that was already possible and still is — add them to NeverDigest, or set OnlyFish to true so only fish are ever digested.
- Nothing else about digestion changed: the price roll, the drop near a player, the poison and the eating cost are all as they were.
1.6.1
- Fixed a per-frame
ArgumentNullException/lag spike that could start once a seagull got killed or despawned while it was still digesting stolen food — a heavily armed lobby (modded guns one-shotting seagulls, or a mod spawning a lot of roaming seagulls at once) made this much more likely to hit. The digestion timer never cleaned up that seagull's entry, so the mod threw the same exception on every single frame from then on — the classic "lag from log spam" pattern, not an actual performance problem. Also fixed a relatedInvalidOperationExceptionthat could fire right as an item finished digesting, if another seagull grabbed it in that same instant. - No other behaviour changes.
1.6.0
- Poop now lands near a player instead of wherever the bird happened to be
flying - previously it could come down out over open water or off in the
distance where nobody would ever find it. It targets the player who was
robbed by default, falling back to whichever player is nearest the bird if
that player has disconnected or died, and drops from a few metres up so it
visibly falls in rather than popping into the grass. New
DropNearPlayer(on by default),TargetVictim,DropRadius, andDropHeightsettings; turnDropNearPlayeroff to go back to the old wherever-the-bird-is drop. - Fixed a stolen fishing rod digesting into a warped, oddly placed blob instead of a normal poop. Tools and weapons keep two separate model rigs under the hood - one for the first-person hand view, one for lying in the world - and only one is ever active at a time. The poop-sizing code was reading both, inactive one included, so a rod's held-view geometry (built for a camera a few centimetres away) was blended into the same measurement as its world model. It now only measures whichever rig is actually showing.
- The fishing line and any trail effect are now hidden along with the rest of the item's renderers, instead of being left running on top of the poop.
- New
NeverDigestsetting: a comma separated list of things seagulls will never digest, matched by prefab name, display name, or numeric item id - same convention as GreedySeagulls' ownNeverSteal. Empty by default, so nothing is excluded unless you ask for it.
1.5.2
Housekeeping only — no gameplay change. The 1.5.1 balance fix is untouched and behaves identically.
- The version history moved out of the README into this file, so Thunderstore shows it on its own Changelog tab instead of burying it at the bottom of the page.
- Needed its own version because a Thunderstore release can never be edited or re-uploaded; the notes only reach the site attached to a new package.
1.5.1
- Fixed a balance of -$2,147,483,648 after selling poop. Selling at a negative price took the balance below zero, which is harmless on its own — but How To Fish - Extended reads any negative balance as proof that a payout wrapped past the integer limit, and "restores" it to $2,147,483,647. The next sale of anything positive then genuinely overflowed. The balance is now held between $0 and the limit, so neither half of that loop can start.
- Poop keeps its negative prices; a sale simply stops at $0 instead of going under.
- Payouts are bounded at the top too, so nothing else can push the balance past the limit either.
- New
ClampBalancesetting, on by default. There is no good reason to turn it off.
(1.3.2 and 1.4.x were internal builds and never released.)
1.3.1
Version bump only; 1.3.0 was already published and Thunderstore never allows re-uploading a version.
1.3.0
- The poop model is sized from the item it replaced instead of a fixed world
size, and capped, so it no longer fills the screen when held.
Scaleis now a multiplier around that fitted size; 1.0 is the new default. - The inventory icon uses the same mesh as the world model.
1.2.0
- Eating poop drains fullness, deals the unpayable remainder as damage, and always poisons you.
- Fish Effects no longer grants poop a timed effect, Drip luck, or an effect line.
1.1.0
- Fixed white poop: the game's custom item shader takes albedo from a texture, so a fresh material rendered untextured white. The original material is now cloned and its albedo map replaced.
- Sell price rolled per poop, encoded into the SyncVar that marks the item.
- Seagulls no longer target poop, and take a cooldown after eating.
