For your first question have you tried to add more waypoint so that the NPC doesn’t walk on the grass or is it something in your script if so please share it.
and for the second one, the client-sided way is more lag efficient
Like you mean invisible parts on intersections and end locations? That coul work, only problem i have with that is how to make script find it’s “way” to next invisible path what will lead to destination?