This doesn't work because the actor is spawned in the RandomSpawner's PostBeginPlay method, which, due to being spawned after the ACS VM, isn't called until after the ACS VM is done ticking.
As Blue Shadow said, you'll have to delay the Thing_SetGoal call.
Matt wrote:EDIT: i've attempted to move all the postbeginplay spawning/transferring stuff into this randomspawner's beginplay (and have its postbeginplay call actor.postbeginplay instead), and there's no difference.
EDIT: If i change that spawnspot to an imp with TID 230, the Thing_SetGoal with no delay works fine. Is it that the rest of the undelayed ACS script is being called before any spawned actor can call BeginPlay?
Moving the spawn to BeginPlay doesn't work because BeginPlay is called immediately after the actor is spawned, before its TID can be changed by ACS, so the RandomSpawner ends up spawning its actor with a TID of 0.