I've updated the script in the second post, and instructions in the first. I havent used the ~ filter, I've changed the = to incorporate it. I'll repeat the rules here: The rules are: = (an equals sign): tests if the attribute being tested is equal to the given value. If its a text field, it accepts partial matches (so if you supply a test of "=comb" it will match "combat"). ! (exclamation mark, not equal to): the reverse of the above. For numbers, it tests if the value is different. ( !0 is not equal to zero, handy). Go text, it checks if the test is NOT included in the attribute value. spellname!detect will exclude any spells with detect in their name, for instance. > (at least equal) : checks if the attribute's value is at least equal to the given match value. Only for numbers. So >0 will include all numbers 0 or greater. >10 includes all numbers 10 or greater. < (less than): Less than. <10 will only show values 9 and below. No Symbol: if you just include an attribute to test, but enter no comparison, it is treated as !0 . You are looking for any attribute value that exists and is not equal to 0 or "". This is handy for showing prepared spells, active powers or gear, and the like. Notice the behaviour of > and < is slightly different. > includes the number supplied, and < doesnt. I think this is the most likely needed behaviour, let me know if this is wrong. Keith, I've also changed the non-roll button trigger from an = to a !, so those non-rolls that were named button= should now be button! Hope this isnt too tiresome!