All I see is blonde, brunette, red-head.... =D So, I see 2 ways to go about doing this: 1) Store the sizes in the table encoded as part of the name: Cone of Code [30x30] 2) Size specified by the command !summon-effect Burning Hands 15x15 3) (ok, I lied.. 3 ways at least...) Default to 1, but override with 2. Here is the basic order of operations as I see it: Parse the command for the effect name (and size argument if present) Look in the table (of known name, Spell Effects perhaps?) for an item with the same name (lower case both) Create a graphic token with: The table item's graphic as the token's graphic The table items's name as the token's name visibility by players for the name control by the player who created it on the object layer, forced to back (probably? Should be a config option...) Sized based on either the encoding in the name or the argument positioned at.... somewhere.... ? If we know the token that is performing the action, we can place it adjacent. If we know the target, we can place it there if we don't know either, we can find all tokens controlled by the calling player and place it adjacent to the first one. Worst case, we could add a token id/character id to the command (actually, we can do it automatically, like in my Use Power script. So, if I were writing this (or, WHEN I'm writing this... =D ), this is the command I would use: !summon-effect [Character ID] some free form name of an effect [size] I'd shamelessly steal the code I wrote in Use Power for adding and updating the Character ID to the command. On execution, I'd split the arguments on /\s+/ to get the words. I'd shift() the character ID off the front. I'd check the last argument against /\d+x\d+/ (or similar) and .pop() it if it matches and use it for sizing, I'd .join(' ') the remaining arguments to form the name and search for the table item. I think that about covers it...