A single-screen aquarium management game. Fill a tank with fish, earn resources, avoid disaster, and collect three Crown Fish before the days run out.
Finbred is a browser-based strategy game about running an increasingly chaotic aquarium. Each day you draw fish from your personal Ocean deck, watch them swim around your tank, and then close the day to collect earnings. Those earnings let you buy more fish and expand your tank over the course of up to 30 days.
The catch: some fish pollute the water. If ammonia builds up too fast, the tank crashes and you lose your income for the day. Bigger tanks, clean fish, and smart purchasing get you to the goal β three Crown Fish swimming in the tank at the same time.
PLAY ONLINE: https://jacobbates.github.io/finbred/
- Overview
- How to Play
- The Day Cycle
- Win & Loss Conditions
- Game Mechanics
- Scenarios & Seeded Runs
- Fish Roster
- Traits and Abilities
- Activity Log & Charts
- Player Statistics
- Choose a scenario from the setup screen and press Start Game.
- You begin with an Ocean deck of 10 fish (4 Guppies, 4 Goldfish, 2 Crabs) and a tank with capacity for 5.
- Press Go Fish! to draw the top card from your Ocean deck into the tank. Fish immediately start swimming.
- Once you are happy with your tank for the day, press End Day to score income and move to the Hatchery. You can end the day at any point β if ammonia is climbing dangerously, ending early before drawing another fish could save you from a tank crash and a wasted day.
- In the Hatchery, spend your π₯ Eggs to buy new fish for your deck and π Shells to expand your tank.
- The next day begins with an empty tank β all fish from yesterday (including any that were eaten or poked out) return to your Ocean deck and are reshuffled.
- Repeat until you win, lose, or the days run out.
Every run follows the same rhythm:
The tank is empty at the start of each day. Press Go Fish! to draw fish one at a time from your shuffled Ocean deck. You can draw as many fish as your tank capacity allows. Fish with active abilities (shown with a glowing outline) can be clicked to use their ability once per day.
Note: Some abilities summon Transient Fish β these are temporary guests that swim in your tank for the current day only and are not added to your permanent deck.
Press End Day to trigger scoring. Each fish in the tank produces its base Egg and Shell yield plus any bonus from their special ability. A breakdown of every fish's contribution appears in the Day Summary. If the tank crashed during the day (see Ammonia), no income is earned.
A Clean Tank Bonus of +1 π Shell is awarded if ammonia is at zero when the day ends.
After scoring, all fish return to your Ocean deck (including any that were eaten or removed during the day β there is no permanent fish death). The Hatchery shop opens and you can:
- Buy fish β spend π₯ Eggs to add a new fish permanently to your Ocean deck.
- Expand tank β spend π Shells to increase your tank capacity by 1 slot (cost scales up each time).
Once you are done shopping, the next day begins.
Collect any 3 π Crown Fish in the tank simultaneously at the end of any day.
Crown Fish are the rarest and most expensive fish in the game, identified by a crown icon in their description. You win the moment you end a day with 3 or more Crown Fish in the active tank β this can be any combination of three different Crown Fish, or even three of the same kind.
Costs, movement, and abilities for all Fish are listed in full in the Fish Roster below.
Reach Day 30 without achieving the win condition.
If Day 30 ends and you do not have 3 Crown Fish in your active tank, the run ends in defeat. Once the run concludes you can review your tank, consult the activity log to trace your decisions day by day, and examine the performance chart to see where your economy stalled or where crashes cost you. Use those insights to set yourself up for a stronger attempt next time.
Income is earned at the end of each day. Both currencies carry over between days and have a 50 unit cap.
| Feature | Details |
|---|---|
| π₯ Eggs | Earned from fish daily income. Spent on buying fish in the Hatchery. |
| π Shells | Earned from fish daily income. Spent on expanding tank capacity. |
| Capacity | Start at 5 slots, max 40. Expansion cost scales with each level. |
| Oversized | Most fish use 1 slot. Sperm Whales use 2. Amphibians use 0. |
| Corpses | Predator-eaten fish leave fish bone corpses that float to the surface. |
Certain fish produce ammonia when drawn into the tank β shown as a rising β£οΈ indicator in the stats bar.
- How it Works: Some fish add +1 β£οΈ Ammonia. If it reaches 3, the tank crashes.
- The Crash: An ALGAE BLOOM or OVERLOAD (going over capacity) alert appears.
- The Penalty: No income is earned for the rest of that day and you cannot draw more fish.
- Recovery: All fish survive and returned to your deck for the next day. Ammonia resets to 0.
Ammonia is the central danger of Finbred. Certain fish produce ammonia when drawn into the tank β shown as a rising biohazard indicator in the stats bar.
- Some fish add +1 β£οΈ Ammonia to the tank when drawn.
- If ammonia reaches 3, the tank immediately crashes.
- Certain fish reduce ammonia when drawn (Sea Snail: β1, Pleco: clears all).
- Ammonia resets to 0 at the start of every day.
When a crash occurs:
- An ALGAE BLOOM alert appears and the tank view darkens.
- No income is earned for the rest of that day β all fish contributions are forfeited.
- Fish can no longer be drawn for the remainder of the day.
- You must still press End Day to continue. The fish all survive and return to your deck tomorrow.
A second crash condition exists β a TANK OVERLOAD β which triggers with the same result: no income that day. This happens when:
- The number of fish in your tank exceeds your current capacity, which can be caused by:
- A summon ability (like the Penguin) firing when the tank is already full.
- A fish with the Double Size trait (Sperm Whale) being drawn into a tank with only 1 slot remaining.
All ammonia-producing fish are identified by a +1 value in the Ammonia column of the Fish Roster below.
Select your starting deck and Hatchery pool:
| Scenario | Type | Description |
|---|---|---|
| Rogue-Sea | Roguelite | Total chaos. The Hatchery reshuffles fresh every single day. |
| Random-Draft | Draft | 8 fish and 2 Crown Fish are locked as your run-long pool. |
| Seeded-Swim | Seeded | Allows you to play a specific seed to retry a scenario. |
| Challenge Runs | Specific | Moby-Deck, Fish-Bones, Neon-Nights, Finding-Fish. |
| All-Fish | Sandbox | The full fish roster is available. Everything, everywhere. |
Enter a 6-digit seed (100000-999999) to replay an exact scenario.
- Even seeds play as a Random-Draft.
- Odd seeds play as Rogue-Sea.
To share your run, switch to the Activity tab in your inventory during a game and press Copy Seed.
Every significant game event is recorded in the Activity Log, viewable from the inventory panel during a run. The log captures:
- Fish drawn (name and current tank fullness)
- β£οΈ Ammonia changes (before and after)
- Tank crashes and the conditions that triggered them
- Ability activations (who used an ability and what happened)
- End-of-day scores (total earned and per-fish breakdown)
- Fish bought in the Hatchery (name and cost)
- Tank capacity expansions
The log can be copied to your clipboard in full from the log panel footer.
The Day Summary chart (accessible from the Chart tab in the Day Report modal) plots your run's performance over time. It tracks:
- π₯ Egg and π Shell yield per day
- Cumulative π₯ Egg and π Shell stash
- Tank capacity growth
- β£οΈ Ammonia level and crash days (highlighted)
- Fish drawn per day and total deck size
The chart gives you a visual read of how your economy is developing and where crashes are costing you income.
All fish, their cost, base daily yields, ammonia contribution, and special abilities are listed below. Fish not marked as Crown Fish have a maximum deck limit.
Daily values marked +? are dynamic β the amount varies depending on conditions in the tank at the time of scoring (e.g. ammonia level, number of other fish, presence of corpses). See the Ability column for details.
Legend: π° Cost (Eggs) | π₯ Daily Eggs | π Daily Shells | β£οΈ Ammonia | β‘ Action Trait
| Fish | π° | π₯ | π | β£οΈ | Description | Ability | |
|---|---|---|---|---|---|---|---|
| Guppy | Free | +1 | β | +1 | Free, but poops a lot? | β | |
| Goldfish | 2 | +1 | β | β | A safe and reliable friend. | β | |
| Crab | 3 | β | +1 | β | Digs around for Shells. | β | |
| Neon Tetra | 4 | β1 | +2 | β | Eats Eggs, finds Shells. Simple. | β | |
| Sea Snail | 4 | +1 | β | β | Eats a unit of ammonia on entry. | Clean (-1) | |
| Clamdestine | 5 | +? | β | β | Rewards your unused tank capacity with Eggs. | Pearl | |
| Clownfish | 5 | +? | -1 | β | Bonus +5 Eggs if tank is full. Not funny. | Comedian | |
| Salmon | 5 | +2 | β | β | Summons ANY common, transient fish on entry. | Summon Any | |
| Shrimp | 5 | +1 | +? | β | Earns +2 Shells per ammonia level on scoring. | Scavenge | |
| Turtle | 5 | +? | β | β | +2 bonus Eggs for each Goldfish on scoring. | Socialite | |
| Ammonite | 6 | +2 | β | β | Has foresight to peek the next fish. Inedible. | Foresight β‘ | |
| Anglerfish | 6 | +2 | -1 | β | Lures a mess-free fish from the Ocean. | Lure Safe Fish β‘ | |
| Betta | 6 | β | +4 | +1 | High Shells, but makes mess. Betta be careful. | β | |
| Seahorse | 6 | +? | +? | β | Bets on a random fish, mimics it on scoring. | Giddy Up | |
| Starfish | 6 | +? | β | β | Scores exponentially per Starfish in tank. | Rockpool | |
| Zombie Worm | 6 | +? | +? | +1 | Eats bones on entry for instant +3 Eggs, +2 Shells. | Bone Eater | |
| Crab-Eating Frog | 6 | β | β | β | 0 capacity. 50% chance to eat a Crab on entry! | Crab Eater | |
| Pufferfish | 7 | +1 | β | β | Spikes up to poke a fish out of tank! | Poke β‘ | |
| Sea Urchin | 7 | +3 | +2 | +1 | Poisons a fish on entry which dies in 3 draws. | Poison | |
| Electric Eel | 8 | +1 | β | β | Converts 5 Eggs to 5 Shells... electronically? | Transmute Eggs β‘ | |
| Ghostfish | 8 | +? | β | β | Gains +2 Eggs for every corpse in the tank at scoring. | Haunt | |
| Jellyfish | 8 | +1 | -1 | β | Stings a fish to instantly score it. | Sting β‘ | |
| Pleco | 8 | β | β | β | Guzzles all tank ammonia on entry to clean up. | Clean (All) | |
| Seal | 8 | +1 | β | β | Search your ocean to draw a specific common fish. | Searcher β‘ | |
| Blue Tang | 9 | +1 | β | β | Amnesia! Make fish forget they've used an ability. | Amnesia β‘ | |
| Lobster | 9 | β | +3 | β | Big league Shell hoarder. | β | |
| Moorish Idol | 9 | +2 | β | β | Escape plan for tank. Sends all fish back to ocean. | Escape Plan β‘ | |
| Octopus | 10 | -1 | -1 | β | Telekenis! Redraw a fish or blow up crown fish. | Telekinesis β‘ | |
| Piranha | 10 | β | +2 | +1 | Permanently shreds a fish from the tank and ocean. | Shred β‘ | |
| Arowana | 10 | β | +? | β | +2 Shells per Guppy in tank. Motherly instincts. | Matriarch | |
| Flatfish | 10 | β | +5 | +1 | Eats a random fish on entry! Bottom's up! | Eat Random | |
| Narwhal | 12 | β | β | β | Impales a fish on entry. Ivory yields 10 Shells on death! | Impaler | |
| Manta Ray | 12 | β | +? | β | Instantly scores +3 Shells per ammonia and clears it. | Filter Feeder | |
| Dolphin | 12 | -1 | -1 | β | Necromancies all corpses as a clean transient fish. | Necromancy β‘ |
Crown Fish are the rarest and most expensive entries. You need 3 in the tank simultaneously to win. They have no deck limit.
| Fish | π° | π₯ | π | β£οΈ | Description | Ability | |
|---|---|---|---|---|---|---|---|
| Sunfish | 30 | β | β | +? | Fickle... may or may not secrete ammonia? | Fickle | |
| Kraken | 32 | β | -3 | β | Eats into your Shells, but can double them! | Gambler β‘ | |
| Penguin | 34 | β | β | β | Summons a random ocean fish on entry! | Summon | |
| Axolotl | 35 | β | β | β | 0 capacity. Regenerates when attacked, leaving a corpse. | Autotomy | |
| Great White | 36 | -2 | β | +1 | Eats a random fish on entry! Inedible, inevitable. | Eat Random | |
| Sperm Whale | 38 | β | β | β | Uses 2x tank capacity. Who says size matters? | Double Size | |
| Sea Dragon | 40 | β | -2 | +1 | Search for ANY common, transient fish. | Finder β‘ |
| Name | Function | Description |
|---|---|---|
| Amnesia β‘ | Click to target a fish. Reactivates a consumed active ability, otherwise does nothing. | Lets you reuse a clickable ability that a fish has already spent today. |
| Amphibian | Does not consume tank capacity. A free draw! | This fish takes up zero space in your tank, letting you draw it without using a capacity slot. |
| Autotomy | Survives predation. Sheds a corpse when attacked but regenerates. | When targeted by a predator, this fish drops a corpse as decoy bait but survives the attack and keeps on swimming. |
| Bone Eater | Consumes a fish corpse upon entry, instantly scores +3 Eggs and +2 Shells. | Cleans up a floating fish bone from the tank when drawn, immediately rewarding you with Eggs and Shells. |
| Clean (β1) | Reduces tank ammonia by 1 unit on Entry. | Purifies the water when drawn, giving your tank a bit more breathing room from an ammonia crash. |
| Clean (All) | Instantly clears all tank ammonia on entry. | Completely filters the entire tank, wiping out all accumulated ammonia the moment it hits the water. |
| Crab Eater | 50% chance to eat a Crab in the tank on entry. | Gobbles up a random Crab when drawn, turning it into a corpse -- but only half the time. A risky gamble for Crab-heavy decks. |
| Comedian | Bonus +5 Eggs if the tank is full on scoring. | Brings in a big crowd, earning a massive bonus of Eggs at the end of the day if every single capacity slot in your tank is full. |
| Double Size | Fish consumes an additional unit of tank capacity. | Takes up far more space than a normal fish, requiring two tank capacity slots instead of one. |
| Eat Random | Eats a random fish upon entry and removes it. Fish resurrect next day. | Devours another random fish as soon as it enters the tank, leaving behind a fish bone corpse. |
| Escape Plan β‘ | Empties all fish from the tank back into your deck for a redraw. Does not refresh used active abilities. | Evacuates your entire tank back into your deck so you can safely draw a fresh batch of fish without ending the day. |
| Fickle | Random selects if adds or removes to Ammonia level on entry, paired with AMMONIA Trait. | Unpredictably decides whether to pollute your tank with ammonia or keep it perfectly clean when drawn. |
| Filter Feeder | Clears all ammonia and instantly banks +3 Shells per unit cleared on entry. | Vacuums up all the dangerous ammonia in your tank, converting every unit cleared directly into Shells. |
| Finder β‘ | Select any available non-crown fish to draw as a transient. | Lets you choose and draw any common fish from the entire roster for today, which then vanishes without cluttering your deck tomorrow. |
| Foresight β‘ | Peek at the next fish in the deck. Choose to draw it or reshuffle the ocean. | Lets you peek at the very next fish in your deck and choose whether to draw it or reshuffle the ocean. |
| Gambler β‘ | Gamble all stashed Shells on red or black. Win doubles them, lose resets to zero. | Bets your entire stash of Shells on a coin toss, either doubling your money or losing it all. |
| Giddy Up | Copies the scoring potential of a randomly selected fish in the tank. | Copies the exact daily earnings of whatever fish it decides to team up with when drawn into the tank. |
| Haunt | Gains +2 Eggs for every fish corpse in the tank on scoring. | Thrives on disaster, earning extra Eggs at the end of the day for every fish bone corpse floating in your tank. |
| Impaler | Impales a random fish on entry. Fish resurrect next day. | Skewers another random fish as soon as it enters the tank, leaving behind a fish bone corpse. |
| Ivory | +10 Shells when this fish is removed from the tank. | When this fish is killed or removed by any means, you receive a bonus payout of Shells from its valuable ivory. |
| Lure Safe Fish β‘ | Lures a random safe fish from the ocean to the tank. | Safely pulls a clean fish out of your deck into the tank, completely avoiding the risk of accidentally drawing an ammonia producer. |
| Matriarch | +2 bonus Shells for every Guppy on scoring. | Rewards a Guppy-heavy strategy, earning extra Eggs for every Guppy swimming in the tank at the end of the day. |
| Necromancy β‘ | Click to replace all Fish Corpses in the tank with ANY random safe common fish. | Resurrects every floating fish bone in your tank, transforming them into a random assortment of clean, temporary fish. |
| Pearl | Earns +1 Egg for every completely empty capacity slot on scoring. | Rewards a minimalist approach, earning bonus Eggs for every empty spot remaining in your tank at the end of the day. |
| Poison | Poisons a random tank fish on entry. The poisoned fish dies after 3 more fish are drawn. | Infects a random fish in the tank, causing it to die and leave a corpse after three more fish are drawn. |
| Poke β‘ | Pokes fish from tank and removes it. Fish resurrect next day. | Harmlessly ejects a problem fish from the tank back into your deck for the rest of the day. |
| Rockpool | Scores exponentially per Starfish in tank on scoring. | Scales up its earnings based on how many friends it has, multiplying its payout for every other Starfish on the board. |
| Scavenge | Earns +2 Shells per ammonia level on scoring. | Feeds on grime, bringing in extra Shells at the end of the day for every notch of dangerous ammonia in your tank. |
| Searcher β‘ | Select any fish from your ocean deck to draw. | Lets you dig through your deck and pick the exact fish you need right now to avoid risking a random draw. |
| Shred β‘ | Target a fish to permanently exile it from deck, leaves behind a corpse. | Permanently tears a weak or unwanted fish out of your deck forever, leaving a bone corpse behind in the tank. |
| Socialite | +2 bonus Eggs for every Goldfish on scoring. | Loves swimming in a crowd, generating an extra Egg for every Goldfish happily swimming alongside it. |
| Sting β‘ | Pick a fish to bank its score instantly. Target also scores at end of day. | Jolts another fish to instantly collect its daily earnings right now, while still letting it earn again at the end of the day. |
| Summon | Summons another random fish on entry. | Immediately drags the next fish off the top of your deck into the tank alongside it for free. |
| Summon Any | Summons any random transient common fish on entry. | Magically pulls a completely random fish from outside your deck into the tank for today only. |
| Telekinesis β‘ | Click to target a fish and retrigger its entry ability. Targeting itself creates a corpse. | Hurls a fish around the tank to re-trigger its entry effect, or forcefully explodes its mind to remove it entirely. |
| Transmute Eggs β‘ | Activate to instantly transmute 5 Eggs into 5 Shells. | Instantly melts down a pile of stored Eggs and converts them directly into valuable Shells. |
Finbred saves your career statistics automatically to your browser's local storage. These persist across runs and sessions and are viewable from the Player profile button in the top navigation bar.
| Statistic | Description |
|---|---|
| First Played | The date of your very first game session. |
| Last Played | The date of your most recent session. |
| Total Games Played | Number of runs started. |
| Total Games Won | Number of runs where 3 π Crown Fish were collected. |
| Total Games Lost | Number of runs that ended in defeat on Day 30. |
| Rogue-Sea Wins | Wins specifically achieved in Rogue-Sea mode. |
| Random-Draft Wins | Wins achieved in Random-Draft mode. |
| Scenario Clears | Individual cleared/uncleared status for each Challenge scenario. |
| Highest EoD Yield | Your record single-day π₯ Egg and π Shell earnings. |
| Largest Ocean | The largest total deck size (tank + ocean + removed) reached in a single run. |
| Total Fish Bought | Cumulative fish purchased across all runs. |
| Total Fish Drawn | Cumulative fish drawn into the tank across all runs. |
| Total Fish Removed | Cumulative fish evicted or eaten across all runs. |
| Total Tank Crashes | Total number of β£οΈ ammonia or overload crashes across all runs. |
Statistics are not recorded and are invalid for any runs played with Debug Mode enabled.
Icons in Finbred are delivered via Iconify and include assets from the following creators who require attribution:
- Boxicons by Atisa (CC BY 4.0 License)
- EmojiOne Monotone by JoyPixels (Attribution Required)
- Font Awesome 6 Solid by Fonticons, Inc. (CC BY 4.0 License)
- Game-Icons by Game-icons.net contributors (CC BY 3.0 License)
- Hugeicons by Hugeicons (Attribution Required)
- Streamline by Streamline (CC BY 4.0 License)
