re-posting this from bug reports & technical issues, on recommendation: Hello. I'm currently scripting some extended functionality for playing cards. I'm taking it a chunk at a time, and currently am attempting to use the pickUpCard() function to pick up a selected card from the table when a script is called. Long term, more will be done with that card once it's removed, based on cardid, but for the basic functionality, the code looks like this: on("chat:message",function(msg){ if(msg.type=="api" && msg.content.indexOf("!tt")==0) { //Get selected card var selected = msg.selected; var card = getObj("graphic",selected[0]._id); //log the card id for debugging log("card type: " + card.get("cardid")); //pick up selected card via its cardid pickUpCard(card.get("cardid")); } }); this compiles fine and runs, but unexpected behavior occurs under certain circumstances. A single card is played from deck or hand The script is run with that single card selected. The card is removed and sent back to the deck list as though it was recalled. Exactly what I want to happen Multiple cards are played from the deck or the hand: the first card played is selected and the script is run. again, it functions as intended, recalling the 8 of spades to the deck as though "recall" were used (ignore that 10 of diamonds was selected in previous screenshot. It was just the last played when I took the screenshot. 8 of spades was selected when I ran the script) log of the last script run selecting and running the script on the next of the 3 cards. Nothing happens log of the "3 of spades" script run so for some reason, when multiple cards are played to the table, pickUpCard() will function for the first of these cards, but not for any subsequent cards. What is bizarre, is the get.("cardid") still pulls and logs the correct id for the selected card, but for some reason pickUpCard() does not recognize those cards as existing on the table. perhaps even more strangely, is after an erroneous run of the script, this behavior will reset and replicate, which is to say out of any new cards played to the table, the first of them will function correctly by pickUpCard(), while additional cards will not be recognized as existing, and likewise, the cards that failed to function previously will still not function.