I updated my copy of Outpost2DLL\Functions.h slightly.
OP2 class Trigger __fastcall CreateSpecialTarget(int boolEnable, int boolNoRepeat, class Unit & specialTarget /* Lab */, enum map_id sourceUnitType /* mapScout */, char const *triggerFunction);
OP2 void __fastcall GetSpecialTargetData(class Trigger & specialTargetTrigger, class Unit & sourceUnit /* Scout */);
You create the SpecialTarget trigger much like any other trigger. The
Unit is the target that may need to be scanned, or otherwise moved next to, such as a Lab or Command Center. The
map_id is the type of unit that activates this trigger when it is brough next to the specified unit.
When the trigger is fired, you can find out which unit caused it to activate by calling GetSpecialTargetData. It will return the unit that approached the target unit and thus activated the trigger, such as a scout or evacuation transport. (So if you had multiple units of the same type (scouts, evacuation transports, etc.), it'll tell you which one was responsible for activating the trigger).