mojira.dev
MCPE-162250

Villagers no longer prioritize walking on path blocks

Before the dirt path's collision was changed, villagers would try to walk over path blocks to get where they want whenever possible, but now they seem to actively avoid them. See the attached videos for a comparison.

Linked issues

BDS-17999 Villagers unable to find pathways to beds/job stations, issue entering houses with path block in front Resolved BDS-18035 The villagers avoid walking on the dirt path block Resolved BDS-19102 related to behavior of villagers Resolved MCPE-164811 Villagers no longer successfully pathfind to their beds about 30% of cases Resolved MCPE-165047 Villagers don't want to walk on the Dirt Path Resolved

Attachments

Comments 9

Perhaps the preferred_pathing AI is calculating a “jump cost” for moving down and up from the path blocks now?

Is it avoiding the path blocks, or just not prioritizing them? For example, If you have two routes of identical length, one of path blocks and one of grass, will the villager always take the grass one, and never take the path one? Or will the villager give them the same priority and take each path approximately half the time?

This seems also applies to Farmland according to my observation (which is that villagers sometimes cannot go to the opposite site of the farm separated by a water path; in the past, villagers went to the other side of the farm by walking onto the logs) since the collision box of the Farmland also changed in 1.19.50.

I did some additional testing and it appears that, for partial blocks, the preferred block costs are calculated based on the block underneath the partial block. I created a test world with a simple village. The village contains one fletcher, one fletching table, and one bed. When time is set to night, the villager will go to his bed. When time is set to day, the villager will go to his workstation. 

Expected Behavior: The villager walks in a straight line between the bed and workstation. Dirt paths all have the same cost (cost of 0) and the best path should be a straight one between the bed and workstation.

Observed behavior: He doesn't take a direct route. Instead he follows the route of the planks below the dirt paths (cost of 1). He avoids walking on the dirt paths that are above blast furnaces (cost of 50).

 

[media]

It seems that the issue is not fixed in 1.21.0 and the latest beta version which is beta-1.21.10. Considering adding 1.21.0 and the latest beta version to the affected version will be better

Still affects 1.19.81

In my village, I noticed that if I replace my dirt paths with wood plank paths, the villagers seem to prefer that as the path and go back to normal – they sleep in their beds, they work at their job blocks, they gather during mid-day meeting, and when they walk, it's usually on that wooden path.

So for me at least, this was the workaround for my village base.  Otherwise, if all homes are connected by a dirt path, they seem to go out of their way to avoid it, and then can't seek a path to their beds or job blocks.

I reproduced this with a setup similar to Reed Cartwrights, but with plain dirt under the dirt path. Villagers will always avoid the dirt path, preferring to hang outside a house as close as possible to a bed rather than cross a dirt path block to get to the door. Likewise for a workstation. But if you replace the dirt path with a full height block (dirt, grass, planks, almost anything) and give them a little time to recalculate, they'll immediately go through the door or the exposed side of a workstation under a shelter.

This is probably one cause (of several) of MCPE-42912.

Affects Preview 1.21.60.23. Obviously, this bug causes villagers to die more often to the night, and makes working with firm very difficult. This problem is exacerbated by the fact that all villages naturally spawn with path blocks. Maybe this should be flagged as a parity issue, as villagers properly utilize paths in Java? 

[Mod] LateLag

(Unassigned)

894038

Confirmed

Multiple

1.20.10.23 Preview, 1.19.40.21 Preview, 1.19.50, 1.19.51, 1.19.62, ..., 1.20.81 Hotfix, 1.21.2 Hotfix, 1.21.20, 1.21.21 Hotfix, 1.21.51 Hotfix

Retrieved