For your first problem you just need to destroy the initial shadow.
[code]Start of Layout:
The "A is overlapping B" condition filters object A and loops over all the collision pairs with B. An inverted "A is overlapping B" is just a filter for A.
So in event 2:
a. All the ShadowCasters not overlapping the player are selected.
b. Of the selected only the ShadowCasters with "haveShadow" are selected.
c. Now each Shadow.CasterID is compared with ShadowCaster.CasterID with this pattern
1st selected Shadow.CasterID is compared with the 1st selected ShadowCaster.CasterID,
2nd selected with 2nd selected... and so on.
You second example runs like this pseudo code:
For each clown overlapping player:
if clown havekid:
select kids with id=clown.id
destroy selected kids