If you don't mind an API solution, there's a little snippet that will gather the party to the page the GM is on:  !gather-party  Script:  on('ready',()=>{
  const getPageForPlayer = (playerid) => {
    let player = getObj('player',playerid);
    if(playerIsGM(playerid)){
      return player.get('lastpage') || Campaign().get('playerpageid');
    }
    let psp = Campaign().get('playerspecificpages');
    if(psp[playerid]){
      return psp[playerid];
    }
    return Campaign().get('playerpageid');
  };
  on('chat:message',msg=>{
    if('api'===msg.type && /^!gather-party(\b\s|$)/i.test(msg.content) && playerIsGM(msg.playerid)){
      const who = (getObj('player',msg.playerid)||{get:()=>'API'}).get('_displayname');
      const pid = getPageForPlayer(msg.playerid);
      const page = getObj('page',pid);
      Campaign().set({
        playerspecificpages: false,
        playerpageid: pid
      });
      sendChat('',`/w "${who}" <div>Players gathered to page: <code>${page.get('name')||"[Untitled]"}</code></div>`);
    }
  });
});