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
>number
<number
nearest
furthest
Number should be a whole number of squares. The command will find tokens N or more squares away (>), N or less squares away (<), 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
>number
<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<.5 will find all of the bloodied tokens in a D&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>