So the first part of the system I wrote was the GUI for interacting with NPCs. I wanted something the players would be able to use easily. This is what I came up with.
The next step was to write some function to find positions on the map for various situations. This was to be used for randomly positioned traders. After some testing I got some functions that worked well.
Now I needed some trader camps making, for this I used M3Editor and grabbed the relative positions of each camp so placing them means just adding a single position/direction into scripts.