First off, thanks for your reply. That is actually exactly what I'm doing. I'll try to tell you what happens in the code, hopefully that can better explain what happens. The one thing to know preemptively is that each NPC has a schedule telling it what to do. The schedule is stored in an array and broken up into events. So the first event in the day would be like walk to your kitchen table, or something. Once the NPC has done that it will grab its next event which also has a time that it should execute. Once the game reaches that time it will perform the next event, so on and so forth.
Without delving too deep the basic logic is as follows.
1. Call initial event to tell each NPC to grab its very first event in their schedule.
2. Each second there is an event that checks if any NPC should be starting its next event.
3. When the prior step triggers a function is called which passes the NPC UID.
4. This newly called function does a few extra things but then using the NPC UID is was passed tells the NPC to find a path.
5. Last there is an "on path found" trigger that tells the NPC to move along its path, I will say that this "on path found" event doesn't reference any UID, I figured it didn't need to since only one NPC should ever have "found a path" at a time.
Another note for step 5, from what I've seen only one NPC can be finding a path at a time, so I'm assuming the engine should know exactly who found a path without needing to reference a UID. If one gets stuck trying to find a path it holds up the rest until it is done. From what I've read, assuming I've read right, this is intentional for C2.