Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bot fails to follow simple path requiring a forward walk + jump #339

Open
andrewkchan opened this issue Jul 5, 2024 · 3 comments
Open

Comments

@andrewkchan
Copy link

I'm running into a pathfinding issue where the bot is getting stuck trying to follow a path out of a hole which requires walking forward and jumping once, then turning around and jumping again.

  • I've ensured I have anti-cheat turned off (this was previously causing other issues)
  • I've ensured it's actually possible to follow the path computed by pathfinder as a player character
  • From adding debug statements in pathfinder code, it looks like the pathfinding module is correctly setting the control states of the bot to jump: true, forward: true in the beginning. However, the bot is not actually moving. For this reason I've reposted this issue to the prismarine-physics repo (Bot fails to follow simple path requiring a forward walk + jump prismarine-physics#115).

Screenshot of the bad path (visualization on left, ingame on right):
image

Video of bot attempting to follow the path (it repeatedly resets path due to futility check. in the video it never gets unstuck, but occasionally i have seen it eventually get unstuck):
https://drive.google.com/file/d/11bZj7sXIyTU4t1emwfZBx7uexVw9wtcv/view?usp=sharing

Repro:

  1. Download and unzip world.zip into a dedicated server directory.
  2. Disable any server anti-cheat and start the server.
  3. Then create a bot and run the code:
bot.chat("/tp -2.3 61.029567977792745 7.606471465025178");
var table = bot.findBlock({ matching: bot.registry.blocksByName.crafting_table.id, maxDistance: 128 })
await bot.pathfinder.goto(new pathfinder.goals.LookAtBlock(table.position, bot.world))
@IceTank
Copy link
Collaborator

IceTank commented Jul 8, 2024

I think this is an issue in prismarine-physics. I think in newer versions the player collision in prismarine-physics is to small. This causes the bot to phase into blocks from the view of the server. And if that happens the server resets the players position to prevent him from phasing into blocks. Some people had success by increasing the player hitbox in the X and Z direction.

@IceTank
Copy link
Collaborator

IceTank commented Jul 8, 2024

Current prismarine-physics code is a port of the 1.8 Minecraft physics system. And I think sometime between 1.12 to 1.16 it broke.

@andrewkchan
Copy link
Author

Thanks, that's helpful. I have downgraded to 1.16 and it actually seems to work better (I was not able to test on the above case - seems I attached a corrupt world).

Is prismarine-physics abandoned?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants