only the Fighter_Control created first is picked as the one colliding-- even if it is completely not in motion
It doesn't matter which sprite is in motion. Collision event between two instances Obj and ObjFamily only triggers once.
If you need to process pairs of fighters, to decide which one makes a punch and which one gets hit, update animations etc., use this code:
The function will be triggered two times, for Fighter1+Fighter2, and Fighter2+Fighter1.
.
If you want to process each instance separately, don't use a family. "Obj on collision with Obj" will pick both instances, so inside this event you can do "For Each Obj" and it will loop two times.