Kenan Millet said: I guess I'm a bit confused @timmaugh. Are you suggesting that I can pass token IDs to SelectManager in a command, and it WILL add them to the msg.selected for that command even if the token IDs that I pass to SelectManager are on a different page? Sooooo... you're right. I just double checked and while I'd opened up Fetch to retrieve token information via page reference, I hadn't opened up SelectManager to do the same thing. So while Fetch *would* retrieve the token ID from another page for you, SelectManager was losing that token because it didn't cmoe from the same page that you were on. But I just fixed that in SelectManager and pushed the update into the merge queue. Once that propagates down to your game, you should be able to EITHER: use a Fetch construction with a page reference to retrieve the token ID, i.e., @(Bob[Token Library Page].token_id), ...or... use an explicit token ID you've pre-retrieved from another page and hard-coded into your command line If you need it before the merge happens, you can modify SelectManager yourself. Change line 234 to: let alltokens = [...findObjs({ type: 'graphic', pageid: pageid }), ...findObjs({ type: 'text', pageid: pageid }), ...findObjs({ type: 'path', pageid: pageid })] Obviously the second option is more static (having to pre-retrieve the token IDs from whatever page they are on), however it does come with the benefit of not having to defer other constructions that would establish or rely on the token being in the msg.selected array. The opposite is true for the first option... it offers the benefit of being more "run time" oriented (you don't have to know what the ID is of the "Bob" token on the "Token Library Page" page, you just need to know that you HAVE a token named "Bob" on the "Token Library Page" page), but it *will* require the deferrals. For instance, since Fetch runs after SelectManager (by default), you'd have to defer the "select" construction that would be establishing the select tokens: {\&select @(Bob[Token Library Page].token_id) } And if you were going to retrieve any information from the selected token in the command line, it would have to be deferred to wait until SelectManager had a chance to select the token: @\(select.hp) All together, that could look like: !The HP of @\(selected.name) is @\(selected.hp). {&simple} {\&select @(Bob[Token Library Page].token_id) } A quick explanation... In any metascript loop, SelectManager will run before Fetch: Loop N SelectManager Fetch Since SelectManager will rely on Fetch having returned the ID of the token to select, we can't let it try to find the token before the Fetch construction has resolved. That means we defer it (to hide the construction), and our work proceeds as: Loop 1 SelectManager - no work detected Fetch - retrieve ID of Bob from "Token Library Page" Loop 2 SelectManager - select the token with the ID (as returned by Fetch in Loop 1) Fetch - retrieve info from the currently selected token (as selected by SelectManager in Loop 2)