Playing on my Nintendo Switch.
In Creative Mode I have made water areas of various sizes, using different methods to fill them with water: carefully dumping a bucket of water on each empty block, creating a raised 1 block deep area and then breaking the floor out from it, etc.
Whenever I add fish to the water, they drop to the lowest level possible and stay there, even if it's tiny. See attached screen shots
Linked issues
is duplicated by 1
Attachments
Comments 6
Is this still an issue in the latest version? If so, can you please add it to the affected versions (or mention it if you are not the reporter).
This ticket will automatically reopen when you reply.
Updated.
Yes it does. I am running a few more tests. I think water behaves really weird, even for Minecraft Physics (tm). But I've got more of a hang of it and want to figure out some more.
So I spent some time playing with this in creative mode last night. I'll upload some pictures if you feel they are necessary.
I started experimenting with a 2(w) x 9(l) x 4(h) block open space (interior measure) surrounded by glass (but no roof) so I could see the inside. I put water along the entire top, then to make sure it was all source blocks, I grew kelp up through it all, then cut the kelp down. This is how I've done bubble elevators in the past, so I'm confident it works.
Then I placed 4 fish in the top level of water (It's all with tropical fish, so assume that when ever I talk of fish)
The fish didn't block each other, but they did go to the bottom and stay there. They did (rarely) move up to the second block, though. So I added a fifth block to the height. The fish are still disposed to the bottom most block, but would occasionally rise to block 3.
My conclusion is that one behavior of tropical fish, at least if the player places them, is that they avoid the top two blocks of depth in a given volume of water.
Wondering if crowding could be an issue, I added 1 fish at a time, pausing to observe behavior between each, until I reached 18 fish total (the number of water source blocks on each level. The behavior remained unchanged. There were some blockages, but it was more like a traffic jam than being stuck in place. The fish could get unblocked and often did.
One observation is that it is possible for more than one to occupy a block , at least if they are moving. However, if they have a head-on "collision" they have a bit more difficulty getting out of each other's way. They won't enter a block with another fish in it if they're both not moving. Or maybe if only one or they other, but they start to get jammed when this happens. If there's too many, they get clustered up doing this.
But there's something else very weird going on.
My original plan was to make a room where the walls were fish a big fish tank. So my next step was to change this wall structure and make it a square with a hollow center. Each side of the square was 2 (w) x 9 (l) x 5 (h) interior measure. Using the same method as above, I made sure each block was a water source. Then I broke the glass blocks separating the original wall from the new part of the structure. I did not add more fish.
The fish spread around the whole square, but began to get jammed next to the corners. Note, it wasn't in the 2x2 space shared by joining walls, it was right next to these spaces. They fell into 3 unequal clusters and stopped being able to free themselves.
I don't know what about the shape of the container changes this, but it's weird.
Weirder still is when I blocked off the corners with glass blocks to return one of the sides back into a 2x9x5 volume – the fish did not unblock each other. Even if I moved through them to scatter them, they went right back. At this point, I removed a block from the bottom, and the fish tried to go into the newly opened space.
I killed several fish to see if that would unblock the rest, but it did not. Once jammed, they stay jammed.
Side note that feels related: in a survival world I have made a big glass cube in a warm ocean biome where there is 2 blocks of water between the roof and the surface. Tropical fish and octopuses get stuck here a lot, and there's always a half dozen swimming forward at the top edge of the top glass block.
As I said, I've got screenshots of all of this and a little bit of video, but it's on my Switch, so kind of a pain to share. If it will help, I'll make the effort though.
Fish, and I think most water mobs (dolphins being the exception), have coding in their pathfinding to make them prefer being a minimum distance below the surface of the water. The parameters are probably set based on the typical sizes of naturally generated oceans and rivers. The issue here seems to be that these parameters do not work well for some player-made aquariums.
, made in 1.18.10, shows fish swimming around in a 20 x 20 x 20 tank and a 20 x 10 x 20 tank. Each tank has 10 tropical fish that were originally spawned near the middle of the tank. It looks like they try to stay in the bottom 2/3 of each tank or about 4 blocks below the surface. They don't hug the bottom or refuse to swim up. However, like natural fish, they only swim up or down at a small angle, so they require a long horizontal space to be able to ascend or descend. It may be that they can descend at a steeper angle than they ascend, and that in a smaller aquarium that makes it harder to ever get up. Another limitation of small aquariums would be that pathing in Minecraft works by targeting and traversing full blocks spaces, so even though fish are small and it looks like they should be able to swim past each other in the same block, the game has not been designed for that up to this point. I'm not sure there's really a bug here so much as a challenge for players in designing fish tanks, but i's up to the developers to say whether there is a bug or reason to tweak the behavior, and whether it's feasible to do so.
The most recent update did not correct this behavior. But playing around gave a bit more data. Moving my character into the squares occupied by the fish disrupts them, and in a small enough space they may move to a different elevation. However, they eventually move back to the lowest point