Here are the changes I made:
I deleted global property ValueCheck.
Changed Send to Location to “Current Zone”.
Moved PrimaryLocation to be a module level global, since it actually got far enough to give me an error message.
Result: Every card in the game (all decks, even sides not playing) except Primary cards were moved to location 4 in one giant stack.
I then went back and removed the dollar signs from the main GKC and the Value Check GKC, and tried again.
Result: Exact same.
I then went back and noticed your quotation marks around Primary. I added the quotes.
Result: Only the Primary cards were sent to the main board, but all in a stack at location 4.
I moved the Send to Location above the Set Global - Primary in the trait list.
Result: Primary cards all went to location 4, but they were in the correct order (highest on top).
They were sent there in the right order. This means that the only problem is the PrimaryLocation incrementing. I think it has something to do with the fact that it increments on SHIFT I (every loop increment) rather than only when a card is sent or Value = ValueCheck. As such, it is already at 4 when it reaches the lowest card (have been using Value 4 by chance).
Thank you again for all your help. I’m so close now!