> It was, most PlayerFamily objects are not swimming, and I actually never tested the issue with one that was swimming.
You may be hitting the old issue with OR-blocks:
if IsSwim=false and other conditions are true, the event runs, but with zero family instances picked. PlayerFamily.UID in this case will return 0.
This would explain why you were able to fix your code by adding "Pick All".
This might not be the case here, since he mentioned that the UID is logged correctly without the previous text object creation action, but enabling it would make the UID 0. It seems the text object creation is the one interfering?