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

[Script] SkillChallenge - For tracking skill challenges (Works with any d20 sheet)

1553810185

Edited 1553989835
Skill Challenge Tracks successes and shows random DC for each level. Outputs to a nice box in the chat. Inspired by the table in this blog post &nbsp;-- though the values will be different as this script randomly generates the specific values. This is my first script so comments, feedback, suggestions, &amp; pull requests welcome! * *(Reasonable expectations required.) To Install Get the script here Script:&nbsp; <a href="https://raw.githubusercontent.com/trevor-coleman/roll20-skill-challenge/master/SkillChallenge.js" rel="nofollow">https://raw.githubusercontent.com/trevor-coleman/roll20-skill-challenge/master/SkillChallenge.js</a> Github Repo:&nbsp; <a href="https://github.com/trevor-coleman/roll20-skill-challenge" rel="nofollow">https://github.com/trevor-coleman/roll20-skill-challenge</a> Instructions Start a challenge !skillchallenge to start a skill challenge Make a Random Challenge !skillchallenge random [heroLevel] [challengeLevel] &nbsp;to randomize the challenge. heroLevel options: localHeroes (~Levels 1-5) heroesOfTheRealm &nbsp;(~Levels 5-10) mastersOfTheRealm &nbsp;(~Levels 11-15) mastersOfTheWorld &nbsp;(~Levels 15-20) challengeLevel options: easy &nbsp; moderate hard Other Commands !skillchallenge [easysuccess/mediumsuccess/hardsuccess/veryHardSuccess] &nbsp; - Counts a success&nbsp; !skillchallenge failure - &nbsp;Counts a failure !skillchallenge start - Resets successes and failure to zero and begins challenge !skillchallenge set [property] [value] &nbsp;- Sets a property to a value. (see below) !skillchallenge config -&nbsp;Shows config menu Properties and Values All properties are Integers Success Counts: easySuccess , mediumSuccess &nbsp;etc. Success Targets: easyTarget &nbsp;, veryHardTarget &nbsp;etc. -- challenge will succeed when successes==target for all difficulties Failures: failures Max Failures: maxFailures -- challenge fails when failures==maxFailures TODO: * implement buttons &amp; queries for random challenge * set default values for config queries * make "bumper" buttons for editing challenge * make output all pretty-like with powercards Credits: Robin Kuiper -- i borrowed heavily from their (amazing) code for handling inputs, managing state, and setting up listeners. Critical-Hit.com -- this was inspired by their table, though this implementation is slightly different &nbsp;All the people who have ansked and answered questions on the Roll20 forums that saved me from pulling my hair out. Changelog v0.1.2 made script whisper to GM only removed unnecessary log statements v0.1.3 Simply the UI Add UI for random challenge Make successes green and failures red. Hide rows for difficulties not in challenge
1553814781
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Nice work! I could be wrong, but I believe Robin Kuiper is a him, not a her.
Oh dear. Changed to gender neutral language just in case.
1553822322

Edited 1553822350
keithcurtis
Forum Champion
Marketplace Creator
API Scripter
Suggestion: Although "heroesOfTheRealm" and such are fine, I'd suggest giving the option to figure the category from a numeric input of the level. That would allow users to derive the level programatically. Even tailoring it for a targeted or selected token: !skillchallenge random @{selected|level} moderate Or specific character: !skillchallenge random @{bob the mighty|level} moderate Or a party average: !skillchallenge random [[(@{Fytor|level} + @{Claire Ack|level} + @{Rowag|level} + @{Wheezerd|level})/4]] moderate
Yeah -- I was thinking about doing it based on level -- though I have to put some thought into how to scale it. I guess it could just sort the input into one of the categories to start.&nbsp;
1553832909

Edited 1553833061
The Aaron
Roll20 Production Team
API Scripter
Neat!&nbsp; That Robin does have some amazing ways of handling input, managing state, and setting up listeners. =D
1553834269

Edited 1553834280
The Aaron said: Neat!&nbsp; That Robin does have some amazing ways of handling input, managing state, and setting up listeners. =D Reading it back I guess that's pretty much all a program does. I swear there is some original logic buried in there. Honest!
1553836103
The Aaron
Roll20 Production Team
API Scripter
Definitely. =D
Cool script! Is there a way to make it only appear for GM?
Anthony V. said: Cool script! Is there a way to make it only appear for GM? Whoops -- yeah I thought that was turned on. revised script is up!
Updated! I simplified the UI, added a "Random Challenge" screen and generally made everything clickable, so no chat commands are required.
1553989932

Edited 1553989978
So if I'm understanding this correctly, if the Skill Challenge is say... climbing a slippery wall, when the players roll Athletics, it records those as successes and failures based on the DC? What if a PC rolls another skill by accident?
1555002252

Edited 1555002268
Evan said: So if I'm understanding this correctly, if the Skill Challenge is say... climbing a slippery wall, when the players roll Athletics, it records those as successes and failures based on the DC? What if a PC rolls another skill by accident? There's no automatic tracking of player rolls at this point -- you manually click the "success" or "fail" buttons. The main thing is just that it randomly generates the "difficulty" and then keeps track of successes and fails.
Trevor C. said: Evan said: So if I'm understanding this correctly, if the Skill Challenge is say... climbing a slippery wall, when the players roll Athletics, it records those as successes and failures based on the DC? What if a PC rolls another skill by accident? There's no automatic tracking of player rolls at this point -- you manually click the "success" or "fail" buttons. The main thing is just that it randomly generates the "difficulty" and then keeps track of successes and fails. I see! Thanks for the clarification! Very cool!