Hi,
I am using the onObjectDropped() function in the Global script to handle when my players drop an object (in my case, cards in the game). I have a zone that if the card is dropped in it, it calls my MoveToDiscard() function which moves the card to the player's discard zone (a convenience), using obj.setPositionSmooth() and obj.setRotationSmooth().
However, if a player drops one card on the zone to move it to their discard, and then drops a second card before the first has finished moving, the second card also gets pulled to the discard zone and rotated, even though the second card was not being dropped in the triggering zone!
I added a print statement printing the card name of the card triggering the MoveToDiscard() function, and it only prints a single name of the first card.
I also tried changing the parameter passed to the MoveToDiscard function from dropped_object that is supplied to onObjectDropped(), to the guid, in the hopes that doing so would make a separate instance and not trigger the double-move. However, this didn't work, leading me to suspect that the onObjectDropped() function must therefore be a single instance/thread, including any variables created in that routine, and dropping the second card before the first has finished its move somehow causes the moves to execute again erroneously on the second card.