Hi there, I created a Deck, created three different cards in it, and set the deck as unlimited. I created an API, that shall pick a given card from the deck and deal a certain amount of this card to a player. (It's for Savage Worlds, my deck are my bennies, each card is a different benny type, and I want my bennies supply to be unlimited. the script is to quickly deal bennies to players at the start of the session, usually 3 of a kind, and sometimes one or two of another kind, depends on the setting or the players' edges). Basically I did : draw give draw give First draw works fine. First give works fine. Second draw tells me the card is not in the deck (message in sandbox console : "That card is not in the deck.") . Even if I shuffle before. Since I use an unlimited deck, the given card should be given AND remain in the discard. Here is a sample code uploaded as Gist , that showcase what's not working. The script is an api command that draw twice a given card by id, and give both to a given player. Here is a screenshot of result of that command executed twice in a row (first call, first draw works, second fail, second call, both draw fail). Note that : shuffling after/before/inbetween doesn't change anything. After the give, the card is no longer in the deck nor discard. It's only in the player's hand. drawing and giving works with unlimited deck if you don't specify a card. e.g. If I create an unlimited deck of 3 cards, and draw and give 7 cards in a loop in a single command, everything behaves as expected, 7 cards are given to the player, 2 of each, and one "random" (the top after the last shuffle). giving a card to the player without drawing it, works fine (I included an example as the last times of my gist-uploaded code above) So : drawCard(deck) works drawCard(deck, card) is incomplete for unlimited decks giveCard(card, player) works even if the card wasn't drawn before. And so works fine for unlimited deck to give cards by name from the deck.