This is a major overhaul of Page Navigator that I have been working on for the last couple months. This version changes much of the script's function and commands. Because of this, when you start up a game that has previously had Page Navigator v1.X installed, you will be prompted to approve the upgrade or downgrade yourself back to the previous version (by going to your api scripts page). Code can be found in my repository and will be pushed for one-click install after a couple weeks of beta. Summary of Major Changes: Command syntax changes: The command syntax has changed dramatically to allow more streamlined command parsing and to make it easier for users to control all aspects of the script via macro Teleportation improvements: Token teleportation is now much faster. In addition, if you have token removal enabled, the script will copy the current state of a character's pre-existing token on the VTT (it will copy the first one it finds), rather than only creating a token based on a character's default token. Destination Token Setup Wizard: There is now a setup wizard for destination tokens. Access it by entering !nav --setup while having a token(s) selected that you want to make into a destination token or update its parameters. Page Tags: You can now tag your pages to more easily find them in the script menus by putting your tag on the end of the page's name and surrounding each tag in single square brackets. This also changes how pages are tagged as player accessible. The players tag is created by default and tagging a page with [Players] will add it to that folder and make it player accessible. In addition, you can change player access to any folder from the script's config menu. See below for the full help text Thanks to Aaron and Stephen S. for their insight into several issues during the overhaul. Thank you to Keith Curtis for the banner artwork. Page Navigator allows you to more easily move your players from page to page. Movement can be triggered by chat command or token movement. The script will also handle creation of tokens on the new page for moved players. Movement Commands & Token Setup Chat Triggered page change: All players, only those currently in the player ribbon, or specific players can be moved to any page in the game, or returned to the player ribbon. The basic syntax for a move command is: !nav --move,page=PAGENAME,landing=LANDINGTEXT|whole/current/characterid|characterid|characterid|... Token movement triggered page change: Using this function requires that destination tokens be set up. Whenever a token controlled by a player ends its movement on a destination token, a chat prompt is sent to ask if the character should be moved to the page linked to that destination token or not. The prompt is sent to players only if the destination page is contained in a page folder that players have been given unrestricted access to. See the "Other Options" section below for more information about folders. In order to setup a destination token, the token must be named the same as the page to which it links with the exception of any folder names the page has been tagged with. Token Teleportation: When moving players to a page, the script can create tokens for each player at a destination token. The default characters to create tokens for for each player can be set in the config menu. In order for teleportation to function, destination tokens (from above) must contain a JSON in their GM notes field of the following format: { "landingLocation":"Location text of linked token", <=- Optional "location":"Location text", <=- Optional "chat":"Chat message/API command to send when moving to this destination token", <=- Optional "polygon":["Array of polygons limiting token generation"] <=- Only needed if location text is entered } You can setup destination tokens by using the Destination Token Setup Wizard via the command !nav --setup. You must have a token selected when you enter the command. Miscellaeneous Commands and Other Functions !nav --config Brings up the config menu. Folders are designated by tagging pages with whatever folder name you would like enclosed in square brackets (e.g. [FolderName]). Each folder name should be in its own set of square brackets. Any time you reference a page by name for the script, do not incude the folder tags in the name. The script automatically creates two folders, an "All" folder (which pages do not need to be tagged with) and a "Players" folder which can be used to tag pages as with any other folder name. Access restrictions for folders can be set in the config menu. If a page is contained in any folder that has player access, players will be able to send themselves to that page and any destinations therein without GM approval. When teleportation is enabled an additional option will be created in the config menu to automatically remove other tokens for teleporting players before creating new tokens for them. Example Use Cases Assuming pages named Scrapwall [Numeria][Scrapwall] with locations of "Clockwork Chapel"(LinkLocation:entrance) and "Raider Hideout"(LinkLocation:entrance), Clockwork Chapel[Numeria][Scrapwall] with a location of "entrance"(linkLocation:"Clockwork Chapel"), and Raider Hideout with a location of "entrance"(linkLocation:"Raider Hideout"). And characters named Jonos,Kindle, and Violet. Move player(s) controlling Jonos to Raider Hideout: !nav --move,page=Raider Hideout|@{Jonos|character_id} Move as before and create default token(s) for the player(s): !nav --move,page=Raider Hideout,landing=entrance|@{Jonos|character_id} Return Jonos to the player ribbon: !nav --move,page=return|@{Jonos|character_id} Return as before, but query where to generate a token: !nav --move,page=return,landing=?|@{Jonos|character_id} Full Command Syntax Guide This is the full guide of the chat commands available. Syntax is given with optional arguments enclosed in square brackets (e.g. Required Argument vs. [Optional Argument]). Mutually exclusive arguments are separated by a forward slash (/). Move Command: !nav --move,[page=PAGENAME/pageID=pageid],[landing=LOCATIONTEXT/?]|[PLAYERNAME/PLAYERID/CHARACTERID]|[PLAYERNAME/PLAYERID/CHARACTERID]|... page=PAGENAME: The page name, without the folder tags, of the page to move to. If the command is sent by a player, itwill be ignored if the page is not contained within a player accessible folder. pageID=PAGEID: The page id of the page to move to. This will probably only be used by the script itself or other APIs as there is no way for users to access the page id. landing=LOCATIONTEXT: This is the location text of the token where tokens should be created. If a "?" is entered as the location text, a menu prompt will be sent to the messaging player to ask what destination to use. PLAYERNAME/PLAYERID/CHARACTERID: The player name, player ID, or character ID to be moved. If no page is specified a prompt will be sent to the messaging player to ask what page to send players to. If no player or character is specified the command will not be processed. Configuration Option Controls: !nav --config,[remove=on/off],[teleport=on/off],[folder=FOLDERNAME,access=gm/players],[control=whole/current/self],[dmarker=statusmarker name/name only] If no additional options are entered, then the config menu will be displayed. Will only use the first of these the script encounters. remove: This sets token removal on or off. Token removal causes all other instances of tokens representing teleporting characters to be removed before creating new tokens at a designated destination token. folder: Designates what folder that you would like to change the access state of. Folder access information is stored in the Page Navigator character in an ability called Page Folders . access: This sets player access for the indicated folder. control: Sets player's ability to move others to new pages (whole=all players, current party=only those currently on the player toolbar, self=only themselves). dmarker: Sets what status marker is used to define destination tokens. Can be the name of a statusmarker or "name". If "name" will only look for tokens that are named the same as a page. teleport: Sets token teleportation on/off. Destination Token Setup Wizard: !nav --setup Wizard Buttons: Token Name: Clicking this button will bring up a query with options for the names of all current pages. You can also enter the name of yet to be created name by selecting the "PAGE NOT CREATED YET" option Boundary: Select polygonal paths that you want to use to bound the token creation area for the destination token and then click this button. All polygons selected should create a closed shape as the script determines whether tokens can be created from a destination via a flood-fill algorithm. Location Text: Clicking this button will bring up a query similar to that of the Token Name for selecting or entering custom text to describe the location of this destination. linkLocation Text: As the button for Location text, but describes the location of the destination token this token links to. Chat Command: Allows you to enter a line of text to be sent to chat when players are moved to this destination. Can be used to have the script send API commands based on party movement. Menu Image Examples Config Menu Movement Approval Dialog Unspecified Page Movement Dialog Destination Token Wizard Changelog: V2.1 Fixed several bugs that made the script unusable V2.0 Improvements to teleportation logic and storing of character tokens improved command syntax Destination Token Wizard Folders (tags) v1.x See the previous thread