Axolotls, dolphins, baby turtles, and pregnant frogs on land will not move to 1-block deep water
Note: this bug also affects any custom mobs that use behavior.move_to_water
Steps to reproduce
- Load move_to_water.mcworld
. It contains a long canal along which are test areas for this bug (grassy end) and MCPE-165109 (muddy end). The lever on the command block at the middle of the canal toggles the canal between 1 block deep and 2 blocks deep. The row of command blocks at each test area will spawn a dolphin, an axolotl, a baby turtle, and a pregnant frog. (Note: the frog spawns with the components for pregnant behavior, but not the is_pregnant bit, so it will not create frogspawn.) - Set the canal to 1 block deep.
- Press the button on the command blocks at the grassy end of the canal.
- After a minute or so, toggle the canal to 2 blocks deep.
- Press the button on the command blocks at the grassy end of the canal, again.
Expected result
After both steps (3) and (5) the mobs all start moving toward the canal within a few seconds.
Observed result
After step (3) the turtle freezes and the other mobs move randomly. After step (5) the axolotl, baby turtle, and pregnant frog move toward the water. The dolphin has an overriding issue reported at MCPE-181125 and can be ignored until that is fixed.
Linked Issues
testing discovered1
is duplicated by2
Created Issue:
behavior.move_to_water only finds water in ocean biomes
The behavior component, "minecraft:behavior.move_to_water" only looks for water in ocean biomes. This has 3 negative gameplay impacts:
- Baby turtles freeze if they hatch too far from an ocean. (This relates to MCPE-114206 because the baby turtles probably also continue checking for ocean ocean water ever tick.)
- Baby turtles hatched in an enclosure that happens to be near an ocean constantly try to escape, even if other water is available inside the enclosure.
- It is not viable to give other mobs a behavior of moving toward water with a behavior pack. For example, following up on
MCPE-122035I made a behavior pack to make fishermen path to water during their work day similarly to how librarians inspect bookshelves and farmers harvest crops. It works if the water is in an ocean biome, but otherwise it does not work.Steps to reproduce
- In a flat world, make a sand floor and place sea turtle eggs on it.
- Make a water pool near the turtle eggs.
- Wait for the turtle eggs to hatch. (Increase randomtickspeed to speed this up.)
Expected result
The baby turtles move into the water.
Actual result
The baby turtles do not move.
The behavior component, "minecraft:behavior.move_to_water" only looks for water in ocean biomes. This has 3 negative gameplay impacts:
- Baby turtles freeze if they hatch too far from an ocean.
(This relates toMCPE-114206 because the baby turtles probably also continue checking for ocean ocean water ever tick.)- Baby turtles hatched in an enclosure that happens to be near an ocean constantly try to escape, even if other water is available inside the enclosure.
- It is not viable to give other mobs a behavior of moving toward water with a behavior pack. For example, following up on
MCPE-122035I made a behavior pack to make fishermen path to water during their work day similarly to how librarians inspect bookshelves and farmers harvest crops. It works if the water is in an ocean biome, but otherwise it does not work.Steps to reproduce
- In a flat world, make a sand floor and place sea turtle eggs on it.
- Make a water pool near the turtle eggs.
- Wait for the turtle eggs to hatch. (Increase randomtickspeed to speed this up.)
Expected result
The baby turtles move into the water.
Actual result
The baby turtles do not move.
The behavior component, "minecraft:behavior.move_to_water" only looks for water in ocean biomes. This has 3 negative gameplay impacts:
- Baby turtles freeze if they hatch too far from an ocean. See Frozen baby turtles.mp4
(This relates to MCPE-114206 because the baby turtles probably also continue checking for ocean ocean water ever tick, causing lag.)
- Baby turtles hatched in an enclosure that happens to be near an ocean constantly try to escape, even if other water is available inside the enclosure.
- It is not viable to give other mobs a behavior of moving toward water with a behavior pack. For example, following up on
MCPE-122035I made a behavior pack to make fishermen path to water during their work day similarly to how librarians inspect bookshelves and farmers harvest crops. It works if the water is in an ocean biome, but otherwise it does not work.Steps to reproduce
- In a flat world, make a sand floor and place sea turtle eggs on it.
- Make a water pool near the turtle eggs.
- Wait for the turtle eggs to hatch. (Increase randomtickspeed to speed this up.)
Expected result
The baby turtles move into the water.
Actual result
The baby turtles do not move.
The behavior component, "minecraft:behavior.move_to_water" only looks for water in ocean biomes. This has 3 negative gameplay impacts:
- Baby turtles freeze if they hatch too far from an ocean. See Frozen baby turtles.mp4
(This relates to MCPE-114206 because the baby turtles probably also continue checking for ocean ocean water ever tick, causing lag.)
- Baby turtles hatched in an enclosure that happens to be near an ocean constantly try to escape, even if other water is available inside the enclosure.
- It is not viable to give other mobs a behavior of moving toward water with a behavior pack. For example, following up on
MCPE-122035I made a behavior pack to make fishermen path to water during their work day similarly to how librarians inspect bookshelves and farmers harvest crops. It works if the water is in an ocean biome, but otherwise it does not work.Steps to reproduce
- In a flat world, make a sand floor and place sea turtle eggs on it.
- Make a water pool near the turtle eggs.
- Wait for the turtle eggs to hatch. (Increase randomtickspeed to speed this up.)
Expected result
The baby turtles move into the water.
Actual result
The baby turtles do not move.
The behavior component, "minecraft:behavior.move_to_water" only looks for water in ocean biomes. This has 3 negative gameplay impacts:
- Baby turtles freeze if they hatch too far from an ocean. See Frozen baby turtles.mp4
(This relates to MCPE-114206 because the baby turtles probably also continue checking for ocean ocean water ever tick, causing lag.)
- Baby turtles hatched in an enclosure that happens to be near an ocean constantly try to escape, even if other water is available inside the enclosure. For example, I built the enclosure shown below on a flat beach that sits between a swamp and an ocean. The pool inside was intended to give the baby turtles somewhere to go, but instead they constantly try to escape through the doors.
![]()
- It is not viable to give other mobs a behavior of moving toward water with a behavior pack. For example, following up on
MCPE-122035I made a behavior pack to make fishermen path to water during their work day similarly to how librarians inspect bookshelves and farmers harvest crops. It works if the water is in an ocean biome, but otherwise it does not work.Steps to reproduce
- In a flat world, make a sand floor and place sea turtle eggs on it.
- Make a water pool near the turtle eggs.
- Wait for the turtle eggs to hatch. (Increase randomtickspeed to speed this up.)
Expected result
The baby turtles move into the water.
Actual result
The baby turtles do not move.
relates to
The behavior component, "minecraft:behavior.move_to_water" only looks for water in ocean biomes. This has 3 negative gameplay impacts:
- Baby turtles freeze if they hatch too far from an ocean. See Frozen baby turtles.mp4
(This relates to MCPE-114206 because the baby turtles probably also continue checking for ocean ocean water ever tick,
causing lag.)- Baby turtles hatched in an enclosure that happens to be near an ocean constantly try to escape, even if other water is available inside the enclosure. For example, I built the enclosure shown below on a flat beach that sits between a swamp and an ocean. The pool inside was intended to give the baby turtles somewhere to go, but instead they constantly try to escape through the doors.
![]()
- It is not viable to give other mobs a behavior of moving toward water with a behavior pack. For example, following up on
MCPE-122035I made a behavior pack to make fishermen path to water during their work day similarly to how librarians inspect bookshelves and farmers harvest crops. It works if the water is in an ocean biome, but otherwise it does not work.Steps to reproduce
- In a flat world, make a sand floor and place sea turtle eggs on it.
- Make a water pool near the turtle eggs.
- Wait for the turtle eggs to hatch. (Increase randomtickspeed to speed this up.)
Expected result
The baby turtles move into the water.
Actual result
The baby turtles do not move.
The behavior component, "minecraft:behavior.move_to_water" only looks for water in ocean biomes. This has 3 negative gameplay impacts:
- Baby turtles freeze if they hatch too far from an ocean. See Frozen baby turtles.mp4
(This relates to MCPE-114206 because the baby turtles probably also continue checking for ocean ocean water ever tick, or trying to path to ocean water through obstructions.)
- Baby turtles hatched in an enclosure that happens to be near an ocean constantly try to escape, even if other water is available inside the enclosure. For example, I built the enclosure shown below on a flat beach that sits between a swamp and an ocean. The pool inside was intended to give the baby turtles somewhere to go, but instead they constantly try to escape through the doors.
![]()
- It is not viable to give other mobs a behavior of moving toward water with a behavior pack. For example, following up on
MCPE-122035I made a behavior pack to make fishermen path to water during their work day similarly to how librarians inspect bookshelves and farmers harvest crops. It works if the water is in an ocean biome, but otherwise it does not work.Steps to reproduce
- In a flat world, make a sand floor and place sea turtle eggs on it.
- Make a water pool near the turtle eggs.
- Wait for the turtle eggs to hatch. (Increase randomtickspeed to speed this up.)
Expected result
The baby turtles move into the water.
Actual result
The baby turtles do not move.
behavior.move_to_water only finds waterin ocean biomesbehavior.move_to_water only finds water that is 2+ blocks deep
The behavior component, "minecraft:behavior.move_to_water"
only looks for water in ocean biomes. This has 3 negative gameplay impacts:
- Baby turtles freeze if they
hatchtoo far from anocean. See Frozen baby turtles.mp4(This relates to MCPE-114206 because the baby turtles probably also continue checking for ocean ocean water ever tick, or trying to path to ocean water through obstructions.)
- Baby turtles hatched in an enclosure that happens to be near an ocean constantly try to escape, even if other water is available inside the enclosure. For example, I built the enclosure shown below on a flat beach that sits between a swamp and an ocean. The pool inside was intended to give the baby turtles somewhere to go, but instead they constantly try to escape through the doors.
- It is not viable to give other mobs a behavior of moving toward water with a behavior pack. For example, following up on
MCPE-122035I made a behavior pack to make fishermen path to water during their work day similarly to how librarians inspect bookshelves and farmers harvest crops. It works if the water is in an ocean biome, but otherwise it does not work.Steps to reproduce
- In a flat world, make a sand floor and place sea turtle eggs on it.
- Make a water pool near the turtle eggs.
- Wait for the turtle eggs to hatch. (Increase randomtickspeed to speed this up.)
Expected result
The baby turtles move into the water.
Actual result
The baby turtles do not move.
The behavior component, "minecraft:behavior.move_to_water" very rarely targets 1-block deep water. This has 3 negative gameplay impacts:
- Baby turtles, dolphins, and axolotls freeze if they are on land too far from an river or ocean, and do not try to enter 1-block deep lakes, swamps, or artificial pools. See Frozen baby turtles.mp4
(This relates to MCPE-114206 because the baby turtles probably also continue checking for ocean ocean water ever tick, or trying to path to ocean water through obstructions.)
- Baby turtles hatched in an enclosure that happens to be near an ocean constantly try to escape, even if other water is available inside the enclosure. For example, I built the enclosure shown below on a flat beach that sits between a swamp and an ocean. The pool inside was intended to give the baby turtles somewhere to go, but instead they constantly try to escape through the doors.
- It is not viable to give other mobs a behavior of moving toward water with a behavior pack. For example, following up on
MCPE-122035I made a behavior pack to make fishermen path to water during their work day similarly to how librarians inspect bookshelves and farmers harvest crops. If the nearest water is 1 block deep they never path to it.Steps to reproduce
- In a flat world, make a sand floor and place sea turtle eggs on it.
- Make a water pool near the turtle eggs.
- Wait for the turtle eggs to hatch. (Increase randomtickspeed to speed this up.)
Expected result
The baby turtles move into the water.
Actual result
The baby turtles do not move.
is duplicated by
Turns out that punching baby turtles sometimes gets them to go to non-ocean water, similar to the problem with turtle egg laying in 1.14 (
MCPE-59043). Also keeping the randomtickspeed at 1 helps. So it seems like an internal thread priority problem--I would guess the behavior priority works but the function to search for blocks gets postponed in favor of other, unrelated block checks and block ticks.The baby turtles also go to water much more readily if it is > 1 block deep. That explains why it seems to only work with oceans. The artificial pools I had made were all just 1 block deep. I don't know how that would relate to the prioritization issue I speculated about, unless perhaps the search for water blocks piggybacks on the function that tries to spawn water mobs, because water mobs spawn at a much greater rate in water that is > 1 block deep.
relates to
is duplicated by
testing discovered
relates to
The behavior component, "minecraft:behavior.move_to_water" very rarely targets 1-block deep water. This has 3 negative gameplay impacts:
- Baby turtles, dolphins, and axolotls freeze if they are on land too far from an river or ocean, and do not try to enter 1-block deep lakes, swamps, or artificial pools. See Frozen baby turtles.mp4
(This relates to MCPE-114206 because the baby turtles probably also continue checking for ocean ocean water ever tick, or trying to path to ocean water through obstructions.)
- Baby turtles hatched in an enclosure that happens to be near an ocean constantly try to escape, even if other water is available inside the enclosure. For example, I built the enclosure shown below on a flat beach that sits between a swamp and an ocean. The pool inside was intended to give the baby turtles somewhere to go, but instead they constantly try to escape through the doors.
- It is not viable to give other mobs a behavior of moving toward water with a behavior pack. For example, following up on
MCPE-122035I made a behavior pack to make fishermen path to water during their work day similarly to how librarians inspect bookshelves and farmers harvest crops. If the nearest water is 1 block deep they never path to it.Steps to reproduce
In a flat world, make a sandfloor and place sea turtle eggs on it.Make a water pool near the turtle eggs.Wait for the turtle eggs to hatch. (Increase randomtickspeed to speed this up.)Expected result
The baby turtles move into the water.
ActualresultThe baby turtles do not move.
Steps to reproduce
- Load move_to_water.mcworld
. It contains a long canal along which are test areas for this bug (grassy end) and MCPE-165109 (muddy end). The lever on the command block at the middle of the canal toggles the canal between 1 block deep and 2 blocks deep. The row command blocks at each test area will spawn a dolphin, an axolotl, a baby turtle, and a pregnant frog. (Note: the frog spawns with the components for pregnent behavior, but not the is_pregnant bit, so it will not create frogspawn.)
- Set the canal to 1 block deep.
- Press the button on the command blocks at the grassy end of the canal.
- After a minute or so, toggle the canal to 2 blocks deep.
- Press the button on the command blocks at the grassy end of the canal, again.
Expected result
After both steps (3) and (5) the mobs all start moving toward the canal within a few seconds.
Observed result
The turtle freezes and the other mobs move randomly after step (3). The axolotl, baby turtle, and pregnant frog move toward the water only after step (5). The dolphin has an overriding issue reported at
MCPE-181125and can be ignored until that is fixed.
Steps to reproduce
- Load move_to_water.mcworld
. It contains a long canal along which are test areas for this bug (grassy end) and MCPE-165109 (muddy end). The lever on the command block at the middle of the canal toggles the canal between 1 block deep and 2 blocks deep. The row command blocks at each test area will spawn a dolphin, an axolotl, a baby turtle, and a pregnant frog. (Note: the frog spawns with the components for pregnent behavior, but not the is_pregnant bit, so it will not create frogspawn.)- Set the canal to 1 block deep.
- Press the button on the command blocks at the grassy end of the canal.
- After a minute or so, toggle the canal to 2 blocks deep.
- Press the button on the command blocks at the grassy end of the canal, again.
Expected result
After both steps (3) and (5) the mobs all start moving toward the canal within a few seconds.
Observed result
The turtle freezes and the other mobs move randomlyafter step (3). The axolotl, baby turtle, and pregnant frog move toward the wateronly after step (5). The dolphin has an overriding issue reported atMCPE-181125and can be ignored until that is fixed.Steps to reproduce
- Load move_to_water.mcworld
. It contains a long canal along which are test areas for this bug (grassy end) and MCPE-165109 (muddy end). The lever on the command block at the middle of the canal toggles the canal between 1 block deep and 2 blocks deep. The row of command blocks at each test area will spawn a dolphin, an axolotl, a baby turtle, and a pregnant frog. (Note: the frog spawns with the components for pregnant behavior, but not the is_pregnant bit, so it will not create frogspawn.)
- Set the canal to 1 block deep.
- Press the button on the command blocks at the grassy end of the canal.
- After a minute or so, toggle the canal to 2 blocks deep.
- Press the button on the command blocks at the grassy end of the canal, again.
Expected result
After both steps (3) and (5) the mobs all start moving toward the canal within a few seconds.
Observed result
After step (3) the turtle freezes and the other mobs move randomly. After step (5) the axolotl, baby turtle, and pregnant frog move toward the water. The dolphin has an overriding issue reported at
MCPE-181125and can be ignored until that is fixed.
The behavior component seems to check for any water block that has a water source block underneath it. This could be because it is based on land pathfinding code that looks for a solid top supporting block underneath a collision-free block where the mob could fit. In this case maybe the behavior is looking for a supporting water block underneath a collision free block where the mob can swim, i.e. water supporting water.
behavior.move_to_water only finds water that is 2+blocksdeepAxolotls, dolphins, baby turtles, and pregnant frogs on land will not move to 1-block deep water
Note: this bug also affects any custom mobs that use behavior.move_to_water
Steps to reproduce
- Load move_to_water.mcworld
. It contains a long canal along which are test areas for this bug (grassy end) and MCPE-165109 (muddy end). The lever on the command block at the middle of the canal toggles the canal between 1 block deep and 2 blocks deep. The row of command blocks at each test area will spawn a dolphin, an axolotl, a baby turtle, and a pregnant frog. (Note: the frog spawns with the components for pregnant behavior, but not the is_pregnant bit, so it will not create frogspawn.)
- Set the canal to 1 block deep.
- Press the button on the command blocks at the grassy end of the canal.
- After a minute or so, toggle the canal to 2 blocks deep.
- Press the button on the command blocks at the grassy end of the canal, again.
Expected result
After both steps (3) and (5) the mobs all start moving toward the canal within a few seconds.
Observed result
After step (3) the turtle freezes and the other mobs move randomly. After step (5) the axolotl, baby turtle, and pregnant frog move toward the water. The dolphin has an overriding issue reported at
MCPE-181125and can be ignored until that is fixed.
It would also add dynamic realism to have the fisherman go to work before sunrise and inspect water blocks like librarians inspect bookshelves.
UPDATE: Having them path to water as a secondary behavior during the work day is partially viable using the right parameters. Unfortunately though, minecraft:behavior.move_to_water struggles to locate 1-block-deep water: MCPE-122278.
This issue is probably caused by minecraft:behavior.move_to_water constantly scanning blocks around the baby turtles or constantly trying to path through an obstruction. This behavior has a very high priority, but it only considers water in ocean biomes water as a valid target (MCPE-122278). So baby turtles that are hatched in an artificial enclosure get stuck looking for water or trying to path to ocean water that is not accessible.
I was not able to reproduce the lag in a flat world where ocean water is not available. This makes me think it may only be triggered where there is an ocean biome in range of the turtles but they cannot reach it due to obstructions. It would help if we could get a world save or a picture of a setup where this can be reproduced.
I created a small test world that spawns a single phantom and counts the number of times it attacks you. During a 1-hour test, it attacked 22 times, which averages to about one attack every 3 minutes. Based on the json data in the previous comment that is 12x slower than it should be.
To use Phantom Attack Test.mcworld
, simply stay within the cobbled deepslate box and press the stone button on the impulse command block to reset the test. It will reset the scoreboard, spawn a single phantom, and give the player 4 hours of resistance effect to prevent taking damage and to serve as a timer.
This bug seems like some other bugs we have seen where a behavior does function, but succeeds so rarely that to a casual player it seems not to function at all. Similar bugs include MCPE-59570, MCPE-59043, MCPE-122278 , and MCPE-131980.
Note 12/15/23: test world has been updated in 1.20.60.23
Thank you for your report!
We're tracking this issue in MCPE-122278, so this ticket is being resolved and linked as a duplicate.
If you would like to add a vote and any extra information to the main ticket it would be appreciated.
If you haven't already, you might like to make use of the search feature to see if the issue has already been mentioned.
Quick Links:
📓 Bug Tracker Guidelines – 💬 Community Support – 📧 Mojang Support
📓 Project Summary – ✍️ Feedback and Suggestions – 📖 Game Wiki
– I am a bot. This action was performed automatically! The ticket was resolved by one of our moderators, and I left this message to give more information to you.
Did you account for MCPE-122278 when testing this? (Make sure the water is at least 2 blocks deep.)
New duplicate report MCPE-180897 includes a video clip of a dolphin dying because it does not reach the surface to breath: https://bugs.mojang.com/secure/attachment/569423/video_20240424_190709.mp4
In this video the dolphin tries to breach the surface but stops a block or two below where it should and swims in circles, as if it cannot find the surface. This seems to match the behavior partially captured in the video attached to this ticket. It looks like MCPE-45645 may actually be the root cause of this issue, and something like MCPE-122278 may be a factor, too.
Update: after extensive testing based on the above lead, I can confirm that this bug has the same cause as MCPE-45645, MCPE-131091, and MCPE-162241: when mobs swim, the position that they target for movement is offset in the -Y direction from the path that they have pre-generated. In other words, after they find a path through water they try to move a block below that path. The exact offset is difficulty to determine; I think it is between 0.25 and 1.25 blocks.
This offset causes dolphins to stop below the surface of the water when they come up to breath (using behavior.random_breach). I believe they only successfully breach the water surface if they happen to run the behavior when they are already very close to the surface (within about 2 blocks).
Oh where is the air.mp4
shows dolphins repeatedly swimming up toward the surface and stopping.
Swim bug tester.mcworld
contains the dolphin test chamber and several others that can be used to investigate this bug.
We are going to track this issue with axolotls as part of the more general report on mobs moving to water at MCPE-122278. Resolving as a duplicate.
Steps to reproduce
- Create a pool of water several blocks wide. Make the pool at least 2 water source blocks deep because of MCPE-122278. Use full height blocks (e.g. sand, grass, dirt, or clay) around the edge of the water because of MCPE-165109.
- Spawn several dolphins about 10 blocks away from the pool.
Expected result
Within a few seconds the dolphins start crawling toward the water.
Observed result
The dolphins constantly bounce in random directions. They occasionally bounce in the direction of the water 3-4 times in a row but then move in a random direction again. Some may land in the water by chance while others drift away from the water and dry out and die over time.

behavior.move_to_water looks for a path to any water block that has a water source block underneath it. This is similar to how land pathfinding looks for blocks without collision above blocks that "can provide support." I suspect that what happens in this bug is that after behavior.move_to_water finds a water block, it passes to the navigation function both the location of that water block, and also "water" as the condition for "providing support". The fix would be to make the "support" condition be something that always returns true--maybe something like "not air" or just "1".