The waters of Minecraft are bustling with marine life.
The short answer is no: unfortunately, you can’t breed fish in the vanilla version of Minecraft. Although there are various mods like the Breeding Fish Add-on (for Pocket Edition) and Mariculture that do add this functionality, most of them are outdated and thus are not compatible with the latest versions of Minecraft.
However, if your end goal is to be able to keep some fishes around as a pet of sorts, you can actually do so in Minecraft. By scooping fish into a bucket, you can transport them to a different location and they will not despawn. Plus, you can even name them!
Fishes in Minecraft
In Minecraft, fishes are passive aquatic mobs that can only spawn in river and ocean biomes. They can also spawn in player-made bodies of water as long as they are in those biomes. Fish can spawn within 24 to 64 blocks away from the player. However, when the fish was previously caught with a bucket, they will never despawn even if the player goes further than 64 blocks.
Catching a fish with a water bucket lets you keep that fish and they won’t despawn. At all.
If you want to catch and keep fish, you can grab a water bucket (or an empty bucket in Bedrock Edition) and use it on any fish that you like. Once you do that, the bucket will be renamed into a bucket of fish (sometimes changes depending on the name of the fish that you caught). The icon will also be updated to show a bucket with water and the caught fish on it.
Kinds of Fishes and Where to Find Them
Now that you know how to catch fishes, let’s take a look at what kinds of fish you can catch in the open world of Minecraft. There are four main fishes in Minecraft: the cod, salmon, pufferfish, and tropical fish.
A school of cod swimming casually in the lukewarm ocean
The cod is a brown fish that spawns in normal, cold, and lukewarm oceans. For the Bedrock Edition, cod only spawns on the surface.
A school of salmon swimming around
True to their real-life counterparts, salmon in Minecraft are green-spotted red fishes that can spawn in cold and frozen oceans, as well as cold and frozen rivers. They are the only fishes that can spawn in rivers, so you will have more luck finding them there as the sole fishes there. In the Bedrock Edition, they can come in three sizes, namely large, medium, and small.
A lone puffed pufferfish
Pufferfish can spawn in warm and lukewarm oceans. Similar to their real-life counterparts, pufferfish can inflate and damage the player if attacked or threatened, making them the only passive mob that can deal damage.
In the Java Edition, they go from unpuffed, then semi-puffed, then finally fully puffed when threatened by a player or a mob. Going near a semi-puffed or fully puffed pufferfish inflicts poison damage, and touching one inflicts a separate damage. In the Bedrock Edition, they will instead become fully puffed instantly after taking damage. They will deflate as soon as the threat is at least five blocks away.
A school of tropical fish
Tropical fish in Minecraft come in 2,700 naturally-occurring variants, varying in patterns, colors, and size. In Java Edition, 90% of the time they can spawn as one of the 22 unique varieties, which refer to real-life fish species, and then a randomized combination of different sizes, patterns, and colors for 10% of the time. In Bedrock Edition, tropical fish can either spawn as one of 22 preset fish, which are not exactly the same as the one in Java Edition, or a randomized combination.
The tropical fish can spawn in warm and lukewarm oceans, and the name of the bucket when they’re caught is dependent on their variety.
Naming your Fish
You can go to the anvil and name the bucket with the fish.
Despite not being able to tame or breed them, you can actually name fishes in Minecraft. You will need to catch them first using a water bucket, then name the resulting bucket item into the name of the fish using the anvil. The fish will retain that name, even when released from the bucket, making fishes (and axolotls) the only mobs that can be named without a name tag.
Meet Fishy, the Cod!
Note that despite not naming your fish, the caught fish will still not despawn. The fish only needs to be caught in a bucket for it to not despawn naturally. Naming your fish is usually aesthetic.
You could do better than this, but you can make and design an aquarium in Minecraft!
With a bucket of Fishy, you can now release your fish in any body of water and they will never despawn, becoming an aesthetic pet that you can keep around. With this, you can even design an aquarium tank just like the ones in real life, place your aquatic friends inside, and enjoy a piece of the ocean right inside your home.
What About Fishing?
Fishing only gives the food item, if you can get one.
Unfortunately, fishing only grants you the food item that the fish usually gives when they die, since fishing is centered around the concept of hunting for food. You will have to go through the waters and catch them with your bare hands (and water bucket) to be able to keep fishes around.
Now, you get to create an aquarium in Minecraft that is bustling with marine life!