"On Created" is called before the "Create" event returns, so there is no way the gotoUID will have been set, assuming it is set after the create. Just move "Find path" after your create events.
I have done that but all the villagers still go to first town.
i.imgur.com/wtcXPOe.png
Here are the relevant events.
Generally speaking, if you want an event to run for each instance of an object instead of one time for all of them, you want to use the system "for each" condition.
Thanks for the advice but when the villagers are spawned they are told what to do, so I don't think there is a need for a 'for each'.
I would use a for each, however, if I wanted to make sure that all the villagers are doing something, but for now, I just want them to go to their respective town when spawned.
---
I know for a fact that when the villagers are spawned their variables are set correctly.
I feel like there is something REALLY obvious that I am missing...