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 possible variants.

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

$$, fish spawn underwater at 12-32 blocks away from the player. Tropical fish spawn only in warm ocean biomes, in groups of 3-5 for the same preset pattern, and in groups of 1-3 for a 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

 * 1.
 * 1 (5% chance)
 * 1–2 s (25% chance)
 * 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.

Java Edition
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. The color black does not appear on any naturally-spawned tropical fish. These result in 2,700 naturally-occurring combinations.

Tropical fish can be summoned 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.

Bedrock Edition
Tropical fish do not have common varities $$. Instead, all tropical fish use randomly chosen patterns, sizes, and colors (except black).

Names
Tropical fish variants in buckets have names that are assigned based on their colors and type. $$, the names are in the name of the bucket, giving names like "Bucket of Plum Blockfish", "Bucket of Sky-Orange Snooper", or "Bucket of Orange-Lime Dasher". $$, the type and colors are displayed as item tooltips.

$$, some colors use different names from what they normally use (the number in paranthesese is the color id; see § Entity data):
 * (3)
 * (6)
 * (8)
 * (9)
 * (10)

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

The fish type is determined according to the shape and pattern of the fish:

Some varieties of tropical fish don't follow the normal naming system; instead, they reference real-life fish species. $$, these unique fish are limited to the 22 common varieties. $$, there are also 22 uniquely-named tropical fish, though they are not all the same as $$. These uniquely-named tropical 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.