If you make them token actions, this macro i provided (using selected, with corrected skill names) would work for every character. That's probably the best approach. You have to use the full call for each attribute (eg @{selected|skill-name} - you cant build them from parts in macros. There's no way to do, for instance, @{?{charactername}|?{skillname}}. This is because of the macro order of operations. when you launch a mcro, here's the order these things happen: roll20 looks through the macro, sees attribute references and looks them up, and replaces them with the found value everywhere they appear in the macro. roll20 now does queries, asks the user for their pick, and then replaces the query with the resulting value. With this syntax @{tokenName|{?{skillName_difficulty}} roll20 first tries to find an attribute named @{tokenName|{?{skillName_difficulty}}, then tries to do the query ?{skillName_difficulty}. Obviously this will always fail, because the query needs to be done first, and roll20 doesnt do them in that order. Back to your question, if hard, easy, etc are standard difficulty modifiers, what you could do is something like this /r [[1d100]] against [[?{difficulty| Athletics,Athletics of @{Frodo|Athletics}| Dodge,Dodge of @{Frodo|Dodge}| Willpower,Willpower of @{Frodo|Willpower}} + (?{Difficulty|
Easy,20|
Standard,0|
Hard,-20}) ]] The user would be prompted twice - to choose a skill and a difficulty, and it would then show the actual number.