Finding walkable tiles

Finding walkable tiles

I'm quite new to RSPeer API and bot scripting in general. I've been going through some Position object methods like .isPositionWalkable(), but it doesn't work as I would expect - the method still returns true even when player can't physically be there.

I'm not sure where to look for this information. Maybe I can somehow access DaxWalker's path meta-data when it returns a response? Or is there another way to do this?

It would ideal if the I can also be provided additional information in case tile is walkable - whether I can access it from a specific direction (for example, walls would block off tiles from accessing each other)

isPositionInteractable()

Still shows as true for those unwalkable tiles :confused:

which tile

Just any tile where player can’t physically be at, I’ve tried debugging with .isPositionInteractable() and it still showed true.

I have found a workaround in case anyone is interested. It relies on DaxWalker finding path to the position I want to check. DaxServer response returns PathResult which contains a list of Positions that player will be walking through. So I compare PathResult's final position to the one I want to check and if they don't match, the position is not walkable.

Here's some sample code:

List results = new DaxServer().getPaths(new(PlayerDetails.generate(),
        Collections.singletonList(new PathRequestPair(PLAYER_POS, DEST_POS))));
List path = ((PathResult)results.get(0)).getPath();
Position lastPosition = ((Point3D)path.get(path.size() - 1)).toPosition(); //Just in case make sure the list is not empty
if(lastPosition.equals(LAST_POS)) return true;
else return false;

This is of course an expensive solution as you don't want to overuse DaxServer as you may reach request limit. Its also time consuming - you will have to wait for the response