Skip to content

Instantly share code, notes, and snippets.

@Silvyre
Last active May 26, 2021 13:15
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Silvyre/5719165c1b05ed913f84 to your computer and use it in GitHub Desktop.
Save Silvyre/5719165c1b05ed913f84 to your computer and use it in GitHub Desktop.
This macro contains HTML entities and therefore must be saved as an Ability. Required setup: 5 Rollable Tables (see comments below) and 10 Attributes (Cl, Dex, Fel, I, Int, Ld, M, S, T and WP). Employment and Gambling tests have been excluded.
&{template:default} {{name=**WFRP Standard Test**}} <v2.3 by Silvyre> {{@{selected|token_name}'s ?{Test|Select one:, attempt to use this macro was [[ 1t[[[d3-3]]] ]] |
Animosity, attempt to resist animosity (@{selected|Cl}) ?{Modifiers&#124;None&#44; &#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|Cl} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Bargain, attempt to bargain (@{selected|Fel}) ?{Modifiers&#124;None&#44; &#124;Charm (+10%)&#44; [using Charm] +10&#124;Haggle (+10%)&#44; [using Haggle] +10&#124;Seduction (+10%)&#44; [using Seduction] +10&#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|Fel} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Bluff, attempt to bluff (@{selected|Fel}) ?{Modifiers&#124;None&#44; &#124;Acting (+15%)&#44; [using Acting] +15&#124;Charm (+10%)&#44; [using Charm] +10&#124;Clown (+10%)&#44; [using Clown] +10&#124;Jester (+10%)&#44; [using Jester] +10&#124;Public Speaking&#44; [using Public Speaking (affects @{selected|Ld} people)]&#124;Seduction (+10%)&#44; [using Seduction] +10&#124;Wit (+10%)&#44; [using Wit] +10&#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|Fel} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Boat Handling, attempt at boat handling (@{selected|Int} + @{selected|I})/?{Do you possess the appropriate skill (Rowing and/or Sailing) for your boat?&#124;No&#44;4&#124;Yes&#44;2&#125; ?{Modifiers&#124;None&#44; &#124;River Lore (+10%)&#44; [using River Lore] +10&#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor(([[floor(@{selected|Int} + @{selected|I})/?{Do you possess the appropriate skill (Rowing and/or Sailing) for your boat?&#125;]] ?{Modifiers&#125; - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Bribe, attempt to bribe (100 - @{selected|WP}) ?{Modifiers&#124;None&#44; &#124;Bribery (+20%)&#44; [using Bribery] +20&#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(100 - @{selected|WP} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Busk, attempt to busk (@{selected|Fel}) ?{Modifiers&#124;None&#44; &#124;Acrobatics (+10%)&#44; [using Acrobatics] +10&#124;Acting (+10%)&#44; [using Acting] +10&#124;Art (+10%)&#44; [using Art] +10&#124;Clown (+10%)&#44; [using Clown] +10&#124;Comedian (+10%)&#44; [using Comedian] +10&#124;Contortionist (+10%)&#44; [using Contortionist] +10&#124;Dance (+10%)&#44; [using Dance] +10&#124;Escapology (+10%)&#44; [using Escapology] +10&#124;Fire Eating (+10%)&#44; [using Fire Eating] +10&#124;Jest (+10%)&#44; [using Jest] +10&#124;Juggle (+10%)&#44; [using Juggle] +10&#124;Mime (+10%)&#44; [using Mime] +10&#124;Mimic (+10%)&#44; [using Mimic] +10&#124;Musicianship (+10%)&#44; [using Musicianship] +10&#124;Palmistry (+10%)&#44; [using Palmistry] +10&#124;Sing (+10%)&#44; [using Sing] +10&#124;Story Telling (+10%)&#44; [using Story Telling] +10&#124;Strongman (+10%)&#44; [using Strongman] +10&#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|Fel} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Construct, attempt to construct (@{selected|Dex}) ?{Modifiers&#124;None&#44; &#124;Boat Building (+10%)&#44; [using Boat Building] +10&#124;Carpentry (+10%)&#44; [using Carpentry] +10&#124;Engineering (+20%)&#44; [using Engineering] +20&#124;Mining (+10%)&#44; [using Mining] +10&#124;Smithing (+10%)&#44; [using Smithing] +10&#124;Stoneworking (+10%)&#44; [using Stoneworking] +10&#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|Dex} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Disease, attempt to resist disease (@{selected|T} * 10) ?{Modifiers&#124;None&#44; &#124;Immunity To Disease (+10%)&#44; [using Immunity To Disease] +10&#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|T} * 10 ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Estimate, attempt to estimate (@{selected|Int}) ?{Modifiers&#124;None&#44; &#124;Evaluate (+10%)&#44; [using Evaluate] +10&#124;Follow Trail (+10%)&#44; [using Follow Trail] +10&#124;Super Numerate (+20%)&#44; [using Super Numerate] +20&#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|Int} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Fall, fall resulted in a loss of [[{[[ceil(?{Distance fallen in yards&#124;1&#125;)]] [yard(s) fallen] - ( [[1d6]] [D6 roll]?{Do you possess the Acrobatics skill?&#124;No&#44; &#124;Yes&#44; + 2 [Acrobatics]&#125;)&#44;0&#125;k1]]W. |
Fear, attempt to resist fear (@{selected|Cl}) ?{Modifiers&#124;None&#44; &#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|Cl} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Frenzy, attempt to resist frenzy (@{selected|Cl}) ?{Modifiers&#124;None&#44; &#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|Cl} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Gossip, attempt to gossip (@{selected|Fel}) ?{Modifiers&#124;None&#44; &#124;Acting (+15%)&#44; [using Acting] +15&#124;Charm (+10%)&#44; [using Charm] +10&#124;Comedian (+15%)&#44; [using Comedian] +15&#124;Public Speaking&#44; [using Public Speaking (affects @{selected|Ld} people)]&#124;Seduction (+10%)&#44; [using Seduction] +10&#124;Story Telling (+10%)&#44; [using Story Telling] +10&#124;Wit (+10%)&#44; [using Wit] +10&#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|Fel} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Hatred, attempt to resist hatred (@{selected|Cl}) ?{Modifiers&#124;None&#44; &#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|Cl} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Hide, attempt to hide (@{selected|I} + @{selected|Cl} - ?{Input target's I Characteristic&#124;10&#125;) ?{Modifiers&#124;None&#44; &#124;Shadowing (+10%)&#44; [using Shadowing] +10&#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; ?{Do you possess the appropriate Concealment and/or Silent Move skill(s) (Rural or Urban) for the environment?&#124;No&#44; &#124;Only Concealment&#44;?{Movement&amp;#124;Keeping still&amp;#44;[while keeping still within Concealment] +20&amp;#124;Moving cautiously&amp;#44;[while moving cautiously through Concealment] +5&amp;#125;&#124;Only Silent Move&#44;[using Silent Move] +10&#124;I have both&#44;?{Movement&amp;#124;Keeping still&amp;#44;[while using Silent Move and keeping still within Concealment] +30&amp;#124;Moving cautiously&amp;#44;[while using Silent Move to move cautiously through Concealment] +15&amp;#125;&#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|I} + @{selected|Cl} - ?{Input target's I Characteristic&#124;10&#125;) ?{Modifiers&#124;None&#44; &#124;Shadowing (+10%)&#44; [using Shadowing] +10&#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; ?{Do you possess the appropriate Concealment and/or Silent Move skill(s) (Rural or Urban ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Hypnotism, attempt to resist hypnotism (@{selected|WP}) ?{Modifiers&#124;None&#44; &#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|WP} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Interrogate, attempt to resist interrogation (@{selected|WP}) ?{Modifiers&#124;None&#44; &#124;Subject to Torture&#44; [by a skilled Torturer] -10&#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|WP} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Jump, jump resulted in a loss of [[{[[ceil(?{Distance jumped in yards&#124;1&#125;)]] [yard(s) jumped] - ( [[1d6]] [D6 roll]?{Do you possess the Acrobatics skill?&#124;No&#44; &#124;Yes&#44; + 2 [Acrobatics]&#125;)&#44;0&#125;k1]]W. |
Leap, ?{Leap&#124;Running&#44; running leap sees them traveling up to [[{@{selected|M} [M]*2?{Do you possess the Acrobatics skill?&amp;#124;No&amp;#44; &amp;#124;Yes&amp;#44; + 2 [Acrobatics]&amp;#125; - ( [[d6]] [1D6 roll] )&amp;#44;1&amp;#125;k1]]&#124;Standing&#44; standing leap sees them traveling up to [[{@{selected|M} [M]?{Do you possess the Acrobatics skill?&amp;#124;No&amp;#44; &amp;#124;Yes&amp;#44; + 2 [Acrobatics]&amp;#125; - ( [[2d6]] [2D6 roll] )&amp;#44;1&amp;#125;k1]]&#125; yard(s). |
Listen, attempt to listen to a [?{Noise&#124;Normal&#44;normal noise] (60)&#124;Soft&#44;soft noise] (30)&#124;Loud&#44;loud noise (100)&#125; ?{Modifiers&#124;None&#44; &#124;Acute Hearing (+10%)&#44; [using Acute Hearing] +10&#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; ?{Does the target possess the appropriate Silent Move skill (Rural or Urban) for the environment?&#124;No&#44; &#124;Yes&#44;[opposed by Silent Move] -10&#125; was [[ 1t[[[{[[{[[floor(((0 + [?{Noise&#125; ?{Modifiers&#125; ?{Does the target possess the appropriate Silent Move skill (Rural or Urban) for the environment?&#125; ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Loyalty, attempt to remain loyal (@{selected|Ld}) ?{Modifiers&#124;None&#44; &#124;Being bribed&#44; [while being bribed] -20&#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|Ld} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Magic, attempt to resist magic (@{selected|WP}) ?{Modifiers&#124;None&#44; &#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|WP} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Observe, attempt to observe (@{selected|I}) ?{Modifiers&#124;None&#44; &#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|I} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Pick Lock, attempt to lock pick (@{selected|Dex} - ?{Lock Rating&#124;10&#125;) ?{Modifiers&#124;Unskilled&#44; [without Pick Lock] -30&#124;Pick Lock&#44; ?{Pick Lock&amp;#124;Basic (+10%)&amp;#44; [using basic Pick Lock] +10&amp;#124;Locksmith (+20%)&amp;#44; [using skilled Pick Lock] +20&amp;#124;Master Locksmith (+30%)&amp;#44; [using mastered Pick Lock] +30&amp;#125;&#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|Dex} - ?{Lock Rating&#124;10&#125; ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Pick Pocket, attempt to pickpocket (@{selected|Dex} - 30) ?{Modifiers&#124;None&#44; &#124;Pick Pocket (+30%)&#44; [using Pick Pocket] +30&#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|Dex} - 30 ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Poison, attempt to resist poison (@{selected|T} * 10) ?{Modifiers&#124;None&#44; &#124;Immunity To Poison (+10%)&#44; [using Immunity To Poison] +10&#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|T} * 10 ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Problem Solving, attempt to problem-solve (@{selected|Int}) ?{Modifiers&#124;None&#44; &#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|Int} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Rapid Search, attempt at a rapid search (@{selected|I}) ?{Modifiers&#124;None&#44; &#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|I} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Reaction, attempt to react (@{selected|I}) ?{Modifiers&#124;None&#44; &#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|I} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Risk, risk (?{Risk&#124;50&#125;) was [[ 1t[[[{[[{[[floor((floor(?{Risk&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Search, attempt to search (@{selected|I}) ?{Modifiers&#124;None&#44; &#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|I} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Strength, attempt at strength (@{selected|S} * 10) ?{Modifiers&#124;None&#44; &#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|S} * 10 ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Stupidity, attempt to resist stupidity (@{selected|Int}) ?{Modifiers&#124;None&#44; &#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|Int} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Terror, attempt to resist terror (@{selected|Cl}) ?{Modifiers&#124;None&#44; &#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|Cl} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]] |
Understand Language, attempt to understand language (@{selected|Int}) ?{Modifiers&#124;None&#44; &#124;Linguistics (+10%)&#44; [using Linguistics] +10&#124;Customize&#44; + [a modifier of] &amp;#63;{Customize&amp;#124;0&amp;#125; &#125; was [[ 1t[[[{[[{[[floor((floor(@{selected|Int} ?{Modifiers&#125;) - d100)/29.99)+1]]&#44;-2&#125;kh1]]&#44;2&#125;kl1]]] ]]
}}}
@Silvyre
Copy link
Author

Silvyre commented Sep 8, 2015

Table Name Table Item (Sample Text) Significance
-2 fumbled... Failed by a margin of at least 60.
-1 botched. Failed by a margin of 30 to 59.
0 failed. Failed by a margin of 1 to 29.
1 successful. Passed by a margin of 0 to 29.
2 a perfect success! Passed by a margin of at least 30.

@Dosman
Copy link

Dosman commented May 7, 2020

This is fantastic, am finding it very useful. Thanks! One issue I found was with the Listen test. It looks like a code snippet got accidentally partially copy-pasted into that section rather than just a misplaced parenthesis symbol (have tried to work out how to fix, but have failed). If you go through the following sequence you get:
"Listen" -> "Noise" Normal -> "Modifiers" None -> "Does the target posses the appropriate Silent Move skill (Rural or Urban) for the environment?" No -> and then partially repeats, "Does the target posses the appropriate Silent Move skill (Rural or Urban ?{Modifiers :" then an empty box (no pulldown) -> macro exits. Any idea how to fix?

@Silvyre
Copy link
Author

Silvyre commented May 7, 2020

@Dosman There were definitely a few things wrong with the Listen test, but I think I've managed to fix them in the latest revision. Let me know if you run into any other difficulties!

@Dosman
Copy link

Dosman commented May 8, 2020

Thanks @Silvyre, that seems to be working! Will test more thoroughly later and let you know if there are any problems. Thanks again :)

@Silvyre
Copy link
Author

Silvyre commented May 8, 2020

Cheers!

@ntyrrell
Copy link

Sorry to have to bother you with this, but when I add the macro, it generally seems to be fine when I test it the first time, but if I refresh the page, the macro breaks spectacularly.

@Silvyre
Copy link
Author

Silvyre commented May 26, 2021

@ntyrrell Are you saving the macro under the Collections tab? If so, try saving it as an Ability (on a Character Sheet).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment