Tropical Fish

"You're not the only new explorer of the updated oceans, mind. We've filled the seas with new types of fish! Above is the delightful pufferfish, which filled me with delightful poison because I was too busy taking that screenshot to swim away in time :("

- Tom Stone

Tropical Fish are common passive mobs found in oceans. There are 3,584 variants.

Spawning
Fish spawn underwater at 12-32 blocks away from the player.

$$, tropical fish spawn in lukewarm, warm, deep lukewarm and deep warm oceans in groups of 8, with random patterns (see below).

$$, tropical fish spawn only in warm and deep warm ocean biomes, in groups of 3-5 for the same preset pattern, and in groups of 1-3 for random pattern. In addition, tropical fish only spawn on the surface (i.e., there must not be a spawnable block above the spawn location with a non-solid block on top).

Drops
Tropical fish drop 1 of their item form when killed:


 * 1.
 * 1 (5% chance)
 * 1–2 s (25% chance)
 * 1–2 orbs when killed by a player or tamed wolf.

Behavior
Tropical fish tend to swim in schools of fish (a maximum of nine tropical fish per school).

The player may collect a fish by a water bucket on it, which gives the player a bucket of fish. Fish placed with buckets do not despawn naturally. When that fish bucket is against a block, it empties the bucket, placing water with that fish swimming in it. An empty bucket may be used as well.

Weaknesses
Tropical fish cannot survive out of water. Outside of water, they flop around like guardians for a while until eventually they suffocate and die like squid. In Bedrock Edition and Legacy Console Edition, they rotate when flipping. Fish cannot swim or breathe in cauldron water.

Fish have a weakness to weapons that have the Impaling enchantment, which also affects squid, turtles, guardians, elder guardians and dolphins.

Varieties


When tropical fish spawn in the wild, 90% of the time they appear as one of the 22 varieties seen on the right, and the other 10% of the time their patterns, size and colors are completely random, drawn from any of 2 shapes, 15 colors, 6 patterns, and 15 colors for the pattern. These result in 2,700 naturally-occurring combinations.

With commands, the player can summon tropical fish with black as one or both of their colors, and/or without any visible pattern, though even without the pattern they can still have a pattern color, causing a further 884 possible combinations, 480 of which look the same due to the missing pattern.

Names
Tropical fish also have assigned names which can be seen after capture, so that the buckets are given names like "Bucket of Plum Blockfish", "Bucket of Sky-Orange Snooper" or "Bucket of Orange-Lime Dasher" in, while the types and colors are seen as tooltips in. Their colors are mostly named according to the colored block names, though with a few exceptions (the number in brackets is the color id; see ):


 * (0)
 * (1)
 * (2)
 * (3)
 * (4)
 * (5)
 * (6)
 * (7)
 * (8)
 * (9)
 * (10)
 * (11)
 * (12)
 * (13)
 * (14)

The base color is first, and the pattern color is next if it is different.

The fish bucket is given a name according to the shape and pattern of the fish:

Some varieties (mostly the common varieties) of tropical fish don't follow the normal naming system, and instead reference real-life fish species. Apart from these names, these types of fish aren't different from regular tropical fish in terms of design or behavior.

These varieties are:

ID
Java Edition:

Bedrock Edition:

Entity data
Pufferfish and tropical fish have additional entity data, beyond what other fish have.

The fish sizes and patterns are depicted in the following table, with white body color and dark gray pattern color.

The 22 varieties of tropical fish most commonly found throughout the world have  tag values from the following table, which also lists what color/shape/patterns come from that value.

The variant number is the sum of the most significant byte &times; 224 + second most significant byte &times; 216 + second least significant byte &times; 28 + least significant byte.