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 .
×
Create a free account

OGL 5e Character Sheet Adv Macro, need assistance

So, after watching a few dozen hours of youtube videos of games, DMs, and howto videos, I compiled a list of features/macros that I would want in the games that I play.  I was intrigued by the DMs that would put in context sensitive token buttons to provide self-whisper info about that token. Things like saves, init, list of attacks, generic information about each token, so they didn't need to look up stuff and slow the game down. Often the most valuable macro is one that doesn't DO any rolling, but simply provides an extensive list of options. With that in mind my self-imposed limitations are: using a free account (limited to template:default and template:npc) limit use of inline rolls, because I noticed in every video, the DM and players would still need to mouse-over and verify the tooltip for accurate bonuses don't display more information than necessary to make a decision, why roll twice if you rarely have advantage or disadvantage? why show crit damage when you can macro stack instead? So with that in mind here are a few screenshots to grab your attention.   This is a list of melee attacks based purely off of the OGL charater sheet where I have updated the Dagger and Warhammer "Range" to "5ft Melee Attack vs AC". Everything in this is dynamic except the target of the whisper:  (added returns for readability) /w MaverickOrig &{template:default} {{name=@{selected|token_name}'s Attacks}} {{@{selected|repeating_attack_$0_atkname} (@{selected|repeating_attack_$0_atkbonus}) =@{selected|repeating_attack_$0_atkrange} [Normal](!
#OGL_NormalAttack0) [Advantage](!
#OGL_AdvAttack0) [Disadvantage](!
#OGL_DisadvAttack0) }} {{@{selected|repeating_attack_$1_atkname} (@{selected|repeating_attack_$1_atkbonus}) =@{selected|repeating_attack_$1_atkrange} [Normal](!
#OGL_NormalAttack1) [Advantage](!
#OGL_AdvAttack1) [Disadvantage](!
#OGL_DisadvAttack1) }} Clicking on Normal Dagger and then Normal Damage: (these messages are broadcast like normal actions. Only need to click the damage if the DM says, "yep that hit") From a glance, noone needs to inspect any of the results, the bonuses are spelled out with the roll separated. (Added spaces and returns for readability) OGL_NormalAttack0 &{template:default} {{name=@{selected|token_name}'s @{selected|repeating_attack_$0_atkname} (@{selected|repeating_attack_$0_atkbonus})}} {{Range=@{selected|repeating_attack_$0_atkrange}}} {{bonus=@{selected|repeating_attack_$0_hidden_atkbonus} }} {{Damage=[Normal](!
#OGL_NormalDamage0) [CRIT](!
#OGL_CritDamage0)}} /roll 1d20@{selected|halflingluck}cs>@{selected|repeating_attack_$0_atkcritrange}@{selected|repeating_attack_$0_atkbonus} OGL_NormalDamage0 &{template:default} {{name=@{selected|token_name}'s @{selected|repeating_attack_$0_atkname} damage }} {{Damage Type=@{Selected|repeating_attack_$0_hidden_dmg1type}}} /roll @{Selected|repeating_attack_$0_hidden_dmg1} Here is the same dagger, but if it was with advantage and it then causes a crit: Same as before: from a glance, noone needs to inspect any of the results, the bonuses are spelled out with the roll separated. Next I wanted to add spells and cantrips to my "list of attacks" However, I was unable to extract many of the spell elements required to create my own block of macros. What I WAS able to add, was a simple button to show the full spell description right in the chat window if someone asked: (only clicking the button, does the description below show) Again, all code is fully dynamic off the OGL character sheet: OGL_Cantrip0 [@{selected|token_name}'s @{selected|repeating_spell-cantrip_$0_spellname} Full Description](!
#OGL_CantripDesc0) %{selected|repeating_spell-cantrip_$0_spell} OGL_CantripDesc0 &{template:default} {{name=@{selected|repeating_spell-cantrip_$0_spellname}}} {{=@{selected|repeating_spell-cantrip_$0_spellcontent}}} Here are the spell variables I did find: @{selected|repeating_spell-cantrip_$0_spellcontent} @{selected|repeating_spell-cantrip_$0_spellname_base} @{selected|repeating_spell-cantrip_$0_spellrange} @{selected|repeating_spell-cantrip_$0_spelldamage} @{selected|repeating_spell-cantrip_$0_spelldamagetype} @{selected|repeating_spell-cantrip_$0_spelldamage2} @{selected|repeating_spell-cantrip_$0_spelldamagetype2} @{selected|repeating_spell-cantrip_$0_spellsave} @{selected|repeating_spell-cantrip_$0_spellsavesuccess} @{selected|repeating_spell-cantrip_$0_spellname} @{selected|repeating_spell-cantrip_$0_prep} @{selected|repeating_spell-cantrip_$0_spellhealing} @{selected|repeating_spell-cantrip_$0_spelldmgmod} @{selected|repeating_spell-cantrip_$0_spellhldietype} @{selected|repeating_spell-cantrip_$0_spellhldie} @{selected|repeating_spell-cantrip_$0_spellhlbonus} @{selected|repeating_spell-cantrip_$0_spelloutput} @{selected|repeating_spell-cantrip_$0_spelllevel} But spelldmgmod returns yes/no, and spellsave returns "Dexterity" I need variables to regenerate the full "DC13 vs DEX" the spell dice independently of the spell bonus (for crit)
1472992270

Edited 1472998032
Scott C.
Forum Champion
Sheet Author
API Scripter
Compendium Curator
Hi Maverick, That's very cool and useful. Are you using the default template because you prefer it over ogl template? I'm not sure I understand your questions at the end tho. EDIT: Also, is there a reason you don't want the auto crit calc from the OGL template? That would seem to be quicker for figuring out what you need to know from the attack rather than having to click what damage to use.
1473005356

Edited 1473005662
I'm very impressed with all this! MaverickOrig said: I need variables to regenerate the full "DC13 vs DEX" the spell dice independently of the spell bonus (for crit) For the DC, you could use: DC@{selected|spell_save_dc} vs @{selected|repeating_spell-cantrip_$0_spellsave} For the crit, you could just pull the spelldamage (in this case). Alternatively, you could use @{selected|repeating_attack_$0_hidden_crit1}, which is purely damage dice. However, notice that this Attribute call originates from the spell's corresponding repeatingrow on the Attacks & Spellcasting section (Core page), so you may have to adjust its RowIndex.
1473006712

Edited 1473006830
There is a spell card output built into the sheet that looks pretty nice.  The format is @{Avarone|wtype}&{template:spell} {{level=Transmutation 0}} {{name=Mending}} {{castingtime=Minute}} {{range=Touch}} {{target=}} {{v=1}} {{s=1}} {{m=1}} {{material=Two lodestones}} {{duration=Instantaneous}} {{description=This spell repairs a single break or tear in an object you touch, such as broken chain link, two halves of a broken key, a torn clack, or a leaking wineskin. As long as the break or tear is no larger than 1 foot in any dimension, you mend it, leaving no trace of the former damage. This spell can physically repair a magic item or construct, but the spell can't restore magic to such an object.}} {{athigherlevels=}} @{Avarone|charname_output} Inspecting the elements of the sheet I found this for the damage @{selected|repeating_spell-cantrip_$0_spelldamage} and for the saves try  @{selected|repeating_spell-cantrip_$0_spellsave} and  @{selected|spell_save_dc} @{selected|repeating_spell-cantrip_$0_spellsavesuccess} It's confusing because the attributes from the spell sheet are different than the ones from the attacks section on the core page even though they are linked [Edit] oops, Silvyre is awake, got ninja-ed!
Scott C. said: Hi Maverick, That's very cool and useful. Are you using the default template because you prefer it over ogl template? I'm not sure I understand your questions at the end tho. EDIT: Also, is there a reason you don't want the auto crit calc from the OGL template? That would seem to be quicker for figuring out what you need to know from the attack rather than having to click what damage to use. Thank you! I had some difficulty using the ogl template, but I should take another look at using that formatting instead. I wish I found better documentation for the template:simple sections. As for the auto-crit calculation, I much prefer the quantum roll format that clearly makes a distinction between the dice rolls and the bonuses at a glance. No need to mouse over. Even so, if I did auto show the crit I would want the output to be something like "8+3 piercing (crit +8)" This would show the distinction in the rolls vs the bonuses, and spell out the crit increase. Also the crit damage here is very clearly 8 MORE damage and not a replacement value. Thank you for the feedback! -Mav
Silvyre said: I'm very impressed with all this! MaverickOrig said: I need variables to regenerate the full "DC13 vs DEX" the spell dice independently of the spell bonus (for crit) For the DC, you could use: DC@{selected|spell_save_dc} vs @{selected|repeating_spell-cantrip_$0_spellsave} For the crit, you could just pull the spelldamage (in this case). Alternatively, you could use @{selected|repeating_attack_$0_hidden_crit1}, which is purely damage dice. However, notice that this Attribute call originates from the spell's corresponding repeatingrow on the Attacks & Spellcasting section (Core page), so you may have to adjust its RowIndex. For starters, I'm glad I could impress with my very first forum post. ;-) And yes! This does what I want well: DC[[@{selected|spell_save_dc}]] vs @{selected|repeating_spell-cantrip_$0_spellsave} It seems with this case... sacred flame, I have to throw in a little in-line roll fix to the damage in the cantrip page: was: ((@{level} + 1) / 6 + 0.5)d8 now: [[floor((@{level} + 1) / 6 + 1)]]d8 Thank you for the feedback! -Mav
Ed S. said: There is a spell card output built into the sheet that looks pretty nice.  The format is @{Avarone|wtype}&{template:spell} {{level=Transmutation 0}} {{name=Mending}} {{castingtime=Minute}} {{range=Touch}} {{target=}} {{v=1}} {{s=1}} {{m=1}} {{material=Two lodestones}} {{duration=Instantaneous}} {{description=This spell repairs a single break or tear in an object you touch, such as broken chain link, two halves of a broken key, a torn clack, or a leaking wineskin. As long as the break or tear is no larger than 1 foot in any dimension, you mend it, leaving no trace of the former damage. This spell can physically repair a magic item or construct, but the spell can't restore magic to such an object.}} {{athigherlevels=}} @{Avarone|charname_output} Inspecting the elements of the sheet I found this for the damage @{selected|repeating_spell-cantrip_$0_spelldamage} and for the saves try  @{selected|repeating_spell-cantrip_$0_spellsave} and  @{selected|spell_save_dc} @{selected|repeating_spell-cantrip_$0_spellsavesuccess} It's confusing because the attributes from the spell sheet are different than the ones from the attacks section on the core page even though they are linked [Edit] oops, Silvyre is awake, got ninja-ed! Thank you for the format example! I might just convert many of my default templates to that one, but is there any documentation on the sections? level, name, castingtime, range, target, v,s,m,material,duration,description,athigherlevels Is there a similar template:weapon ? where is the documentation for that template? Thanks! -Mav
1473012994
Scott C.
Forum Champion
Sheet Author
API Scripter
Compendium Curator
MaverickOrig said: Scott C. said: Hi Maverick, That's very cool and useful. Are you using the default template because you prefer it over ogl template? I'm not sure I understand your questions at the end tho. EDIT: Also, is there a reason you don't want the auto crit calc from the OGL template? That would seem to be quicker for figuring out what you need to know from the attack rather than having to click what damage to use. Thank you! I had some difficulty using the ogl template, but I should take another look at using that formatting instead. I wish I found better documentation for the template:simple sections. As for the auto-crit calculation, I much prefer the quantum roll format that clearly makes a distinction between the dice rolls and the bonuses at a glance. No need to mouse over. Even so, if I did auto show the crit I would want the output to be something like "8+3 piercing (crit +8)" This would show the distinction in the rolls vs the bonuses, and spell out the crit increase. Also the crit damage here is very clearly 8 MORE damage and not a replacement value. Thank you for the feedback! -Mav For your questions about the 5e OGL template, check out my investigations:&nbsp;<a href="https://app.roll20.net/forum/permalink/3831566/" rel="nofollow">https://app.roll20.net/forum/permalink/3831566/</a>
Scott C. said: MaverickOrig said:&nbsp; Thank you! I had some difficulty using the ogl template, but I should take another look at using that formatting instead. I wish I found better documentation for the template:simple sections. For your questions about the 5e OGL template, check out my investigations:&nbsp; <a href="https://app.roll20.net/forum/permalink/3831566/" rel="nofollow">https://app.roll20.net/forum/permalink/3831566/</a> Thank you! Lots of good stuff in that tread to use. -Mav
1473014042
Scott C.
Forum Champion
Sheet Author
API Scripter
Compendium Curator
:) enjoy. My only disclaimer is that it's based on observed behavior, so there may be some functionality that I don't describe there.
Thanks to Scott C. and&nbsp; Silvyre Here is an updated list of attacks: /w MaverickOrig &{template:default} {{name=@{selected|token_name}'s Attacks}} {{@{selected|repeating_attack_$0_atkname} (@{selected|repeating_attack_$0_atkbonus} vs AC) *Normal Action*=@{selected|repeating_attack_$0_atkrange} [Normal](!&#13;#OGL_NormalAttack0) [Advantage](!&#13;#OGL_AdvAttack0) [Disadvantage](!&#13;#OGL_DisadvAttack0) }} {{@{selected|repeating_attack_$1_atkname} (@{selected|repeating_attack_$1_atkbonus} vs AC) *Normal Action*=@{selected|repeating_attack_$1_atkrange} [Normal](!&#13;#OGL_NormalAttack1) [Advantage](!&#13;#OGL_AdvAttack1) [Disadvantage](!&#13;#OGL_DisadvAttack1) }} {{@{selected|repeating_spell-cantrip_$0_spellname} (DC[[@{selected|spell_save_dc}]] vs @{selected|repeating_spell-cantrip_$0_spellsave}) *Normal Action*=@{selected|repeating_spell-cantrip_$0_spellrange}[Normal](!&#13;#OGL_Cantrip0)[Full Description](!&#13;#OGL_CantripDesc0)}} Here is the #OGL_Cantrip0 OGL_Cantrip0 &{template:default} {{name=@{selected|token_name} casts @{selected|repeating_spell-cantrip_$0_spellname}}} {{Range=@{selected|repeating_spell-cantrip_$0_spellrange}}} {{Save= DC[[@{selected|spell_save_dc}]] vs @{selected|repeating_spell-cantrip_$0_spellsave}}}{{Damage=[Normal](!&#13;#OGL_CantripDamage0)}}{{Full Description=[***Display***](!&#13;#OGL_CantripDesc0)}} OGL_CantripDamage0 &{template:default} {{name=@{selected|token_name}'s @{selected|repeating_spell-cantrip_$0_spellname} damage }} {{Damage Type=@{selected|repeating_spell-cantrip_$0_spelldamagetype}}} /roll @{selected|repeating_spell-cantrip_$0_spelldamage} And finally the updated spell description: OGL_CantripDesc0 &{template:spell}}{{name=@{selected|repeating_spell-cantrip_$0_spellname}}} {{level=@{selected|repeating_spell-cantrip_$0_spellschool} @{selected|repeating_spell-cantrip_$0_spelllevel}}} {{castingtime=@{selected|repeating_spell-cantrip_$0_spellcastingtime}}}{{range=@{selected|repeating_spell-cantrip_$0_spellrange}}}@{selected|repeating_spell-cantrip_$0_spellcomp_v}@{selected|repeating_spell-cantrip_$0_spellcomp_s}@{selected|repeating_spell-cantrip_$0_spellcomp_m}{{material=@{selected|repeating_spell-cantrip_$0_spellcomp_materials}}}{{duration=@{selected|repeating_spell-cantrip_$0_spellduration}}}{{description=**Save: **DC[[@{selected|spell_save_dc}]] vs @{selected|repeating_spell-cantrip_$0_spellsave} **On Save: **@{selected|repeating_spell-cantrip_$0_spellsavesuccess} **Damage: **@{selected|repeating_spell-cantrip_$0_spelldamage} @{selected|repeating_spell-cantrip_$0_spelldamagetype}&nbsp; @{selected|repeating_spell-cantrip_$0_spellcontent}}} The only changes I have had to make to my OGL Charactersheet are the following: Dagger's Range="5ft Melee Attack" Sacred Flame Cantrip's Range="60 ft (Ignore cover)" Sacred Flame Cantrip's Damage="[[floor((@{level} + 1) / 6 + 1)]]d8" -Mav
Looking Good! We all are just learning from observation and plug and chug.&nbsp;