Is this quest persistent for each PC, or is this a once per server reset quest?
If it is once per server reset, then it would be best to spawn the villain by a trigger with an on enter script. Once a PC enters the trigger, spawn the villain, and put a variable on the trigger, so that it only spawns once. You could also have the trigger spawn the villain, and then destroy itself. Placing the villain on the map works too, but you will have all of the villain's scripts running all the time, until the villain is killed.
If the quest is persistent for each PC, then have the script place the variable on an item in the PC's inventory. You can also use the campaign variables. You would then need a second variable that resets itself after a certain amount of time has passed, so that the villain would not spawn again if another PC entered the trigger.