Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×

Macro Disfunction

So, my apologies if this is already posted somewhere.  I googled, and sifted through some of the topics here, but I'm not seeing anything resembling the issue I've been having with my macros. Basically, what I'm trying to do is set up a macro to list out the D&D 5e skills to select using the '?{select a skill| options 1| option2| etc...}' method; however, I'm also trying to include an extra list that includes only proficient skills.  Which, I feel should be manageable in multiple ways but I keep running into a wall. First, I'll write out the macros exactly so you can see those: Macro Name:  Skills ?{Skill Select|Acrobatics, @{Marcus Kilganon|Acrobatics}|Animal Handling, @{Marcus Kilganon|AnimalHandling}|Arcana, @{Marcus Kilganon|Arcana}|Athletics, @{Marcus Kilganon|Athletics}|Deception, @{Marcus Kilganon|Deception}|History, @{Marcus Kilganon|History}|Insight, @{Marcus Kilganon|Insight}|Intimidation, @{Marcus Kilganon|Intimidation}|Investigation, @{Marcus Kilganon|Investigation}|Medicine, @{Marcus Kilganon|Medicine}|Nature, @{Marcus Kilganon|Nature}|Perception, @{Marcus Kilganon|Perception}|Performance, @{Marcus Kilganon|Performance}|Persuasion, @{Marcus Kilganon|Persuasion}|Religion, @{Marcus Kilganon|Religion}| Sleight of Hand, @{Marcus Kilganon|SleightoHand}|Stealth, @{Marcus Kilganon|Stealth}|Survival, @{Marcus Kilganon|Survival}|} (note, as you can see I'm using attribute references which just look like this:  ** Performance** [[1d20+@{Marcus Kilganon|Cha}]]  ) Macro Name:  Proficient-Skills ?{Select a skill|unlisted|Oh Well}| (This macro is unfinished because the character is unfinished, so those are just placeholders for testing purposes) Finally, I tried making an ability that tries to create a selection list between those two macros. Ability Name:  Untitled ?{Proficient?|Yes, #Proficient-Skills |No, #Skills } The results of the ability/macros doesn't make a lick of sense to me. First Selection: Proficient? (pop-up) Results in: Results in: Yes (Should be proficient skills only) --> Select a Skill (pop-up) No              --> (This should have been in the first pop-up) Skill Select (pop up)- [wants manually typed data] Or a list of all 18 skills (Which should have been following the "no" option in the first pop-up) --> Selected skill works great Unlisted  (Should only be listed when I hit yes) Oh Well  (Should only be listed when I hit yes) Maybe this is way to confusing as is.  The verbally, it seems that the macros are not following their own rules and instead are mixing.  In my first selection pop-up it let me answer yes, but then it listed the options from the yes options whereas the yes option read out like the no option and in fact, the no option is only available after selecting the yes option without doing what it was meant to do. I can take it if I'm doing something wrong, but I know the macros will work, they just won't cooperate at all while intermingling like this.  Please help?
1480631052

Edited 1480631178
Tetsuo
Forum Champion
The macros you're trying to call with the query need to have problematic characters replaced with HTML entities. See here for more information : <a href="https://wiki.roll20.net/Macros#Advanced_Usage_for_Roll_Queries" rel="nofollow">https://wiki.roll20.net/Macros#Advanced_Usage_for_Roll_Queries</a>
1480632882

Edited 1480633353
Scott C.
Forum Champion
Sheet Author
API Scripter
Compendium Curator
Some thoughts in addition to Franky's spot on suggestion for your immediate problem. Logan said: (note, as you can see I'm using attribute references which just look like this: ** Performance** [[1d20+@{Marcus Kilganon|Cha}]] ) Are you saying that @{Marcus Kilganon|Performance} is ** Performance** [[1d20+@{Marcus Kilganon|Cha}]]? I don't know what sheet you are using, but something to keep in mind with attributes and abilities is that they are case insensitive when looking for a match. This means that if the character sheet you are using already auto-generates a performance attribute, then calling @{Marcus Kilganon|Performance} (expecting your custom Performance attribute) will result in whichever of the two attributes the parser finds first (usually whichever one was made first), instead of only your custom one, being returned. If you are using the 5e OGL by Roll20 sheet, you may find&nbsp; this macro that I wrote useful. It allows you to roll saves, ability checks, or skill checks from a single button press. Again, this is only if you are using the 5e OGL sheet; if you aren't, it might at least give some good examples of the advanced roll query usage that Franky mentioned.
1480633054

Edited 1480640385
Tetsuo
Forum Champion
Side note. Just noticed your character name. Coheed reference ftw
Franky H. said: Side note. Just noticed your character name. Coheed reference ftw Ahaha. It is actually one of my player's character name. Franky H. said: The macros you're trying to call with the query need to have problematic characters replaced with HTML entities. See here for more information : <a href="https://wiki.roll20.net/Macros#Advanced_Usage_for_Roll_Queries" rel="nofollow">https://wiki.roll20.net/Macros#Advanced_Usage_for_Roll_Queries</a> For HTML, I'm pretty sure I need API which is a Pro account benefit. I'm only Plus. That said, I suppose I'm SoL unless I upgrade. I'll look through that link anyways though. Thanks for the response! Scott C. said: Some thoughts in addition to Franky's spot on suggestion for your immediate problem. Logan said: (note, as you can see I'm using attribute references which just look like this: ** Performance** [[1d20+@{Marcus Kilganon|Cha}]] ) Are you saying that @{Marcus Kilganon|Performance} is ** Performance** [[1d20+@{Marcus Kilganon|Cha}]]? I don't know what sheet you are using, but something to keep in mind with attributes and abilities is that they are case insensitive when looking for a match. This means that if the character sheet you are using already auto-generates a performance attribute, then calling @{Marcus Kilganon|Performance} (expecting your custom Performance attribute) will result in whichever of the two attributes the parser finds first (usually whichever one was made first), instead of only your custom one, being returned. If you are using the 5e OGL by Roll20 sheet, you may find&nbsp; this macro that I wrote useful. It allows you to roll saves, ability checks, or skill checks from a single button press. Again, this is only if you are using the 5e OGL sheet; if you aren't, it might at least give some good examples of the advanced roll query usage that Franky mentioned. I'm not using the character sheet.&nbsp; Decided to go with self-prescribed attributes and focus more on using macros and less on fumbling through the character sheets.&nbsp; The one i was using, the D&D 5th edition (shape), was nice but my players have too hard a time finding stuff (I admit I do a little too); but my main issue was that I couldn't really make heads or tails out of the attributes and making macros with those crazy attribute names (For example:&nbsp; reflex_saving_throw_mod_with_sign) seemed like a nightmare to even find the right attribute. I appreciate the response!
1480663936

Edited 1480664001
Tetsuo
Forum Champion
No. the HTML replacement things are simple text substitutions in your macro. So for example, you would replace the } &nbsp;symbol in your macro with &nbsp;&#125 ; &nbsp; &nbsp;(Remove the space between the 5 and ;)
1480671161
Andrew C
Marketplace Creator
Logan said: Franky H. said: Side note. Just noticed your character name. Coheed reference ftw Ahaha. It is actually one of my player's character name. Franky H. said: The macros you're trying to call with the query need to have problematic characters replaced with HTML entities. See here for more information : <a href="https://wiki.roll20.net/Macros#Advanced_Usage_for_Roll_Queries" rel="nofollow">https://wiki.roll20.net/Macros#Advanced_Usage_for_Roll_Queries</a> For HTML, I'm pretty sure I need API which is a Pro account benefit. I'm only Plus. That said, I suppose I'm SoL unless I upgrade. I'll look through that link anyways though. Thanks for the response! Scott C. said: Some thoughts in addition to Franky's spot on suggestion for your immediate problem. Logan said: (note, as you can see I'm using attribute references which just look like this: ** Performance** [[1d20+@{Marcus Kilganon|Cha}]] ) Are you saying that @{Marcus Kilganon|Performance} is ** Performance** [[1d20+@{Marcus Kilganon|Cha}]]? I don't know what sheet you are using, but something to keep in mind with attributes and abilities is that they are case insensitive when looking for a match. This means that if the character sheet you are using already auto-generates a performance attribute, then calling @{Marcus Kilganon|Performance} (expecting your custom Performance attribute) will result in whichever of the two attributes the parser finds first (usually whichever one was made first), instead of only your custom one, being returned. If you are using the 5e OGL by Roll20 sheet, you may find&nbsp; this macro that I wrote useful. It allows you to roll saves, ability checks, or skill checks from a single button press. Again, this is only if you are using the 5e OGL sheet; if you aren't, it might at least give some good examples of the advanced roll query usage that Franky mentioned. I'm not using the character sheet.&nbsp; Decided to go with self-prescribed attributes and focus more on using macros and less on fumbling through the character sheets.&nbsp; The one i was using, the D&D 5th edition (shape), was nice but my players have too hard a time finding stuff (I admit I do a little too); but my main issue was that I couldn't really make heads or tails out of the attributes and making macros with those crazy attribute names (For example:&nbsp; reflex_saving_throw_mod_with_sign) seemed like a nightmare to even find the right attribute. I appreciate the response! I've built a bunch of these sorts of things to use in D&D3.5E. Trust me... there are gremlins in the machines! Forget Deus Ex Machina, Daemonae Ex Machina!! :P But basically you need to think the whole time "If the Macro Reader finds this symbol, will it stop or do something stupid?" The main culprits are } and |. &nbsp;The rest comes down to how the Roll Templates are built. I also use these Character Replacements because they feel more sensible to me than a number. &nbsp;I can remember them when I'm typing unlike the number versions which might as well be in Sumerian for me.&nbsp;<a href="https://dev.w3.org/html5/html-author/charref" rel="nofollow">https://dev.w3.org/html5/html-author/charref</a>
Franky H. said: No. the HTML replacement things are simple text substitutions in your macro. So for example, you would replace the } &nbsp;symbol in your macro with &nbsp;&#125 ; &nbsp; &nbsp;(Remove the space between the 5 and ;) Ok, that's good to know.&nbsp; I thought I tried that once and it didn't work.&nbsp; I'll give it another shot.
1480726127

Edited 1480726351
Tetsuo
Forum Champion
Alright, I'm at my computer and not working on a phone :D You would do it like this: ?{Skill Select|Acrobatics, @{Marcus Kilganon&#124 ;Acrobatics&#125 ;|Animal Handling, @{Marcus Kilganon&#124 ;AnimalHandling&#125 ;|Arcana, @{Marcus Kilganon|Arcana&#125 ; |Animal Handling, @{Marcus Kilganon&#124 ;AnimalHandling&#125 ;|Arcana, @{Marcus Kilganon&#124 ;Arcana&#125 ;} and your acrobatics macro would look like this: ** Acrobatics** [[1d20+@{Marcus Kilganon&#124 ;Dex&#125 ;]] removing the spaces between the number and the ;. Also, save these macros to the sheet instead of as a global macro. Global macros remove the code and mess it all up.
1480726165
Scott C.
Forum Champion
Sheet Author
API Scripter
Compendium Curator
As a note, if you save these macros as global macros, the html replacements will be parsed each time you open and resave the macro, resulting in an unreplaced macro. The best thing to do for these is to make them as a character ability as abilities don't eat the html entities the same way.
Scott C. said: As a note, if you save these macros as global macros, the html replacements will be parsed each time you open and resave the macro, resulting in an unreplaced macro. The best thing to do for these is to make them as a character ability as abilities don't eat the html entities the same way. Yeah, I did notice that. lol. Franky H. said: Alright, I'm at my computer and not working on a phone :D You would do it like this: ?{Skill Select|Acrobatics, @{Marcus Kilganon&#124 ;Acrobatics&#125 ;|Animal Handling, @{Marcus Kilganon&#124 ;AnimalHandling&#125 ;|Arcana, @{Marcus Kilganon|Arcana&#125 ; |Animal Handling, @{Marcus Kilganon&#124 ;AnimalHandling&#125 ;|Arcana, @{Marcus Kilganon&#124 ;Arcana&#125 ;} and your acrobatics macro would look like this: ** Acrobatics** [[1d20+@{Marcus Kilganon&#124 ;Dex&#125 ;]] removing the spaces between the number and the ;. Also, save these macros to the sheet instead of as a global macro. Global macros remove the code and mess it all up. I'll definitely give that a try.&nbsp; I had kind of found a work-around, which looks ugly as all heck.&nbsp; Check this out, might get a lol. ?{Proficient|No, #Proficient-Skills |#Skills } For some reason in this macro it almost seems like #skills and #proficient-skills were being swapped. At any rate, the pop up acted like this: Proficient?: No (Selecting NO brought up another pop-up looking for a "Skill Select") Acrobatics Animal Handling Arcana Etc... (Through all 18 skills, selecting one worked fine except there was an added closing curly bracket '}' with the resulting roll) Proficient Skill 1 ("Unlisted" in this case) Proficient Skill 2 ("Oh well" in this case) This actually kind of does what is desired, but I would prefer a much cleaner execution so I'm definitely going to give that suggestion a shot.
1480743392

Edited 1480743567
Scott C.
Forum Champion
Sheet Author
API Scripter
Compendium Curator
Franky H. said: ?{Skill Select|Acrobatics, @{Marcus Kilganon&#124 ;Acrobatics&#125 ;|Animal Handling, @{Marcus Kilganon&#124 ;AnimalHandling&#125 ;|Arcana, @{Marcus Kilganon|Arcana&#125 ; |Animal Handling, @{Marcus Kilganon&#124 ;AnimalHandling&#125 ;|Arcana, @{Marcus Kilganon&#124 ;Arcana&#125 ;} and your acrobatics macro would look like this: ** Acrobatics** [[1d20+@{Marcus Kilganon&#124 ;Dex&#125 ;]] These aren't the correct html replacements. You NEVER want to replace characters in attribute/ability calls, if you do, you'll just wind up with "@{Marcus Kilganon|Acrobatics}" being output to chat rather than the value of said attribute. You need to to replace the problem characters in the nested roll queries. ?{First roll Query|Option 1, ?{second Roll Query &amp;#124; Option 1 in second roll query &amp;#44; value 1 in second Roll query &amp;#124; Option 2 in second roll query &amp;#44; value 2 in second roll query &amp;#125; |option 2 in first roll query, value 2 in first roll query} Would be how it would look if you made it as all one macro. Also, there is an easier way to do this. Simply make an attribute called proficiency, pb, or the like and enter your proficiency bonus in it. Then just add "+ @{pb}" to all of your skills that you are proficient in. You can now just use a single skill select macro that will roll everything correctly for you. If you still want them separated out into proficient and non-proficient lists, you might take a look at&nbsp; ability command buttons as their syntax is pretty simple, and no html escapes are needed.
1480743884
Tetsuo
Forum Champion
See. Even the people that understand it don't really understand it. :D
Yeah, i do have the attributes listed out and they are being used to make formulas in other attributes, such as skills and saves; and before you made that other suggestion I had started to plan on just making it one macro list.&nbsp; However, there were other uses for the drop-down menu that I had hoped to do so I will eagerly check that out anyways.