Citizen got stuck at the restaurant table not eat even with food in their inventory
lordfriend opened this issue ยท 7 comments
Prerequisites
- I am running the latest alpha version of MineColonies and Structurize for my Minecraft version.
- I checked the MineColonies/Structurize wiki and made sure my issue is not covered there.
- I made sure that this issue is not a duplicate of any existing issue.
Context
- Minecraft Version: 1.16.5
- MineColonies Version: 0.14.310-alpha
- Structurize Version: 0.13.202-alpha
- Related Mods and their Versions:
Expected behavior
Typically, a citizen gets hungry, they will go to the restaurant, find a table and sit down, then the cook will deliver food to them. then they should start to eat within minutes.
Actual behavior
Some of them can eat after the cook gives them food for a while. but some of them just sit there for days. They even complain they don't have time to sleep. I tried recalling the citizen, they will go back to the restaurant and start to eat. Sometimes, if I destroy a block near them or push them away, they may start to eat.
Here is the video: https://youtu.be/bYf0gJgSayw
Steps to reproduce the issue
Actually, I don't know how to reproduce. I got a Level 4 Medieval Darkoak restaurant. 130 citizens, estimate 60 guards. the food that the cook has is baked potato, cooked rabbit, cooked cod, beetroot soup. sweet bread.
Logs
- latest.log:
- crashlog:
Notes
I'm not sure if this is a schematic bug. the restaurant is finished weeks ago. but not too far, because the last version (0.14.200-beta) also has the issue.
Viewers
- Add a thumbs-up to the bug report if you are also affected. This helps the bug report become more visible to the team and doesn't clutter the comments.
- Add a comment if you have any insights or background information that isn't already part of the conversation.
I have periodically run into this bug. I've seen it different worlds, different mod packs and different restaurant styles (specifically asian, medieval birch and calendonia.) I've had no success tracking down a way to reliably replicate the issue, although it only seems to occur for me after the Minecraft client has been running for a long time - usually 4+ hours. I find that if I completely exit Minecraft and restart, the issue resolves itself.
Being able to reliably replicate would be super important to be able to fix it.
Raycoms - is there anything we can do to expose more of the system state when the issue is happening? Any debug commands/logging/etc? I'm pretty sure if I send you a colony export, the issue will be fixed once you load it, as any restart fixes it. This bug behaves like a memory leak in many ways (problem happens after extended play, goes away with restart,) but the mechanism is probably something else.
I did some more testing. I think I have a good understanding of the piece that's breaking, although I still haven't found a way to force this condition, other than running the game for 4+ hours and checking periodically.
This is consistent every time:
- A citizen gets hungry and goes to the restaurant (working)
- The citizen sits down somewhere and waits to be served (working)
- The cook goes to the citizen and gives them some food (working)
- The citizen does not recognize they have food and does not eat. Manually giving food doesn't work either. They ignore all food in their inventory. (broken)
- The cook will loop and continue to walk between the hut block and the citizen. They see that citizen has food so they do not give any additional. However, the citizen appears to continue to request food which causes the loop. (I think the cook piece is working?)
- Problem will not resolve until game is exited and restarted. Once that happens, citizen finds the food already in inventory, eats, and all is ok.
So bottom line - the citizen is not recognizing food in their inventory, and they don't stop asking the cook for food. I think the cook AI is fine.