Path Avoid allows you to "nudge" the pathfinding system for your pawns, to make them prefer and avoid different areas. Use it to make your pawns follow pathways in your base, or avoid passing through a freezer to get to the other side! Avoidance won't prevent pawns from pathing, it'll just make them take an alternate path...
Can be added to an existing save.
Steam (http://steamcommunity.com/sharedfiles/filedetails/?id=1180719857)
Direct Download:
1.3 (https://github.com/KiameV/rimworld-pathavoid/releases/download/1.3/PathAvoid.zip)
A17 (https://github.com/KiameV/rimworld-pathavoid/releases/download/20170811/PathAvoid.zip)
B18 (https://github.com/KiameV/rimworld-pathavoid/releases/download/A18/PathAvoid.zip)
B19 (https://github.com/KiameV/rimworld-pathavoid/releases/download/B19/PathAvoid.zip)
1.0 (https://github.com/KiameV/rimworld-pathavoid/releases/download/1.0/PathAvoid.zip)
1.2 (https://github.com/KiameV/rimworld-pathavoid/releases/download/1.2/PathAvoid.zip)
GitHub: https://github.com/KiameV/rimworld-pathavoid
Thanks to everyone who's helped translate this mod!
Ɲơɴɑɱɛ - German
53N4 - Spanish
Tuvka - Russian
Known Issues
Due to the game's current path finding algorithm, on longer routes pawns ignores tile-weights/penalties and will go through trees, rocks, hate/strong, etc. For that reason this mod's ability to help the pawns is diminished.
Until the pathing is fixed, this mod is best used for smaller areas/places where pawns are not going long distances.
Latest Update:
Aug 11, 2017
I've been holding up on updating this mod as the changes will show up in current saves - it won't break them but the pathing will need to be updated.
The root of the problem was: With the new pathfinding in A17 if there are too many squares with 'weight' (only 'preferred did not have 'weight') then the pawn would take a straight path to the locaiton. The number of weighted tiles was 8 so this would happen constantly.
This new version removes "preferred" and now has just noraml->strong.
For those that have manually adjusted the tile weights in Mod Settings I'd recommend defaulting the values out (with the Default button).
For anyone that wants to still use the previous release it's here: https://github.com/KiameV/rimworld-pathavoid/releases/download/20170608/PathAvoid.zip
Like my mods? Consider supporting me!
(http://www.travistygames.com/private/kofi3.png) (https://ko-fi.com/kiamev)
Original Author: Vendan
(https://steamuserimages-a.akamaihd.net/ugc/955208910479029037/69E8BAD70391F01771E5A36BB63B2BB2E08F1BEB/)
Thanks a lot! Love that this was updated, but on my end, it dealt a massive blow to gameplay/loading performance, where it would take about a minute longer to load a game, and when the game loaded, random pauses/lag. No errors thrown, though, so not sure why this happens.
love the idea, but it tanks performance dramatically. stuttering and completely freezing every now and then. as above no errors but the log populated constantly.
had to remove it, because as much as i like this, the gameplay with it is unplayable for me.
Was it direct download that you tried that had the lag or the steam version?
The original release I forgot to remove log messages :-[ which could have created some lag. I've updated the direct download (i may have forgotten to do that last night) and I fixed the steam version last night too. Or did you try today?
In either case some people spoke of lag issues on the steam page too so i am investigating what may be up.
Thanks
Just a heads up, if your game is lagging, its the mod, my console just spammed
"Path start"
"Path end"
Or something like that for every action so colonist that were doing many actions like laying floor or building walls, it would freeze my game, upon disabling the mod it stopped the spam and the lag dis-appeared
Quote from: Kiame on May 29, 2017, 02:22:32 PM
Was it direct download that you tried that had the lag or the steam version?
The original release I forgot to remove log messages :-[ which could have created some lag. I've updated the direct download (i may have forgotten to do that last night) and I fixed the steam version last night too. Or did you try today?
In either case some people spoke of lag issues on the steam page too so i am investigating what may be up.
Thanks
i used the direct download afew hours after you created the thread. ill redownload and try again. gotta start again anyway as some mods have updated and not save-friendly.
Same w/ the direct download. Personally I don't use steam for various reasons, but will try again when I get back home tonight & see if that does it. ;)
agreed with steam. alot of mods are not uploaded there. plus steam workshop has the most awful layout possible. and no real way to check if one mod is updated or not. awful lay out. i avoid as much as i can. :D
Quote from: silentlord on May 30, 2017, 08:55:47 AM
agreed with steam. alot of mods are not uploaded there. plus steam workshop has the most awful layout possible. and no real way to check if one mod is updated or not. awful lay out. i avoid as much as i can. :D
Thats why I still download and not get my official steam key ;D
okay tested the new version. (direct download) not getting any of the lag and spam in the log. i did start a new colony but sofar no issues with performance or lag.
however doing some tests, the pawns avoid the prefer zone! lol
i made a stockpile away from landing area. surrounded the stockpile with strong/red zone. then godmode built a 1 tile zigzag concrete path. then with prefer overlaid the path with blue zone and created second zigzag zone with no path and shorter distance to stockpile.
unpaused and the pawns ignored the paths completely and ran all the way around the giant red zone to the stockpile. choosing to go throught he red zone at short distance at the far side.
even though the no road blue path was shortest.
it made the whole journey 3 times longer.
dunno if using it right but seems weird.
Quote from: silentlord on May 30, 2017, 12:53:43 PM
okay tested the new version. (direct download) not getting any of the lag and spam in the log. i did start a new colony but sofar no issues with performance or lag.
however doing some tests, the pawns avoid the prefer zone! lol
i made a stockpile away from landing area. surrounded the stockpile with strong/red zone. then godmode built a 1 tile zigzag concrete path. then with prefer overlaid the path with blue zone and created second zigzag zone with no path and shorter distance to stockpile.
unpaused and the pawns ignored the paths completely and ran all the way around the giant red zone to the stockpile. choosing to go throught he red zone at short distance at the far side.
even though the no road blue path was shortest.
it made the whole journey 3 times longer.
dunno if using it right but seems weird.
Hmm let me play around and see if i can reproduce
Just tested it. Looks like when they're hauling something to a stockpile pawns behave strangely.
Updated both steam and direct download version with updated pathing - the paths pawns take when they decide not to take the preferred route should make much more sense.
brilliant, thank you very much Kiame.
Great, working like a charm now. Thanks a lot for the fixes!
Posting this as a new reply, because I forget, this particular BBS system doesn't seem to register edited posts for thread updates...
As of yesterday... well, it WAS working like a charm for me until the most recent build update. Nothing seems to be registering w/ the pawns that I have certain areas blocked off. Now they're cutting through like it's never been marked off.
To be more precise: In my current save file I've been using before the update, pawns avoided or followed all blocked off areas as they should. After the update w/ the same file, the previously blocked areas from before still worked. HOWEVER, any new areas put up are not registering as an area to avoid/prefer pathing at all... hoping for another quick fix soon enough?
Quote from: Tenshi~Akari on June 04, 2017, 07:45:04 PM
Posting this as a new reply, because I forget, this particular BBS system doesn't seem to register edited posts for thread updates...
As of yesterday... well, it WAS working like a charm for me until the most recent build update. Nothing seems to be registering w/ the pawns that I have certain areas blocked off. Now they're cutting through like it's never been marked off.
To be more precise: In my current save file I've been using before the update, pawns avoided or followed all blocked off areas as they should. After the update w/ the same file, the previously blocked areas from before still worked. HOWEVER, any new areas put up are not registering as an area to avoid/prefer pathing at all... hoping for another quick fix soon enough?
Could you provide a screen shot of an area that's working and an area that's not?
Quote from: Kiame on June 05, 2017, 12:07:16 AM
Could you provide a screen shot of an area that's working and an area that's not?
Pretty much this is happening all over the base... and I was mistaken, it's actually
none of the blocked off areas from before and after the update work at all. (The only reason I probably thought it was half-way working was because there are some objects that are impassible nearby that they keep zigging around now that I'm seeing the case, but outside of that, pawns are just pathing whichever way they please despite this.)
I haven't added anything new at all to my mod list, everything is the same as before when it worked just fine so... I guess build 1557 broke something with how this works right now? :-\
[attachment deleted by admin due to age]
It looks like that's not base-game furniture/floor and they may not have the proper defs defined. When i setup the same situation the pawns behave correctly.
What mod do the seats, table, and floor come from and i can test it out
[attachment deleted by admin due to age]
Updated the tile weights to hopefully guide pawns better.
Added a new Mod Setting: Advanced Settings:
Allows the user to set their own tile weights.
After applying the changes, if a game is loaded it will need to be reloaded to have the changes take effect. (a game restart is not required).
Valid values are from 0 to 255
Both Direct Download and Steam are updated
For existing saves double check the pathings, with the weight changes the colors will be different.
Yikes! Sorry I've taken so long to reply to the earlier post, haven't been able to play this week like I had hoped to due to some much needed housekeeping & upgrades, but I think one or 2 of the mods I had enabled weren't properly formatted just like you mentioned (but that was due to my own ignorance of changing the version number instead of noticing some ways the defs worked had changed & waiting for the modders to update their mods themselves. The particular one was sd_round table, but that has since been updated properly & added to my mods again. The other, RIMkea, was already up to date prior to all this, yet pathing still was wonky for it and even the vanilla shelves pictured.)
It's still a bit puzzling though. I'm still not sure why regardless of how they were updated it still worked before and all of a sudden when I upgraded to the new game version, everything had bugged it out like it did. So I'm going to try the newest update instead, now that it's up. Will let you know how it goes!
EDIT: Works like a charm again. Thanks again for putting up w/ my issues & offering a fix, very much appreciated w/ how much I rely on this mod's features to work. :D
Can you please provide the info what exactly are these weight values? Are they added somehow to the "real" path costs or completely replace them? How it behaves in situations when there are several things that affect movement on the same cell, i.e. soil, tall grass and stone chunk? There are some situations with pathfinding that are really weird, I'd want to figure out their source and/or make a workaround by setting up suitable weights.
And a little suggestion: I think it would be useful to have a way to temporarily disable this restrictions, preferably for any pawn individually, for situations when you need them to get to their destination as quick as possible.
Metaphor: Imagine weights as rocks in the path of the pawn.
Preferable has no rocks
Normal has a few pebbles
From there it goes from loose rocks to large boulders
(More in depth around the apparent problem)
If maps that have tons of "avoid-path weight from this mod" or real rocks/trees between the pawn and their destination the vanilla pathfinding seems to have a kill switch which tells the pawn to make a straight path from the last square the pathfinding was working on. More specifically
(Even more in-depth)
if i'm reading the code correctly - which i will not guarantee :) - it seems that on the eight square, if the path finding is still stuck with a bad route it will kick out of the loop and just draw a straight line to the destination from the eight square
(Summary w/ some extra in-depth stuff)
I think the main root to many people if this mod's "normal" having a weight other than 0. This is done because in the background the weight values can only be from 0 to 255. So for preferable to exist, normal has to have a non-zero value. I'm thinking there are cases where the game's path finding is even counting relatively low difficulties for travel as non-optimal and going through the kill switch.
(Possible fix for those still having problems)
For anyone having a problem they could try setting the weights as Preferable = 0, Normal = 0, and the rest the same. Make a new map or load a save and verify all squares are either Preferable or Normal. See if the pathing is improved at all.
The problem may be somewhere deeper, because even in seemingly simple situations sometimes pawns prefer not a straight way but some weird one. I have not made screenshots myself but there are some examples: https://ludeon.com/forums/index.php?topic=32192.msg339335#msg339335 https://ludeon.com/forums/index.php?topic=32192.msg344315#msg344315
Anyway, I asked about just some math in your mod. Let's assume there are several roads of the same length: 1. clear sand (path cost 4), 2. clear floor (path cost 0), 3. same floor with stools built on it (path cost 30). The question is, how exactly pawns will "see" path costs there if I'll make some pathing designations? Will they prefer road 2 instead of 1 and 3 if I'll make similar pathing designations above them or will they treat them as equal (like with weight 10: 14-10-34 or 40-0-300 or 10-10-10 or 14-10-10 or 10-10-30 or whatever)? And in another situation, if there are two similar roads with different weights designated, for example, 10 and 30 - what should be their lengths ratio to treat them as equal: 1:3, 9:7 or some other? Sorry if I don't express myself clearly enough.
I can't speak too much deeper into the pathing because i do not know.
My gut says it takes weight over distances of less than 8 squares.
0 0 0 50 0 0
/
Pawn
\
10 10 10 10 10 10
In this case the pawn will take the top route even if that 50 square will take twice as long to cross than to cross 6 squares of dirt (thinking that pawn climbing over furniture for the 50)
I've been holding up on updating this mod as the changes will show up in current saves - it won't break them but the pathing will need to be updated.
The root of the problem was: With the new pathfinding in A17 if there are too many squares with 'weight' (only 'preferred did not have 'weight') then the pawn would take a straight path to the locaiton. The number of weighted tiles was 8 so this would happen constantly.
This new version removes "preferred" and now has just noraml->strong.
For those that have manually adjusted the tile weights in Mod Settings I'd recommend defaulting the values out (with the Default button).
Old version: For anyone that wants to still use the previous release it's here: https://github.com/KiameV/rimworld-pathavoid/releases/download/20170608/PathAvoid.zip
New version: On steam and here: https://github.com/KiameV/rimworld-pathavoid/releases/download/20170811/PathAvoid.zip
Sounds good, and would explain some of the pathfinding issues reported.
How does it influence performance ?
The previous version was to cost intensive for my poor old rig.
Quote from: SpaceDorf on August 11, 2017, 02:09:25 PM
Sounds good, and would explain some of the pathfinding issues reported.
How does it influence performance ?
The previous version was to cost intensive for my poor old rig.
Performance cost is unaffected.
Sadly I won't be able to make this cost any less as it requires a new layer of data for each tile on the map.
To bad, but I understand, I know about the weaknesses of Pathfinding Algorithm and the decission you have to make between fast and good.
Hi there!
I just bumped into this, pawns stuck at "standing", when trying to get something inside a room with the exits painted "strong", (default settings), when removing the paths they moved again.
[attachment deleted by admin: too old]
Quote from: faltonico on September 27, 2017, 09:02:18 PM
Hi there!
I just bumped into this, pawns stuck at "standing", when trying to get something inside a room with the exits painted "strong", (default settings), when removing the paths they moved again.
I'd suggest making the exits strong or dislike to have pawns use other exits other than the ones marked. If strong is preferred you can try changing the value of strong to something a little less than what it is now in Mod Settings->Path Avoid.
can you explain normal, dislike, hate, strong
and set values in options for them what do they do actually
Quote from: Kiame on September 28, 2017, 03:28:28 AM
Quote from: faltonico on September 27, 2017, 09:02:18 PM
Hi there!
I just bumped into this, pawns stuck at "standing", when trying to get something inside a room with the exits painted "strong", (default settings), when removing the paths they moved again.
I'd suggest making the exits strong or dislike to have pawns use other exits other than the ones marked. If strong is preferred you can try changing the value of strong to something a little less than what it is now in Mod Settings->Path Avoid.
Sry for the late reply,
Setting them to dislike has the same result, but i find out there is another problem lying behind all of that, it might be a problem with the game itself.
Quote from: NemesisN on October 11, 2017, 09:13:19 PM
can you explain normal, dislike, hate, strong
and set values in options for them what do they do actually
The answer is fairly simple if you know that Rimworld use A* pathfinding and know what that is. If you enable debug options, you can set it to display pathfinding. When a colonist (any pawn?) makes pathfinding, it will write a number on each tile. The slower the movement is on the tile, the higher the cost. The values displayed are the combined values from the starting tile to the one with the print. The idea is that it uses the path which provides the lowest number when reaching the end.
This mod simply increases the cost of moving on the tiles you select. If the cost is 30 for going in a strait line and 150 to take the long way around the mountain, then it will take the strait line. If you add strong dislike and add 200, then it will figure out that 230 is higher than 150 and it will take the long way around. If the long way cost 400, it will still take the route through the disliked area because even if it's disliked, it's still better than running across half the map.
In short, the more you mark a path with dislike, the more longer the colonists will walk to avoid it. I vaguely remember something about issues if the numbers get too big for one tile. It's likely better to just make a belt where they have to cross 2-3 rows of disliked tiles than to increase the numbers.
The different levels of dislike is just different numbers.
What this is useful for is say you have a kitchen with multiple doors. You don't want it to function as a transit room, in which case you add a strong dislike to the doors and it should be equally strong for each door. Colonists can then enter the room and ignore the dislike because it's still the shortest route while they prefer to walk around the building than to go through two strong dislikes. The weaker dislikes could be to "fence" a paved road to keep the colonists to using it. However you don't want the colonists to treat the blocks as walls and with a light dislike, they can pass the "fence" when they have to leave the road to the grow zone to harvest or whatever. A strong dislike would make them walk way too long to go to the end of the "fence". It should be noted that A17 has a pathfinding bug where helping colonists this way is beneficial, but it is fixed in A18.
Thanks Nightinggale, great explanation
What i mainly use this for is marking each trap i make, makes extra sure pawns won't kill themselves ;)
(strong on each trap)
I will also note that with the current pathfinding in A17 there is a problem where if the pawn passes through more than 7 or 8 squares that are not 0 weight (0 weight meaning no rocks/dropped apparel/mud/etc) they will default to a straight path no matter the difficulty/setting from this mod.
I hope to re-add 'preferred' once A18 comes out, until then this is the best that can be done outside modifying the whole pathfinding algorithm which I do not want to tackle!
I'm checking the bug section of the forum rather often atm, they seem to be well aware of the pathing issues in A17.
I just hope everything will be fixed in A18, its just very very obnoxious in many scenarios >.>
Until then, your mod is still a godsend when it comes to "static" things.
Cant really do much about my pawns walking through chunks and trees all the time atm sadly, and it'd be way too much hassle to mark every single one of them because of a broken mechanic^^
I tried it out, but it makes colonists ignore their assigned / allowed areas :(
Quote from: nmid on October 12, 2017, 05:34:42 AM
I tried it out, but it makes colonists ignore their assigned / allowed areas :(
Hmm this should not be the case... Can you give me an example or screenshot showing a case where pawns are ignoring restricted areas?
If the case is there's a large room marked as 'strong' that would be the problem. This falls into the 7 or 8 weighted tiles case where the pawn will completely ignore logical pathing and make a straight shot through instead. In the case where a room should be marked as 'do not enter' put two or three 'strong' marks at/around the doors to the room.
Quote from: Kiame on October 12, 2017, 02:48:33 PM
Quote from: nmid on October 12, 2017, 05:34:42 AM
I tried it out, but it makes colonists ignore their assigned / allowed areas :(
Hmm this should not be the case... Can you give me an example or screenshot showing a case where pawns are ignoring restricted areas?
If the case is there's a large room marked as 'strong' that would be the problem. This falls into the 7 or 8 weighted tiles case where the pawn will completely ignore logical pathing and make a straight shot through instead. In the case where a room should be marked as 'do not enter' put two or three 'strong' marks at/around the doors to the room.
Sorry, I missed your reply.
I'll load the mod again this weekend and get you a screenshot.
Great news! After initial testing in A18 it looks like Preferred works again!
A18 version: https://github.com/KiameV/rimworld-pathavoid/releases/download/A18/PathAvoid.zip
The A18 direct download url is messed up in the op.
Quote from: Boogeyman on November 03, 2017, 01:23:06 PM
The A18 direct download url is messed up in the op.
Oops fixed
Thanks for letting me know!
Ah, I finally found this mod, been lookng for it. Thanks.
My success with this mod has been sporadic. In some situations the Rimworld pathfinding just will not be dissuaded - especially when it comes to trees, no amount of weighting will stop pawns from deliberately pathing through them when going around would be faster.
I'm assuming that you didn't make "strong" == "impassable" for some technical reason. Is that correct?
Quote from: BTAxis on December 18, 2017, 06:11:24 AM
My success with this mod has been sporadic. In some situations the Rimworld pathfinding just will not be dissuaded - especially when it comes to trees, no amount of weighting will stop pawns from deliberately pathing through them when going around would be faster.
I have found the pathfinding doesn't always follow suggested paths especially at the end of longer distances.
As CannibarRechter mentions too, PathAvoid is a system of 'hints' as opposed the base game's restricted areas.
If you provide a screenshot of a problematic pathing issue i may be able to offer suggestions
I wonder why this mod not working with roads?
(https://i.imgur.com/eIkd8zr.png)
After picking slug
(https://i.imgur.com/mpYX20I.png)
I have "Prefer" regions on my roads.
(https://i.imgur.com/9aXf1vC.jpg)
What's wrong with this pawns?
PathAvoid is really not meant for macro-scale endeavours and is more for micro-scale (room to room) tool. This is more an underlying problem with how the base game's pathfinding works and I welcome you to try different values and see if something else works.
In-depth for Path Avoid's hints: each tile can have a 0 to 255 value of 'difficulty'. W/o this mod every tile has a value of 0 and as things like grass, mud, trees, rocks, etc get put on a tile the difficulty goes up. This mod increases the base value to 10. Preferred becomes 0. From there dislike, hate, strong go 50, 150, 250 (iirc just going off memory). So surrounding the non-roads with 'strong' will probably give a stronger 'hint' to the pawns to use the roads but the pawns could very well ignore that too (especially for longer distances).
Workaround: In the mod's options you can click 'advanced' and you can put in your own values for each path avoid type. I have not personally tested it with other values with this release. Setting Normal to 50 might give a stronger hint to the pawns. Again though, especially for longer distances, your pawns will probably ignore path avoid.
Even over shorter distances sometimes you don't get what you'd expect though:
(https://i.imgur.com/dzXTkZ5.jpg)
(https://i.imgur.com/ocotsAI.jpg)
That said you also sometimes do. Like I said before, it's a bit erratic at times.
yes this is by no means perfect. Just a means to help the pathfinding do better. In the case of the room this is definitely the pathfinding - it appears to be favoring the shorter path over the easier one. You may try making both sides of the blue workbench strong to emphasize even more not to go that way (basically an up-side-down T of strong)
Actually what I think is happening here is that the pawn initially tries to walk directly toward his destination, but then encounters an obstacle and paths around it at the last minute. I've seen that happen in other situations as well. It just seems odd that it's quite THAT short-sighted, because this path gets chosen even if it starts from the position shown in the screenshots.
> your pawns will probably ignore path avoid.
What would be useful is having the "strong" region be like a constructed item (like a sleeping spot), and then have it set to impassable=true, but only for your own pawns. The game would definitely honor that.
Yeah, this one has me stumped. Behold this path:
(https://i.imgur.com/edbjtNS.jpg)
And my pathing mask:
(https://i.imgur.com/fSc0Rti.jpg)
It's avoiding even going NEAR the "strong" tiles, it seems. When I set the stockpiles back to normal it becomes:
(https://i.imgur.com/73ArVIq.jpg)
At this point I'm starting to think the unpredictability of this mod is rather defeating its purpose.
The low res makes it difficult to see. Is that an x in the doorway? If so that's why he's going around.
As for why he's not going through the base, the doors have a weight to them as well. What the pathfinding probably found is that the longer way around was less weighted than going through multiple doors. This path would have been found w/ or w/o this mod
Yeah, the door is forbidden. It originally pathed through there, so I wanted to see if forbidding it would improve the pathfinding. Instead, it made it worse.
And no, it would not have found the same path without the mod, because removing the weighting on the stockpiles changed the path it found. I made it choose a new path several times in a row, and it would always go the long way around until I did that.
(Enough for the fact that that long path goes through MORE doors than the short one.)
I'm experiencing the same issues. Look at the attached picture. Vasques is going to haul fine meal and Gruenfelder is going to research (I repainted their pathways with green lines for better visibility). The path through my dinner/rec room would be shorter, has less doors, doesn't include soil, bushes and darkened areas, and even includes more of "preferred" section. If I remove the pathing preferences in dinner/rec room, my pawns often will crawl through that row of arcades as i painted with purple line.
I think it's mostly issue of the vanilla pathfinding algorithm, because the same situations can happen in vanilla, it's just harder to create conditions for it. Sometimes pawns choose decently good paths. I have a suspicion that the game somehow chooses (probably dynamically, that's why it can't be reproduced reliably) only some tiles (or groups of them) to calculate, so it becomes like "if I can't go exactly that tile, I won't mind going anywhere near it". Probably it can also explain some "vacillations" like those I showed with blue circles and worse situations when pawns go from the good strict road to climb some tree nearby just to return on that same road again after that. And/or there could be something weird with the whole calculation of movement cost for obstacles.
[attachment deleted by admin: too old]
Trying to get this pawn to take the patch up through the preferred area. She's taking wood from that little enclave you see at the bottom right, down across the bottom, and the up the left side of the screen, before finally taking it to the top right of the frame. I tried making this path so that they would stop walking through the forest going slow as dirt, but it seems like I can't get her to stick to the area I've designated as preferred.
Before I painted any of these cells, the pawns kept taking horrible paths. Now, they just taking a long way around the horrible paths :P
(https://i.imgur.com/ebwwzG9.png)
Update for 1.0:
https://github.com/KiameV/rimworld-pathavoid/releases/download/1.0/PathAvoid.zip
Use ModSync RW (https://ludeon.com/forums/index.php?topic=41634.0) to know if/when there's an update
"Normal" has been removed. Use "Prefer" to revert paths to their base value.
Fixed a bug where there would be an error if the pathing was dragged off the map.
Can't the value be less than zero?
EDIT: If everything starts with zero, then the only way to make a path that the pawn will prefer is to have a value below zero.
One hack would be to put the whole map on a given number like 50 or 100 for example, and then you remove the path you prefer, this way you can have a 'use this path' using this mod. It might confuse the pawn however on paths that costs a lot since the max is 255 so a lot of things could reach the max now when they couldn't before so the pawn won't differentiate them.
EDIT2:
(https://i.imgur.com/E3reVPq.png)
(https://i.imgur.com/ZimINPY.png)
The game uses unsigned bytes for this information so the supported numbers are 0-255
The B18 version of this mod with 'Prefer' and 'Normal' worked off the idea of all tiles had a '10' weight (as opposed to 0). Normal was thus 10 and Prefer was 0.
The pathing is not the greatest in this game; specifically for longer paths. I'm not an expert but the last time i looked at the pathing code itself there is a kill-switch in the code to prevent it from costing too much for the CPU. Something like if the pathing hits a square that has a high enough weight it will try to find a better path with a BFS of a depth of 8 iirc. If it's unable to find a better path at depth 8 it cuts out and draws a straight line instead of using any intelligence in pathing.
The 1.0 version removes Normal and makes everything 0 to help prevent the above kill-switch from triggering as often (it still will in many cases though)
Remember, this mod is not a replacement for the base game's restricted zones. This is simply a way to give the pathing system 'hints' as to the best path to take.
Kiame, have you checked what would have a 255 value? Maybe the game is coded in a way that a high enough value is used to determine a threat instead of just a very costly path and so using a value so high for the higher tier of this mod might not be the best since it could cause pawns to not only avoid the tile but around the tile as well. That's the only explanation I could think of.
Quote from: tiagocc0 on June 23, 2018, 05:50:23 PM
Kiame, have you checked what would have a 255 value? Maybe the game is coded in a way that a high enough value is used to determine a threat instead of just a very costly path and so using a value so high for the higher tier of this mod might not be the best since it could cause pawns to not only avoid the tile but around the tile as well. That's the only explanation I could think of.
Nah it's just a weight in the grid graph. Only difference is how 'hard' a square is to go over
Everyone is free to test out different weights for prefer/dislike/hate/strong from the mod's options->Path Avoid->Advanced. Just know you'll need to re-apply any previously placed path avoids to get the new values
Would it be hard to make a new mod or an option in your mod to increase the tick just for colonists and then make it to be configurable in the settings?
That way we could increase the 'intelligence' of the path code and probably better utilize the avoid grid.
I'm no expert in path finding. I will keep the idea in mind though
Offtop, but what does kv mean ?
heh i guess the V is not in the username on these forums. The character name in FF14 is Kiame Vivacity. Stopped playing the game a year or so again though
Some modders with many mods sign their mods with a set of (hopefully unique) characters. At a point in A17 iirc a user recommended i do the same as my mod library grew and I went with KV
I have used rainbeaus bridges over marsh and water, if i keep the bridges/path avoid built in a straight line all is usually fine, but outside of that, horizontal directions seem to throw it off at times. So my pawns walk through the marsh sometimes =/
Pretty helpful mod.
(https://i.imgur.com/C9IaiBH.png)
For a while, I was able to get all of my colonists to use speedy floor-based walkways (most of the time) with just the "Prefer" hints. Then I recruited two Syntho (https://steamcommunity.com/sharedfiles/filedetails/?id=1234438466) colonists, and started encountering search limit issues on the two colonists that prevented them from moving:
Gitta pathing from (169, 0, 243) to (255, 0, 154) hit search limit of 160000 cells.
Weirdly enough, removing all of the "Prefer" hints around the colonist suddenly let them move again, and once I removed all the path hints, the issue stopped occurring. Might try restoring the paths and recruiting a non-Syntho colonist to see if the issue is directly related to that mod.
Updated for B19
Direct Download: https://github.com/KiameV/rimworld-pathavoid/releases/download/B19/PathAvoid.zip
Steam: http://steamcommunity.com/sharedfiles/filedetails/?id=1180719857
what happened to the "normal" button? Why is "prefer" the default zone? Prefer was so you could make a path to take without zoning everything BUT that path as dislike.
Maybe i can fix this myself, idk.
Having Normal not be 0 and then having Prefer was in too many cases causing problems in normal pathing. I decided to set the base weight to 0. This makes "Prefer" and "Normal" one and the same. At that point i decided i liked "Prefer" more than "Normal" so "Normal" got the axe
I found normal and how it was just disabled, now im trying to see if i can manually make the default +1 (not working too well) and im trying to see if i can make an "Impassable" one. I've got it working as a setting but im having troubles figuring out how to make it so they will never take this path.
(EDIT) i also changed the names, "prefer, normal, dislike, hate, strong" doesn't make make much sense so i named it "prefer, neutral, dislike, despise, hate"
You'll need to recompile the code as the base value is hard coded in the C#.
You could set Normal to 25 then drag that and fill the entire map. That'll mimic the previous approach.
I am considering an option to allow the end-user to set the base value for all tiles in the advanced options
that would be nice, many times I've thought a "Impassable" option would be nice because even with the "strong" area over something like traps people will still sometimes go over them if another pawn is taking the correct path.
I believe i found the program that makes the base map value 0 in "PathAvoid.dll" but i have limited knowledge when it comes to programming so i don't know how i would be able to edit it. So far i can only observe it with "ildasm.exe" and "JustDecompile.exe"
As for impassable that's impossible with this mod. You have to resort to the base game's area mechanic for that
Update for 1.0
https://github.com/KiameV/rimworld-pathavoid/releases/download/1.0/PathAvoid.zip
Update:
Added an option in Path Avoid options to Enable Preferred.
To access it, check "Advanced Settings" then check "Enable Preferred"
For this to take effect the game must be restarted
got error on load main menu. only enabled mods are hugslib and path avoid. but no error if "Enable Preferred" checked.
Not including prefer
Verse.Log:Error(String, Boolean)
PathAvoid.PathDesignationCategoryDef:<ResolveReferences>b__0_0()
Verse.LongEventHandler:ExecuteToExecuteWhenFinished()
Verse.LongEventHandler:UpdateCurrentAsynchronousEvent()
Verse.LongEventHandler:LongEventsUpdate(Boolean&)
Verse.Root:Update_Patch1(Object)
Verse.Root_Entry:Update()
also "Prefer" not make any marking, looks like its just another "Normal"
I forgot to remove that debug log message
Fixed
Update:
Fixed the issue where Normal was not being persisted in the settings.
Hmm, must be something going on with Github downloads. This one appears borked.
The pathing issue with Vanilla for longer paths? Is that fixed? If not I don't even see a bug report for it in Bug forums?
Yeah github's having issues today :(
Quote from: viperwasp on October 21, 2018, 10:57:19 PM
The pathing issue with Vanilla for longer paths? Is that fixed? If not I don't even see a bug report for it in Bug forums?
Should be fixed.
At last the one for the animals which caused hvy lag.
If normal pawn's can choose their path more clever i can't say.
Hi.
Used mod heavily. Works great. However, lost submenu in architect menu. I see "Pathing" but when I press it, nothing shows up.
Using Simmqol too, and there is option "Avoid designator refresh" in case submenus are missing some icons. But didnt solve anything. Still missing menu to be able to select type of pathing zone and create it. Ideas?
Do you lost the submenu from the beginning, then i would try to move the mod around, at the end of the modlist or near on top.
When the menu disappear during gameplay then i think some error show up that prevent it.
Check the log window and when you see red text post the logfile (Share log button).
Hi Canute.
Thanks for a millionth time.
I didn't solve it but found out it is up to RimSQol mod.
I excluded it from the mod list and Path avoid works. I put it back in on the top and bottom, and Path avoid doesn't have submenu again.
I also moved position of patch avoid, even its position in the Architect tab, but nothing.
I dont have anything except harmless messages in output_log (you mean that log file?).
I think it is from beginning, as I never use it at the beginning of the game but not sure.
I'm also not aware that I changed anything from last game, and then it worked.
Rimmsqol mod creator wrotte that in order to have path avoid working, buttons have to be switched to vanilla buttons.
Possible?
Updated for 1.1
https://github.com/KiameV/rimworld-pathavoid/releases/download/1.1/PathAvoid.zip
Kiame, still the same.
"Rimmsqol mod creator wrote that in order to have path avoid working, buttons have to be switched to vanilla buttons.
Possible?"
Quote from: tile7 on February 27, 2020, 06:18:03 PM
Kiame, still the same.
"Rimmsqol mod creator wrote that in order to have path avoid working, buttons have to be switched to vanilla buttons.
Possible?"
honestly no idea what that modder is talking about. I'm creating buttons from Defs on a new DesignatorCategory. Can't get much more vanilla than that.
Me neither, plus I'm not a moder.
But path avoid and rimmsql don't work together. And both are great.
Quote from: Kiame on February 27, 2020, 11:02:10 PM
Quote from: tile7 on February 27, 2020, 06:18:03 PM
Kiame, still the same.
"Rimmsqol mod creator wrote that in order to have path avoid working, buttons have to be switched to vanilla buttons.
Possible?"
honestly no idea what that modder is talking about. I'm creating buttons from Defs on a new DesignatorCategory. Can't get much more vanilla than that.
Razuhl stated in this post (https://ludeon.com/forums/index.php?topic=46905.msg471647#msg471647) what has to be done in order to make Path Avoid and RIMMSqol compatible:
Quote from: RazuhlPath Avoid's author [...] creates his designators in a custom designator category. However he does so using an argument in the designators constructor. That's not allowed in vanilla which is why he used a custom category. By defining multiple classes of the designator class, each hardwired with the attribute values that are used in the constructor, you create designators that are valid and can be used in the xml API. Making the custom code that is spawning buttons obsolete.
Any thoughts on this? Do you think that we'll ever see these two great mods being used together?
Greetings
"Any thoughts on this? Do you think that we'll ever see these two great mods being used together?"
Same here?
Hey can u make pathways apply prefered path automatically with every pathway built and furniture or stockpiles as disliked or more as an option maybe ? sorry if this is not the place or time for this
Magically Gifted, most likely it won't be a good idea. Actually furniture, items laying on the ground, plants and other objects have movement speed reduction that is honestly counted in pathfinding calculations, so if your pawns sometimes prefer to jump over the chair it's because they know that in this situation it's faster (some people also do that in real life ;)). The problem is that the exact pathfinding requires a lot of system resources, so it's implemented only for short distances while for longer ones it's simplified. Afaik it basically counts average movement cost for some areas instead of single tiles. So in case that you'll set many tiles in your stockpiles or rooms as "disliked", your pawns will avoid to go through these rooms at all rather than trying to find a "clear" way between obstacles.
Using "preferred" mode brings another problem. Without it the minimal movement cost is 0, enabling it changes it to 10 or so and this 10 is added to every tile on map except those that you'll mark as "preferred". But it leads to changes in other things: pawns choosing path from tiles with 1 or 2 movement cost will most likely choose the first ones, while with "preferred" mode enabled they'll become 11 and 12 - the relative difference is much less, so in some cases pawns will prefer less optimal paths.
Another suggestion: an option to let drafted pawns ignore any PathAvoid markings. Usually the pawns are drafted for a reason, and we want them to get to their destinations as fast as possible, so it could be better to use real values for their pathfinding.
Something probably related was implemented in Clutter Doors Stuff (https://ludeon.com/forums/index.php?topic=17610.0).
Update:
Changed how designators are created so it'll hopefully work with rimsql
Hi. Nope.
It is in the architect menu, but no submenu shows up.
Perhaps a load order (suggestions?).
And then I added paint designator, and that one shows up, but your icons, no.
hmm yeah i found rimmsqol mod and i see it's not working. I did what that mod's author said
Ok _now_ works with RIMMSqol
If downloading directly make sure to delete the old PathAvoid directory as the underlying file structure has changed with PathAvoid version 1.1.0.3
Right now I'm unable to start a new colony:
Exception filling window for RimWorld.Page_SelectScenario: System.InvalidCastException: Specified cast is not valid.
at Verse.Find.get_MapUI () [0x00005] in <032d0428bd3b4871b44e7cd832eb5c58>:0
at Verse.Find.get_ReverseDesignatorDatabase () [0x00000] in <032d0428bd3b4871b44e7cd832eb5c58>:0
at RimWorld.GameRules.SetAllowDesignator (System.Type type, System.Boolean allowed) [0x0003c] in <032d0428bd3b4871b44e7cd832eb5c58>:0
at PathAvoid.Settings.SetIsPreferEnabled () [0x00021] in <b86dfa4f084b4a11b16a8c2c8f9ca155>:0
at PathAvoid.Patch_Page_SelectScenario_BeginScenarioConfiguration.Postfix () [0x00000] in <b86dfa4f084b4a11b16a8c2c8f9ca155>:0
at (wrapper dynamic-method) RimWorld.Page_SelectScenario.DMD<DMD<BeginScenarioConfiguration_Patch1>?1158924416::BeginScenarioConfiguration_Patch1>(RimWorld.Scenario,RimWorld.Page)
at RimWorld.Page_SelectScenario.CanDoNext () [0x00014] in <032d0428bd3b4871b44e7cd832eb5c58>:0
at RimWorld.Page.DoBottomButtons (UnityEngine.Rect rect, System.String nextLabel, System.String midLabel, System.Action midAct, System.Boolean showNext, System.Boolean doNextOnKeypress) [0x000e0] in <032d0428bd3b4871b44e7cd832eb5c58>:0
at RimWorld.Page_SelectScenario.DoWindowContents (UnityEngine.Rect rect) [0x000ab] in <032d0428bd3b4871b44e7cd832eb5c58>:0
at Verse.Window.InnerWindowOnGUI (System.Int32 x) [0x00165] in <032d0428bd3b4871b44e7cd832eb5c58>:0
Verse.Log:Error(String, Boolean)
Verse.Window:InnerWindowOnGUI(Int32)
UnityEngine.GUI:CallWindowDelegate(WindowFunction, Int32, Int32, GUISkin, Int32, Single, Single, GUIStyle)
I didnt try new colony, but with one I'm already playing, it's finally working.
Fixed the issue preventing new colonies. Sorry about that! -_-
Quote from: Kiame on May 01, 2020, 12:37:42 PM
Update:
Changed how designators are created so it'll hopefully work with rimsql
Sorry for not replying, earlier. This is some A-level support! Outstanding! Thank you very much!
Updated for 1.2
I was informed the 1.1 version seemed to break with the 1.2 update. I've recompiled the 1.1 dll which will hopefully fix any issues. The 1.2 version has that updated 1.1 file - https://github.com/KiameV/rimworld-animalcostumes/releases/download/current/AnimalCostumes.zip
Update:
- Hot keys are applied to path buttons
- Added a button "Map Settings". From this window, pathing can be set by terrain types on a map as well as a whole map reset.
Update:
Changed how terrain types were found for the Terrain Type drop-down. Should now support all biomes
Update version 1.2.0.3:
Try 3 at loading all the different types of terrain for the current map.
Updated for 1.3 - Direct Download (https://github.com/KiameV/rimworld-pathavoid/releases/download/1.3/PathAvoid.zip)