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

August 26 (6 years ago)

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.

August 27 (6 years ago)
Arioch1973
Sheet Author

https://pastebin.com/9C6s9Geu <- Fixed.

August 27 (6 years ago)
Arioch1973
Sheet Author


Alon said:

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.


You are quite correct there, and it was an easy fix in reverse :)

August 27 (6 years ago)

Edited August 27 (6 years ago)
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 vs. mb (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. 

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. 

We use this to determine the decade of target

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). 

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 -> 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 -> 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}}


August 27 (6 years ago)
Arioch1973
Sheet Author

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.

August 27 (6 years ago)
Arioch1973
Sheet Author

Realitor: That works great. Thank you for sharing your solution. I just need to finish expanding it a bit.

August 27 (6 years ago)

Edited August 27 (6 years ago)
Arioch1973
Sheet Author

https://pastebin.com/2KV2g4Sc <- 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.

https://pastebin.com/xHzSBrTY <- HTML version 1.47c very tiny fix for when you roll against a value above 200, nothing super important.

https://pastebin.com/vjFHRVfP <- 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 doesn't work.

August 27 (6 years ago)

Edited August 27 (6 years ago)
Arioch1973
Sheet Author

https://pastebin.com/nCf59RNK<- 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.

August 27 (6 years ago)

Edited August 28 (6 years ago)
Arioch1973
Sheet Author

https://pastebin.com/nCf59RNK <- Version 1.49, some changes to the Wounds, Corruption and Sin section. You can now keep track of your Corruption and Sin points.

https://pastebin.com/nCf59RNK <- Version 1.51, added a section of afflictions of body and mind.

August 28 (6 years ago)
Arioch1973
Sheet Author

https://pastebin.com/nCf59RNK <- 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.

August 29 (6 years ago)

Edited August 29 (6 years ago)
Arioch1973
Sheet Author

I will only update the paste bins from now on so the links will remain the same.

https://pastebin.com/1tt1kJVM <- Current version of CSS.

https://pastebin.com/nCf59RNK <- Current version of HTML.

August 29 (6 years ago)

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. 

August 29 (6 years ago)
Arioch1973
Sheet Author

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.

August 29 (6 years ago)
Arioch1973
Sheet Author

1.53 is up thanks to  Alondaar. Now all the encumbrance is calculated through sheet workers. And there was some small fixes to this version.

August 29 (6 years ago)

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!

August 29 (6 years ago)

Edited August 29 (6 years ago)
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.

September 03 (6 years ago)
Arioch1973
Sheet Author

Pull request has been accepted. Not sure how long it will take before it is available.

September 10 (6 years ago)
Dyvim
Plus
Translator

Hello, 


Can you please add the data-i18n tags for a possible translation? It seems they are missing on your sheet (version 1.54) 


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.

September 18 (6 years ago)

any ETA for when the sheet will drop for public use ?

September 18 (6 years ago)

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

September 23 (6 years ago)
Dyvim
Plus
Translator

I reiterate my request to add the data-i18n tags.... Many people are interested.... :)

September 25 (6 years ago)

Public peasant here:

Cant wait to use this, whoever reads this and is able to add this for public:
JUST DO IT

September 25 (6 years ago)
Arioch1973
Sheet Author

The sheet dropped for public use today. But it is currently not working, as GitHub is giving me some issues.

September 26 (6 years ago)


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


September 29 (6 years ago)

Is the sheet going to get fixed any time soon?

September 29 (6 years ago)


Karl L. said:

Is the sheet going to get fixed any time soon?


Pleaseeee?

September 30 (6 years ago)

Edited September 30 (6 years ago)

So I guess the script issue is a lot bigger than I assumed? (Assumed it would get fixed before the weekend)

September 30 (6 years ago)

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

September 30 (6 years ago)
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.

September 30 (6 years ago)

the keyword is "sponsored" here.

September 30 (6 years ago)
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.

September 30 (6 years ago)

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.

September 30 (6 years ago)


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.

September 30 (6 years ago)

Iam sry that I dare to even breathe the same air as the entitled pro users.
;)

September 30 (6 years ago)
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&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. 





September 30 (6 years ago)
Arioch1973
Sheet Author

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.

October 02 (6 years ago)

It's working. Praise be to Sigmar!!!

October 02 (6 years ago)

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

&{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?

October 14 (6 years ago)

Yeah, I think we all receive a double dip on the description bug.

October 14 (6 years ago)
Arioch1973
Sheet Author

The double display of description is fixed in the latest version. However, I have not managed to get it on github yet.


https://pastebin.com/nCf59RNK <- Version 1.60 available, now with checkboxes to set which skills are career skills.

October 16 (6 years ago)

Edited October 16 (6 years ago)

Arioch,

1st, great work on this sheet so far.  It's really nice to use.  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.  Seems like the Skills list would need to know about the Talents list.  This is hard to do using the +Add and Modify approach to keeping the list size down, yes?  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.  Then when you click Modify again, those with optional visibility would be displayed and the rest go back into hiding until needed.  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 <>0 values to drive changes to the Skills rolls.

e.g. for Gossip skill, it could look at Gregarious talent.  If Gregarious > 1 it could automatically reverse the roll (92 to 29) if that reversed value <= gossip's value and print something to the effect of having swapped a 92 to a 29 due to Gregarious > 1.  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.  If I can manage it, would love to contribute some.  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.  Kind of itching to find something to chew on again.

October 16 (6 years ago)
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.

October 17 (6 years ago)

Edited October 17 (6 years ago)
Marco
Pro
Sheet Author

Workaround:

  1. Click Modify left below the list.
  2. 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. 
October 19 (6 years ago)

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.