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

[Warhammer Fantasy 4th] Sheet for Sigmar

If I'm not mistaken, that's because using Find and Replace for "Righ"->"Right" would've grabbed the partial word from the already correct "Right". Luckily it's an easier fix in reverse.
<a href="https://pastebin.com/9C6s9Geu" rel="nofollow">https://pastebin.com/9C6s9Geu</a> &lt;- Fixed.
Alon said: If I'm not mistaken, that's because using Find and Replace for "Righ"-&gt;"Right" would've grabbed the partial word from the already correct "Right". Luckily it's an easier fix in reverse. You are quite correct there, and it was an easy fix in reverse :)
1535365499

Edited 1535367393
Marco
Pro
Sheet Author
I'm working also on a WFRP4 sheet, with other visual approach and I want to share a solution to get the Success Level without the calcualtion from an inline roll.So everyone can use the future community release of Havoc's sheet without the need of API. test : You have to pass a raw d100 to the roll template, of course you can still include custom criticals and fumbles if you want. target : You have to pass the related characteristic, skill or similar value as an inline roll. Hit Location To determine the Hit Location just use your current approach and use a logic pattern over test . You can solve this with 59 helper functions (34 rollTotal, 25 rollBetween). Success Level The formula for the Success Level is: m - n = SL from na &nbsp;vs. mb &nbsp;( test vs. target ) n and m are the decades of test and target (I don't know the exact English word for this.) Example: 3-2=+1 from 20 vs. 33.&nbsp; To determine the Success Level we need to know the decades from target and test . To get this we need a nested logic pattern, I call it Outer and Inner Pattern. Outer Pattern The pattern is segmented into: rollBetween target 1 9 rollBetween target 10 19 rollBetween target 20 29 rollBetween target 30 39 and so on.&nbsp; We use this to determine the decade of target .&nbsp; Inner Pattern Each Outer Pattern has another pattern inside: rollBetween test 10 19 rollBetween test 20 29 rollBetween test 30 39 and so on We use this to determine the decade of test . How it works Because we know from the outer pattern, that the target must be between x and x+9, we can determine the Sucess Level. Example: target is 33 and we rolled a 20 ( test ).&nbsp; The outer pattern goes to rollBetween target 30 39 , and the inner pattern goes to rollBetween test 20 29 . So we know: SL= +1. To cover the special case for SL+0 and SL-0 you have to adjust the inner pattern a little bit. The inner pattern from the outer pattern rollBetween target 30 39 , needs something like this: rollBetween test 20 target -&gt; SL +0 [roll is equal or lower than target, but higher than the previous threshold 10-19] and rollBetween test target 29 AND ^rollTotal test target -&gt; SL-0 [roll is higher than target, but lower than the next threshold 30-39] That's all. Of course, you can replace "+2 +3" with "Success" and so. But do that like you want. Raw logic pattern Here is the raw logic pattern for targets between 1 and 99. You can extend the pattern for higher targets (characteristics and skills over 100). You still need to add hit location, crits, fumbles, autofailure, autosuccess and so on, but because you pass the raw d100 to the Roll Template everything is possible. {{#rollBetween() target 90 99}} {{#rollTotal() test 100}}–1{{/rollTotal() test 100}} {{#rollBetween() test target 99}} {{#^rollTotal() test target}}–0{{/^rollTotal() test target}} {{/rollBetween() test target 99}} {{#rollBetween() test 90 target}}+0{{/rollBetween() test 90 target}} {{#rollBetween() test 80 89}}+1{{/rollBetween() test 80 89}} {{#rollBetween() test 70 79}}+2{{/rollBetween() test 70 79}} {{#rollBetween() test 60 69}}+3{{/rollBetween() test 60 69}} {{#rollBetween() test 50 59}}+4{{/rollBetween() test 50 59}} {{#rollBetween() test 40 49}}+5{{/rollBetween() test 40 49}} {{#rollBetween() test 30 39}}+6{{/rollBetween() test 30 39}} {{#rollBetween() test 20 29}}+7{{/rollBetween() test 20 29}} {{#rollBetween() test 10 19}}+8{{/rollBetween() test 10 19}} {{#rollBetween() test 1 9}}+9{{/rollBetween() test 1 9}} {{/rollBetween() target 90 99}} {{#rollBetween() target 80 89}} {{#rollTotal() test 100}}–2{{/rollTotal() test 100}} {{#rollBetween() test 90 99}}–1{{/rollBetween() test 90 99}} {{#rollBetween() test target 89}} {{#^rollTotal() test target}}–0{{/^rollTotal() test target}} {{/rollBetween() test target 89}} {{#rollBetween() test 80 target}}+0{{/rollBetween() test 80 target}} {{#rollBetween() test 70 79}}+1{{/rollBetween() test 70 79}} {{#rollBetween() test 60 69}}+2{{/rollBetween() test 60 69}} {{#rollBetween() test 50 59}}+3{{/rollBetween() test 50 59}} {{#rollBetween() test 40 49}}+4{{/rollBetween() test 40 49}} {{#rollBetween() test 30 39}}+5{{/rollBetween() test 30 39}} {{#rollBetween() test 20 29}}+6{{/rollBetween() test 20 29}} {{#rollBetween() test 10 19}}+7{{/rollBetween() test 10 19}} {{#rollBetween() test 1 9}}+8{{/rollBetween() test 1 9}} {{/rollBetween() target 80 89}} {{#rollBetween() target 70 79}} {{#rollTotal() test 100}}–3{{/rollTotal() test 100}} {{#rollBetween() test 90 99}}–2{{/rollBetween() test 90 99}} {{#rollBetween() test 80 89}}–1{{/rollBetween() test 80 89}} {{#rollBetween() test target 79}} {{#^rollTotal() test target}}–0{{/^rollTotal() test target}} {{/rollBetween() test target 79}} {{#rollBetween() test 70 target}}+0{{/rollBetween() test 70 target}} {{#rollBetween() test 60 69}}+1{{/rollBetween() test 60 69}} {{#rollBetween() test 50 59}}+2{{/rollBetween() test 50 59}} {{#rollBetween() test 40 49}}+3{{/rollBetween() test 40 49}} {{#rollBetween() test 30 39}}+4{{/rollBetween() test 30 39}} {{#rollBetween() test 20 29}}+5{{/rollBetween() test 20 29}} {{#rollBetween() test 10 19}}+6{{/rollBetween() test 10 19}} {{#rollBetween() test 1 9}}+7{{/rollBetween() test 1 9}} {{/rollBetween() target 70 79}} {{#rollBetween() target 60 69}} {{#rollTotal() test 100}}–4{{/rollTotal() test 100}} {{#rollBetween() test 90 99}}–3{{/rollBetween() test 90 99}} {{#rollBetween() test 80 89}}–2{{/rollBetween() test 80 89}} {{#rollBetween() test 70 79}}–1{{/rollBetween() test 70 79}} {{#rollBetween() test target 69}} {{#^rollTotal() test target}}–0{{/^rollTotal() test target}} {{/rollBetween() test target 69}} {{#rollBetween() test 60 target}}+0{{/rollBetween() test 60 target}} {{#rollBetween() test 50 59}}+1{{/rollBetween() test 50 59}} {{#rollBetween() test 40 49}}+2{{/rollBetween() test 40 49}} {{#rollBetween() test 30 39}}+3{{/rollBetween() test 30 39}} {{#rollBetween() test 20 29}}+4{{/rollBetween() test 20 29}} {{#rollBetween() test 10 19}}+5{{/rollBetween() test 10 19}} {{#rollBetween() test 1 9}}+6{{/rollBetween() test 1 9}} {{/rollBetween() target 60 69}} {{#rollBetween() target 50 59}} {{#rollTotal() test 100}}–5{{/rollTotal() test 100}} {{#rollBetween() test 90 99}}–4{{/rollBetween() test 90 99}} {{#rollBetween() test 80 89}}–3{{/rollBetween() test 80 89}} {{#rollBetween() test 70 79}}–2{{/rollBetween() test 70 79}} {{#rollBetween() test 60 69}}–1{{/rollBetween() test 60 69}} {{#rollBetween() test target 59}} {{#^rollTotal() test target}}–0{{/^rollTotal() test target}} {{/rollBetween() test target 59}} {{#rollBetween() test 50 target}}+0{{/rollBetween() test 50 target}} {{#rollBetween() test 40 49}}+1{{/rollBetween() test 40 49}} {{#rollBetween() test 30 39}}+2{{/rollBetween() test 30 39}} {{#rollBetween() test 20 29}}+3{{/rollBetween() test 20 29}} {{#rollBetween() test 10 19}}+4{{/rollBetween() test 10 19}} {{#rollBetween() test 1 9}}+5{{/rollBetween() test 1 9}} {{/rollBetween() target 50 59}} {{#rollBetween() target 40 49}} {{#rollTotal() test 100}}–6{{/rollTotal() test 100}} {{#rollBetween() test 90 99}}–5{{/rollBetween() test 90 99}} {{#rollBetween() test 80 89}}–4{{/rollBetween() test 80 89}} {{#rollBetween() test 70 79}}–3{{/rollBetween() test 70 79}} {{#rollBetween() test 60 69}}–2{{/rollBetween() test 60 69}} {{#rollBetween() test 50 59}}–1{{/rollBetween() test 50 59}} {{#rollBetween() test target 49}} {{#^rollTotal() test target}}–0{{/^rollTotal() test target}} {{/rollBetween() test target 49}} {{#rollBetween() test 40 target}}+0{{/rollBetween() test 40 target}} {{#rollBetween() test 30 39}}+1{{/rollBetween() test 30 39}} {{#rollBetween() test 20 29}}+2{{/rollBetween() test 20 29}} {{#rollBetween() test 10 19}}+3{{/rollBetween() test 10 19}} {{#rollBetween() test 1 9}}+4{{/rollBetween() test 1 9}} {{/rollBetween() target 40 49}} {{#rollBetween() target 30 39}} {{#rollTotal() test 100}}-7{{/rollTotal() test 100}} {{#rollBetween() test 90 99}}–6{{/rollBetween() test 90 99}} {{#rollBetween() test 80 89}}–5{{/rollBetween() test 80 89}} {{#rollBetween() test 70 79}}–4{{/rollBetween() test 70 79}} {{#rollBetween() test 60 69}}–3{{/rollBetween() test 60 69}} {{#rollBetween() test 50 59}}–2{{/rollBetween() test 50 59}} {{#rollBetween() test 40 49}}–1{{/rollBetween() test 40 49}} {{#rollBetween() test target 39}} {{#^rollTotal() test target}}–0{{/^rollTotal() test target}} {{/rollBetween() test target 39}} {{#rollBetween() test 30 target}}+0{{/rollBetween() test 30 target}} {{#rollBetween() test 20 29}}+1{{/rollBetween() test 20 29}} {{#rollBetween() test 10 19}}+2{{/rollBetween() test 10 19}} {{#rollBetween() test 1 9}}+3{{/rollBetween() test 1 9}} {{/rollBetween() target 30 39}} {{#rollBetween() target 20 29}} {{#rollTotal() test 100}}–8{{/rollTotal() test 100}} {{#rollBetween() test 90 99}}–7{{/rollBetween() test 90 99}} {{#rollBetween() test 80 89}}–6{{/rollBetween() test 80 89}} {{#rollBetween() test 70 79}}–5{{/rollBetween() test 70 79}} {{#rollBetween() test 60 69}}–4{{/rollBetween() test 60 69}} {{#rollBetween() test 50 59}}–3{{/rollBetween() test 50 59}} {{#rollBetween() test 40 49}}–2{{/rollBetween() test 40 49}} {{#rollBetween() test 30 39}}–1{{/rollBetween() test 30 39}} {{#rollBetween() test target 29}} {{#^rollTotal() test target}}–0{{/^rollTotal() test target}} {{/rollBetween() test target 29}} {{#rollBetween() test 20 target}}+0{{/rollBetween() test 20 target}} {{#rollBetween() test 10 19}}+1{{/rollBetween() test 10 19}} {{#rollBetween() test 1 9}}+2{{/rollBetween() test 1 9}} {{/rollBetween() target 20 29}} {{#rollBetween() target 10 19}} {{#rollTotal() test 100}}–9{{/rollTotal() test 100}} {{#rollBetween() test 90 99}}–8{{/rollBetween() test 90 99}} {{#rollBetween() test 80 89}}–7{{/rollBetween() test 80 89}} {{#rollBetween() test 70 79}}–6{{/rollBetween() test 70 79}} {{#rollBetween() test 60 69}}–5{{/rollBetween() test 60 69}} {{#rollBetween() test 50 59}}–4{{/rollBetween() test 50 59}} {{#rollBetween() test 40 49}}–3{{/rollBetween() test 40 49}} {{#rollBetween() test 30 39}}–2{{/rollBetween() test 30 39}} {{#rollBetween() test 20 29}}–1{{/rollBetween() test 20 29}} {{#rollBetween() test target 19}} {{#^rollTotal() test target}}–0{{/^rollTotal() test target}} {{/rollBetween() test target 19}} {{#rollBetween() test 10 target}}+0{{/rollBetween() test 10 target}} {{#rollBetween() test 1 9}}+1{{/rollBetween() test 1 9}} {{/rollBetween() target 10 19}} {{#rollBetween() target 1 9}} {{#rollTotal() test 100}}–10{{/rollTotal() test 100}} {{#rollBetween() test 90 99}}–9{{/rollBetween() test 90 99}} {{#rollBetween() test 80 89}}–8{{/rollBetween() test 80 89}} {{#rollBetween() test 70 79}}–7{{/rollBetween() test 70 79}} {{#rollBetween() test 60 69}}–6{{/rollBetween() test 60 69}} {{#rollBetween() test 50 59}}–5{{/rollBetween() test 50 59}} {{#rollBetween() test 40 49}}–4{{/rollBetween() test 40 49}} {{#rollBetween() test 30 39}}–3{{/rollBetween() test 30 39}} {{#rollBetween() test 20 29}}–2{{/rollBetween() test 20 29}} {{#rollBetween() test 10 19}}–1{{/rollBetween() test 10 19}} {{#rollBetween() test target 9}} {{#^rollTotal() test target}}–0{{/^rollTotal() test target}} {{/rollBetween() test target 9}} {{#rollBetween() test 1 target}}+0{{/rollBetween() test 1 target}} {{/rollBetween() target 1 9}}
Realitor: Thank you very much. I will look into this. That is a simple solution I did not think about, simple logic operators. I am looking forward to see your character sheet as well.
Realitor: That works great. Thank you for sharing your solution. I just need to finish expanding it a bit.
1535376242

Edited 1535379888
Arioch1973
Sheet Author
<a href="https://pastebin.com/2KV2g4Sc" rel="nofollow">https://pastebin.com/2KV2g4Sc</a> &lt;- HTML version 1.47b. This one has Success Levels expanded when you roll against a value above 100, up to 200. And I had to fix a bit with that, so thats why I removed the earlier posts and now link this new and fixed one. <a href="https://pastebin.com/xHzSBrTY" rel="nofollow">https://pastebin.com/xHzSBrTY</a> &lt;- HTML version 1.47c very tiny fix for when you roll against a value above 200, nothing super important. <a href="https://pastebin.com/vjFHRVfP" rel="nofollow">https://pastebin.com/vjFHRVfP</a> &lt;- HTML version 1.47d. Fixed so that hit locations are always showed again, no matter if you succeed or fail. Had a brain short there when I changed it.
Maybe add place for corruption and sin point? Ecumbrance Total&nbsp;doesn't work.
1535388694

Edited 1535411093
Arioch1973
Sheet Author
<a href="https://pastebin.com/nCf59RNK" rel="nofollow">https://pastebin.com/nCf59RNK</a> &lt;- Version 1.48b with some changes to the layout. Thank you Burning for suggestions, feedback and testing. Thank you Alondaar for pointing out I had to fix the encumbrance calculation again. Edit: Updated a second time, minor change.
1535411126

Edited 1535414895
Arioch1973
Sheet Author
<a href="https://pastebin.com/nCf59RNK" rel="nofollow">https://pastebin.com/nCf59RNK</a> &lt;- Version 1.49, some changes to the Wounds, Corruption and Sin section. You can now keep track of your Corruption and Sin points. <a href="https://pastebin.com/nCf59RNK" rel="nofollow">https://pastebin.com/nCf59RNK</a> &lt;- Version 1.51, added a section of afflictions of body and mind.
<a href="https://pastebin.com/nCf59RNK" rel="nofollow">https://pastebin.com/nCf59RNK</a> &lt;- Version 1.51a. Melee (Fist) was changed to its now proper Melee (Brawling). Since attribute names was changed to keep it proper, write down any modifiers and advances from the Melee (Fist) skill to put into the Melee (Brawling) before updating to this one.
1535542162

Edited 1535542171
Arioch1973
Sheet Author
I will only update the paste bins from now on so the links will remain the same. <a href="https://pastebin.com/1tt1kJVM" rel="nofollow">https://pastebin.com/1tt1kJVM</a> &lt;- Current version of CSS. <a href="https://pastebin.com/nCf59RNK" rel="nofollow">https://pastebin.com/nCf59RNK</a> &lt;- Current version of HTML.
Too be honest I think you have overdone it a little with cursors. It may just be personal preference but I find the change from the quill to the different arrows to the hand in some cases a bit overwhelming. Other than that I think its great, I recommend sticking to just the custom arrow.&nbsp;
Version 1.52 is up thanks to Alondaar. More updates to come. And Palleto, the cursors are not done yet. The visuals are still secondary to some of the functions on the character sheet. The section about cursors are labeled in the CSS, so if you do not want to use it, just remove that piece of code.
1.53 is up thanks to&nbsp; Alondaar. Now all the encumbrance is calculated through sheet workers. And there was some small fixes to this version.
That is fair enough, the functionality is the most important aspect. I just thought i'd give some UI feedback. I was going to have a look at the css and possibly make thise changes. Keep up the great work!
1535558295

Edited 1535558365
Arioch1973
Sheet Author
Pull request has been created to have it committed to roll20 github. A big thanks to Alondaar, Havoc, Oxycutor, Realitor, for it would not have exited in its current form without their help.
Pull request has been accepted. Not sure how long it will take before it is available.
1536612871
Dyvim
Plus
Translator
Hello,&nbsp; Can you please add the data-i18n tags for a possible translation? It seems they are missing on your sheet (version 1.54)&nbsp; As this game is very appreciated in Europe I think it's a good idea even if the game has not been officially translated at the moment.
any ETA for when the sheet will drop for public use ?
I saw that the request was approved but it wasn't added to the list of approved sheets yet, i hope we can get it soon
1537691314
Dyvim
Plus
Translator
I reiterate my request to add the data-i18n tags.... Many people are interested.... :)
Public peasant here: Cant wait to use this, whoever reads this and is able to add this for public: JUST DO IT
The sheet dropped for public use today. But it is currently not working, as GitHub is giving me some issues.
Arioch1973 said: The sheet dropped for public use today. But it is currently not working, as GitHub is giving me some issues. Yeah, I noticed last night and added it to my campaign, but it's breaking Roll20. Here's the console error: Content Security Policy: The page’s settings blocked the loading of a resource at self (“script-src”). Source: onsubmit attribute on DIV element. editor
Is the sheet going to get fixed any time soon?
Karl L. said: Is the sheet going to get fixed any time soon? Pleaseeee?
1538312317

Edited 1538312365
So I guess the script issue is a lot bigger than I assumed? (Assumed it would get fixed before the weekend)
I dont even understand why this isnt a sponsored thing and has to be done by community guys for free (thank god). Warhammer RPGs are literally unplayable online without a GOOD character sheet that does the majority of bookkeeping for ya. T_T
1538313069
GiGs
Pro
Sheet Author
API Scripter
Its because there are literally hundreds of RPGs that people play, and roll20 doesnt have the staff to make character sheets for all them. If the community wants sheets for their favourite games, they have to make them.
the keyword is "sponsored" here.
1538315706
GiGs
Pro
Sheet Author
API Scripter
There just aren't enough WFRP players on roll20 to justify that. The roll20 blog has a monthly post about how many people play each game. Most games are tiny.
There are more Warhammer players than starfinder or dungeonworld, warhammer is about 10%. I know the blog and keep in mind that more players would play the game if there were a character sheet, that especially comes to count for new versions (like wfrp 4th). Dont fool yourself: It has nothing to do with player numbers, its about money. If company X would pay for it we would see alot more professional made sheets.
BanaB. said: There are more Warhammer players than starfinder or dungeonworld, warhammer is about 10%. I know the blog and keep in mind that more players would play the game if there were a character sheet, that especially comes to count for new versions (like wfrp 4th). Dont fool yourself: It has nothing to do with player numbers, its about money. If company X would pay for it we would see alot more professional made sheets. Do you really think when the Orr Report says "Warhammer - 10%" it means Warhammer Fantasy? Sounds like you're the one fooling yourself. If you want the sheet bad enough, get a Pro subscription. If you don't want to pay for that, then patiently wait for someone more dedicated than you to create something for the community. You're adding literally nothing of use here.
Iam sry that I dare to even breathe the same air as the entitled pro users. ;)
1538328136
GiGs
Pro
Sheet Author
API Scripter
BanaB. said: There are more Warhammer players than starfinder or dungeonworld, warhammer is about 10%. I know the blog and keep in mind that more players would play the game if there were a character sheet, that especially comes to count for new versions (like wfrp 4th). Dont fool yourself: It has nothing to do with player numbers, its about money. If company X would pay for it we would see alot more professional made sheets. Well, of course if company x would pay for it we'd see a lot more professional made sheets. But most gaming companies are tiny, and don't have the resources. This includes the publishers of WFRP. And there's no return on investment: they don't make any money doing it. Roll20 is willing to enter into partnerships with game publishers, as they have with Pathfinder, D&amp;D and Star Trek for instance, but for it to be worthwhile, there usually have to be modules of some for sale too, so it's worth the companies while. That gives them a way to make money. I agree with you btw, it would be really nice to have professionally made sheets for all the games we play. I'm just pointing out the realities we have to accept: as it stands, volunteer Pro users are the only ones who will make most sheets. If you have features you'd like such sheets to include, or tweaks to the sheet you'd like to see, you can use this thread to suggest them.&nbsp;
There is no update yet. I am just waiting for roll20 to go through with the push to github I have made, which changes the file name that should make the sheet work, even though it is one version behind.
It's working. Praise be to Sigmar!!!
Thanks for this!
First off, I want to say thank you very much for this awesome sheet! My GM and I did notice a little problem though, and that's talents outputting the description twice. Now this is easily fixed by removing {{talent=Savyy}} from &amp;{template:wfrp4} {{name=@{Malforandril Giltsight|character_name}}} {{title=Savvy}} {{talent=Savvy}} {{description=You gain a permanent +5 bonus to your starting Intelligence Characteristic (this does not count towards your Advances).}} I just wanted to know if anyone else is experiencing this?
Yeah, I think we all receive a double dip on the description bug.
The double display of description is fixed in the latest version. However, I have not managed to get it on github yet. <a href="https://pastebin.com/nCf59RNK" rel="nofollow">https://pastebin.com/nCf59RNK</a> &lt;- Version 1.60 available, now with checkboxes to set which skills are career skills.
1539667939

Edited 1539669003
Arioch, 1st, great work on this sheet so far.&nbsp; It's really nice to use.&nbsp; You've clearly put a LOT of thought into a nice clean design. Thinking about how to get Talents to automatically be applied into rolls.&nbsp; Seems like the Skills list would need to know about the Talents list.&nbsp; This is hard to do using the +Add and Modify approach to keeping the list size down, yes?&nbsp; What if instead of +Add and Modify, you just had Modify which changed the display to the "massive list" of all possible Skills/Talents and instead of trashbin buttons you had simple check boxes for visibility control.&nbsp; Then when you click Modify again, those with optional visibility would be displayed and the rest go back into hiding until needed.&nbsp; Then both the Skills list and the Talents list could always be complete and full and therefore "know" about each other. Once that's done, you could use Talents with &lt;&gt;0 values to drive changes to the Skills rolls. e.g. for Gossip skill, it could look at Gregarious talent.&nbsp; If Gregarious &gt; 1 it could automatically reverse the roll (92 to 29) if that reversed value &lt;= gossip's value and print something to the effect of having swapped a 92 to a 29 due to Gregarious &gt; 1.&nbsp; It could then go on and calculate the Success Level and automatically apply the Gregarious level as bonus SL's. What do you think? Still reading the code to try and learn how it's all done.&nbsp; If I can manage it, would love to contribute some.&nbsp; Haven't really written actual code since about 1995 and that was a mix of Perl4, HTML1.0, tcsh, and some other bits and bobs.&nbsp; Kind of itching to find something to chew on again.
1539670823
Marco
Pro
Sheet Author
In your example you need to determine if the Test was successful or not. Then you need to reverse the Roll and finally output the second result. Because how the Rolltemplates work you cannot do this, without massive tables of RollTemplate Logic. And when I say massive, I mean it. You don't have access to calculations or variables inside Roll Templates. In this sheet, the Success Level isn't calculated, it is determined by logic (IF roll is between a and b AND target is between c and d THEN SL is e). You can achieve this with additional API scripts, but I recommend to detach all the logic from the sheet and the roll template. Your script have to include Talent/Skill recognition, Talent/Skill conjunctions and the standard things, like reverse rolls and applying outcome modifiers, by comparing Opposed Rolls or asking for action types (Did you charged?).. With the Sheetworker and CSS you can fill the Talents list and manipulate the behavior of the Add and Modify buttons, by hiding them and replacing it with new buttons. You cannot disable the add, sort and delete function completely, because it is impossible. To achieve a filled talent list you can also simple hardcode them, without the use of a repeating sections. But anyway, this part, the talent list, is the simplest. If you need help where to start, feel free to ask me.
You guys did a great job in this sheet! I wonder if it would be possible to put trash cans to delete the lines of equipment and talents that are not in use. I think that's the only thing missing.
1539786256

Edited 1539786279
Marco
Pro
Sheet Author
Workaround: Click Modify left below the list. Move the cursor to the skull at the right end of the list item until the border around the skull becomes brown. Then click to delete the item.&nbsp;
Since iam on a character creation run for a westmarches style game... THANKS for the checkmark boxes. It was literally cancer beforehand to do skills/attributes/talents with people who dont know the system.