This script adds a single API command, !mark, available to all players. Syntax: !mark !key=value[,key=value[,key=value...]] [status [type]] , !mark name [status [type]] , or !mark !all [status [type]] The first argument to the command defines what tokens will be affected. As you might expect, !all will affect all tokens (on the current page). You can also use a token's name explicitly. You can use any number of key=value pairs to get a subset of the tokens; the only tokens affected will be those that meet all of the criteria defined by the key=value pairs. Keys available are: distance controlledby bar1 bar2 bar3 distance accepts: number &gt;number &lt;number nearest furthest Number should be a whole number of squares. The command will find tokens N or more squares away (&gt;), N or less squares away (&lt;), or exactly N squares away. Distance is calculated from the currently selected token. The currently selected token will never be part of the marked group if any distance key is used. The nearest and furthest values are special. All of the other key-value pairs will whittle down the group of tokens to mark, and then nearest/furthest will be used to select the appropriate token (or tokens, if there are several equidistant ones) from the remainder. Combining nearest and furthest into a single call will not do very much; the first of the two used will reduce the targets list to a single ring of tokens, and the other won't do anything. controlledby accepts: none name If none is used for the value, the command will find tokens with no controller or which represent a character with no controller (generally, this will be the NPC tokens, but it does depend on how the GM sets things up). Otherwise, the command will try to find tokens controlled by a player with the given name or which represent a character with the given name. If the player or character name contains spaces, you must replace them with hyphens (eg: Victor-Hugo instead of Victor Hugo) bar1 , bar2 , and bar3 accept: number &gt;number &lt;number If no greater-than or less-than modifier is used, the command searches for tokens with exactly N as the current value in the relevant bar. Otherwise, N is treated as a percentage in the [0..1] range, and both current and max are required for the bar. Bar values equal to the percentage will be captured, so !mark !bar1&lt;.5 will find all of the bloodied tokens in a D&amp;D4 game (assuming bar1 is being used for health). status is optional. If it is omitted, the marked tokens will gain the purple statusmarker. Other statuses and their relevant statusmarkers are: binded (or blind): bleeding-eye dazed (or daze): pummeled deafened (or deaf): screaming dominated (or dominate): charmed-heart immobilized (or immobile, or immob): fishing-net marked (or mark): purple -- this is the default! petrified (or petrify, or stone): white-tower prone: back-pain restrained: aura slowed (or slow): snail stunned (or stun): lightning-helix weakened (or weak): broken-heart ongoing (or damage, or dam): varies, see below statusmarker : statusmarker -- this allows setting the marker directly by name none If the given status is ongoing , damage , or dam , an additional argument to the command becomes useful (but is optional), which indicates the type of ongoing damage: acid: chemical-bolt cold: frozen-orb fire: half-haze force: blue lightning: edge-crack necrotic: death-zone poison: skull psychic: pink radiant: angel-outfit thunder: yellow If the type is not specified, the all-for-one statusmarker will be used. If the status is none, then all statusmarkers will be removed from the targeted tokens. TODO: I want to change this so that the command only removes the marks you put there yourself (save, perhaps, the GM! ~_^). I think a means to limit the number of tokens selected would be good (for example, Hunter's Quarry targeting one enemy that's closest, if implemented with the current script, might target multiple if they're tied for closest). <a href="https://gist.github.com/Lithl/6256562" rel="nofollow">https://gist.github.com/Lithl/6256562</a>