you can get actual group leader the player is in with
_groupleader = leader player
this wont work if you make a MP map since "player" is local on client machines and therefore different on each client.
When i think about it, as long all playable units belong to the same group, this should work.
so just modifiy architects script in this way:
#Start
_grpleader = leader player
{_x setPos [(GetPos _grpleader Select 0) - 250*Sin(GetDir _grpleader),(GetPos _grpleader Select 1) - 250*Cos(GetDir _grpleader),0]} ForEach Units SpetzGrp1
Goto "Approach"
#Approach
? Not (alive Spet1) : Goto "End"
spet1 setbehaviour "combat"
SpetzGrp1 Move GetPos _grpleader
? _grpleader distance Spet1 <=25 : goto "End"
~20
GoTo "Approach"
#End
Exit
@The-Architect
please check if i did it right, will ya?