I randomly found a quirk when I was switching an existing function to be a Custom Action. The game is a 2D shooter with the player able to face either left or right and fire projectiles along the horizontal plane.
The events pictured above, named "spawn_Projectile", both do the exact same thing: spawn a bullet sprite "Dart_Default" on the image point of a weapon sprite, set a damage variable, and then check to see if the Player is mirrored, and mirror the bullet accordingly. The code worked perfectly fine when it was originally inside a function.
The funny thing is that when I first copied the code from the Function to the Custom Action I got a bug. If the player fires a bullet in the non-mirrored direction (right), then turns and fires a second bullet in the mirrored direction (left), and the first bullet is still on the screen, then the isMirrored toggle will apply to BOTH projectiles, the one just spawned from the barrel of the gun and the one still in flight.
It caused some pretty cook telekinetic like visuals, where I can instantly change the direction of bullets mid-flight by shooting in the opposite direction and have a whole swarm of bullets bouncing back and forth across the screen.
Still I had to fix it, and found that adding a "Pick Last Created (Dart_Default)" solved the problem. But why? That Pick Last Created is the only difference between these two events, other than the fact that one is a custom action and one a function. Is there some Picking rule that is unique to either? Does it have to do with the fact that the dart objects were recently created within the event?