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

Better solution for skill check macro?

1761765799

Edited 1761765897
Hello all! I already have a potential method that would work for making the skill check/"Substat" macro but I was hoping to find a more graceful solution so I don't need 23 sheet attributes since I'd like to apply this to monster sheets too. The system I'm using rolls (attribute level)d6s + substat if applicable. I've alrady got a macro for flat attribute checks here:  ?{Which Attribute?|Power,%{selected|power} |Speed,%{selected|speed} |Technique,%{selected|technique} |Intelligence,%{selected|intelligence} |Cooperation,%{selected|cooperation} } Each attribute has it's own Sheet Attribute & Sheet ability that looks like this:  [[@{Power}d6]] E.g. of what attribute levels would look like: Power - 3, Speed - 2, Technique - 4, Intelligence - 2, Cooperation - 1 What I could do is just copy what I've done for the Flat check macro and make options for all 23 substats, either as flat modifiers in the macro or more make 23 Sheet attributes to be called (5 Power, 4 Speed, 4 Technique, 5 Intelligence and 5 Cooperations substats) but as much as it'd work fine it would be a real pain to scale onto many other sheets since there'd be a lot of manual entry required. I'm almost certain there's a better way to do this but I'm still quite new to making macros. Please let me know if there's a smarter way to do this!
1761765969
Gauss
Forum Champion
Which character sheet is this for? What are the contents of the % commands? (Or do you mean command when you called them attribute?)
Roll20 doesn't have a specific character sheet for the system so we use an online google slides sheet instead. I've been using the "Attribute & Abilities" section that I believe all roll20 sheets have: Sorry replying took so long, I kept running into issues since I didn't know you couldn't just copy & past screenshots directly
If it'd help I can link the system and sheet I'm using. I didn't post it initially because I didn't know if that was ok to do on the forums and random links on the internet are pretty suspicious
1761770400
Gauss
Forum Champion
So the answer here is that the character sheet is set to "None"? My question is about the Roll20 sheet being used, not the game system or off-Roll20 sheet. 
Ah, yes. Sorry, I should have been a bit more specific there
1761772041
Gauss
Forum Champion
I've seen similar setups for a system like this before.  Whenever you have A+B where A is an attribute and B is a skill you have two choices:  1) Queries. ?{Attribute}+?{Skill} OR 2) Chat Menus:  a list of buttons which group the combinations.  Example:  Group of buttons for Attribute"A":  Skill1 Skill2 Skill3 Skill4 Skill5 Skill6 Group of buttons for Attribute "B": Skill1 Skill2 Skill3 Skill4 Skill5 Skill6 etc.  Then they pop the chat menu (it is whispered to the user) and select the option they want.  Or a combination of query to select the more limited section (such as Attribute in the above example) and then Chat Menus for the Skills.  Note: I am using generic terms here of Attribute and Skill since I don't know your system.  If you'd like we can go into a Discord call and I can walk you through this in more detail. You can find me near the top of the list as "Gauss" in the Roll20 Discord server .
1761773810
timmaugh
Forum Champion
API Scripter
Without access to a Pro subscription (where you can do a custom character sheet and/or use scripts), you are somewhat limited. Here is the least-setup-work option I can think of at the moment... Figuring your actual character sheet is stored in the Google Slide, you have to get a certain amount of information into the game for Roll20 to use in making the rolls. So, for each character/npc,  you'd have to create at least the 5 prime attributes: Power Speed Technique Intelligence Cooperation That could store the values for each attribute for that character. I am suggesting that, unless you REALLY want to, you don't have to go to the effort of creating 23 sub-attributes on each sheet... but, instead, you can use a query: ?{Sub attribute modifier|1|2|3|4|5|6|7|8|9|10} Then you can have a single ability that is a Chat Menu . You could create the same ability on every character sheet (to make use of the shorthand attribute reference syntax), or you could have it on a " mule character " that everyone has access to. In the mule-character version, you couldn't use the shorthand attribute reference, so you'd have to do the @{selected} style reference. That command would look like: &{template:default} {{name=Skill Check for @{selected|character_name} }} {{ Power=[Roll](!
[[@{selected|power}d6 + ?{Sub  attribute modifier|1|2|3|4|5|6|7|8|9|10}]]) }} {{ Speed=[Roll](!
[[@{selected|speed}d6 + ?{Sub  attribute modifier|1|2|3|4|5|6|7|8|9|10}]]) }} {{ Technique=[Roll](!
[[@{selected|technique}d6 + ?{Sub  attribute modifier|1|2|3|4|5|6|7|8|9|10}]]) }} {{ Intelligence=[Roll](!
[[@{selected|intelligence}d6 + ?{Sub  attribute modifier|1|2|3|4|5|6|7|8|9|10}]]) }} {{ Cooperation=[Roll](!
[[@{selected|cooperation}d6 + ?{Sub  attribute modifier|1|2|3|4|5|6|7|8|9|10}]]) }} ...and would produce a menu like: Clicking on any of those buttons will roll the check with the attributes from the sheet of the selected token (provided those attributes exist -- and note that I created them as lowercase in the macro; feel free to adjust that as necessary). I do not know the method of an actual "check" performed by your game system, so right now the button will just produce a roll on command. If there is actually a target number the player is rolling against or you want a different output, that could be incorporated, too. In any case, the above command will work from either a character sheet or a mule character sheet as long as there is a token selected (since there is the explicit reference to the selected token). If you want to store a copy of this on every character sheet (that would only be the creation of a single ability on every sheet, so might not be too hard), you could, if you wanted to, remove all references to the "selected" token from the @ constructions. So: @{selected|character_name} ...would become... @{character_name} Doing that to the command line would specifically reference the character ON WHOM the ability resides, so it will only work on a per-character basis. (BTW, players do not have to open the mule character to run an ability from that character. If they have controlling rights to the mule character and that ability is checked to "Show in Macro Bar", the player will see a button for it at the bottom of their screen): Possible Extension #1 If you do this with a mule character, you *could* remove some of the verbiage to its own attribute so that the above command is shorter, potentially easier to read, and has a single point of editing if you need to in the future. For instance, comparing the button syntax for Power and Speed, you can see how much is doubled up: [Roll](!
[[ @{selected|speed} d6 + ?{Sub attribute modifier|1|2|3|4|5|6|7|8|9|10}]]) [Roll](!
[[ @{selected|technique} d6 + ?{Sub attribute modifier|1|2|3|4|5|6|7|8|9|10}]]) (space added to demonstrate the duplication) If you create 2 attributes on your mule character called "btnstart"  and "btnend", you can set their values like so: btnstart  |  [Roll](!
[[ btnend   |  d6 + ?{Sub attribute modifier|1|2|3|4|5|6|7|8|9|10}]]) and then refer to those attributes in your chat menu ability on the mule character. That would change your command line to be: &{template:default} {{name=Skill Check for @{selected|character_name} }} {{Power=@{btnstart}@{selected|power}@{btnend} }} {{Speed=@{btnstart}@{selected|speed}@{btnend} }} {{Technique=@{btnstart}@{selected|technique}@{btnend} }} {{Intelligence=@{btnstart}@{selected|intelligence}@{btnend} }} {{Cooperation=@{btnstart}@{selected|cooperation}@{btnend} }} A lot shorter and easier to read. Possible Extension #2 If you were willing to add the 23 sub attributes to each character sheet as attributes, you could either 1) modify the "Sub attribute modifier" query to refer to actual values from the selected character sheet, and/or 2) expand the chat menu to have the correct number of sub-attribute buttons (ie, 5 for Power, 4 for Speed, etc.). With the first option, the "Sub attribute modifier" query would have the player selecting the sub attribute by name: ?{Power sub attribute|Brawn,@{selected|brawn}|Swole,@{selected|swole}|Do You Even Lift Bro, @{selected|doyouevenliftbro}|Etc 4,@{selected|etc4}|Etc 5,@{selected|etc5}} Every "main" attribute would have it's own query referencing the specific sub attributes that could be used. The benefit of this option is that it keeps the buttons to 5 total (1 per main attribute). The downside is that the user has to make an extra query choice to apply the appropriate sub attribute. With the second option (extra buttons in the chat menu), each button would be constructed with reference to the sub attribute. So the relevant "Power" section from the above command would look more like: {{Power=[Brawn](!
[[@{selected|power}d6 + @{selected|brawn}]])  [Swole](!
[[@{selected|power}d6 + @{selected|swole}]])   [Do You Even Lift Bro](!
[[@{selected|power}d6 + @{selected| doyouevenliftbro }]])   [Etc 4](!
[[@{selected|power}d6 + @{selected|etc4}]])   [Etc 5](!
[[@{selected|power}d6 + @{selected|etc5}]])   }} (obviously this could be shortened using the "Possible Extention #1" idea, above) The benefit of this method is the user doesn't have to make an extra selection via query -- the choice is already made via the button they choose. The downside of this method is that it uses more buttons... but if it were me, that would be a fine trade off. Neither method increases the number of abilities you have to create (there would be either 1 ability per character sheet if you went with that approach, or 1 ability on a central mule character if you went with that approach)... only the fact that you'd have to create 23 extra attributes per character. ...ON THAT NOTE... I might suggest that instead of creating a character "new" every time (and having to actually add the attributes you need) that you instead create a template character with the attributes and ability you need, then right click on that character in your Journal and choose "Duplicate" when you need a new character. Either have 5 attributes for your main attributes or 28 for your 5 main + 23 sub attributes. You can have dummy values of 0 or 1 (or whatever makes more sense for your system as a default). Either have the Chat Menu ability created on that character, or not if you use a mule character. Either way, no editing should be necessary for the chat menu ability on each duplicate since the verbiage will be exactly the same.
Oh wow, thank you!  Gauss graciously took some time going through a couple things with me already but it looks like much of your solutions further build onto that. I'll get to work on implementing what I can for a while and see what I end up with. Thank you again for such an extensive reply, I aprreciate it :D