Personal tools

Savage Worlds

From Roll20 Wiki

Jump to: navigation, search

Contents

Macro for Wild Card Die Roll

The following macro provides the typical Savage Worlds roll, which consists of a skill die and the corresponding d6 wild card die.

/r {1d8! , 1d6!}k1

This example rolls both a d8 and a d6 and outputs the best result. The "!" character enables acing on each die. Note that it is possible to use "!" or "!!" for Savage Worlds but the "!!" version of exploding dice takes less room in the chat window. Also note that it is possible to see in the chat window if the first die in the macro, the trait die, was a natural 1, in cases where that is important.

More Macros

These threads over on the forum explain more about setting up Macros in Roll20 for Savage Worlds:

Example of Setting up Character Sheets and Macros

Some General Macros: Rate of Fire 3, etc.

Example of Fightin/em attacks @{Target|Name} rolling [[ { floor( ( { { 1d@{Selected|Fighting|4!-2}, 1d6!}kh1 - ((1 - @{Selected|fightingTrained}) * 2)[Untrained?] - @{Selected|Wound|0} - @{Selected|Fatigue|0} + ?{Modifier|0} } - {@{Target|parryBase} + @{Target|parryMod} - 4} ) /4 ),0d0 }kh1 ]] success and raises.

Macro for Counting Raises

If you want Roll20 to compute the number of raises on a trait or damage roll, you can use the following formula (in this example, a 2d6 damage roll against a toughness of 5):

/r floor({2d6!!-5}/4)

The result is the number of raises or a negative number if there was no success. This can be extended to get the Toughness from a token (in this example, the Toughness is stored in the green box of each token):

/r floor({2d6!!-@{target|bar1}}/4)

A trait roll with wild die asking for a modifier against the default target number of 4 could look like this:

/r floor({{1d8!!,1d6!!}k1 - 4 + ?{Modifier|0}}/4)

A Fighting roll with wild die asking for a modifier and comparing against character sheet attributes for Fighting, Base Parry, Parry Modifiers could look like this:

/em attacks @{Target|Name} rolling [[ { floor( ( { { 1d@{Selected|Fighting|4!-2}, 1d6!}kh1 - @{Selected|Wound|0} - @{Selected|Fatigue|0} + ?{Modifier|0} } - {@{Target|parryBase} + @{Target|parryMod} - 4} ) /4 ),0d0 }kh1 ]] success and raises.

With an output that looks like this: "Player attacks Target rolling 0 success and raises." where the number returned can be moused over for an exploded view of what was rolled and all modifiers applied.

Creating A Custom Deck for Bennies

In order to easily track bennies, you can create a custom card deck (decks and tables tab, "Add" button). Pick an image to use as the card background and upload it, and then create a card. Upload an image to use as the card front. Set "Cards in deck are infinite." Shuffle the deck once and your basic bennie deck is complete.

If you are using a setting with special bennies, you might have to create extra cards. For example, Deadlands: Reloaded uses a benny pool made up of Poker Chips called Fate Chips. There are 20 white chips, 10 red chips and 5 blue chips in the Fate Chip pool. So create your deck as before, upload an image of a poker chip as the background, and then create 20 new cards called White Chip. Upload an image of a white poker chip for each card. Repeat for the red and blue chips, making 10 and 5 of each. Then for deck options make sure that you do NOT check "cards in deck are infinite" and cards are played face up. Check the boxes to allow GM to see number of cards in other's hands and front of cards. Set any other options you like and you are done!

You can then shuffle and deal the "deck" just like a deck of cards and the users will recieve their bennies as normal. They can play them to the tabletop just like other cards.

Using Cards for Initiative

There are multiple ways to use cards for initiative in Roll20. The most basic one is that the GM plays the cards on the table while saying for who the card is and the dragging it to a place that is designated as in front of the corresponding player (e.g. "Dave sits at the top of the screen, Luke on the right, Jeff on the left. I the GM sit at the bottom."). Depending on how much is going this might not work very well. It is also possible to play cards into the hand of players so that they are visible to everybody. Unfortunately it is a bit difficult for the GM to keep track who has which card.

It is also possible to use the Turn Tracker with cards. Tokens can be added to the Turn Tracker right clicking on them and choosing the Add Turn options from the pop-up menu. The GM decides who gets his own cards and who is grouped together. If a token in the Turn Tracker represents a group of extras the highlighting obviously does not work correctly. Also, don't delete dead tokens because if you delete the one token you chose to represent a group, the group also disappears from the Turn Tracker. A better choice is to mark them dead with a token indicator overlay, or move them out of the visible portion of the Fog of War. To deal a card to each token in the Turn Tracker, click "Deal" on the initiate deck, then select "Deal Cards to Turn Order Items" from the pop-up window.

Here is how you can use the Turn Tracker and still keep some of the excitement of "dealing the card". The GM calls out who he is dealing for and draws a card from the stack. This is done by clicking on the card that sticks out on the top of the stack. The card is flipped around and the players can see what card it is. The "Show deck to players" option for the deck has to be set for this to work which it is for the default card deck. Then the GM drags the card onto the Turn Tracker. He has to release the mouse when the cursor is over the number next to a token (the number turns yellow then). Let's repeat that, the mouse cursor has to be over the number of the Turn Tracker for this to work, not the card, a corner of the card, or actually anything related to the card. It has to be the mouse cursor. It is easier to see this and get it right if the GM picks the card up on the left upper corner, because then it is easier to see the background color of the number in the Turn Tracker turn yellow. Once the cards are dealt, the GM can open the Turn Order Settings and press the "By Card/Suit" button to sort the Turn Tracker.

A note on the order in which the cards are drawn. The GM can decide to follow a fixed order every time, but it is easier to use the order in the turn tracker, which will be the order in which the tokens were added in the first round and then the order of the previous round. For dramatic purposes, it might also be a good idea to deal the cards for the NPCs first and then for the players.

Rollable Tables from Savage Worlds Deluxe

It is possible to set up the Injury Table as a rollable table. This is probably only worth the effort if you play with "gritty damage" rules. Use the following weights to get the results with "one roll":

Wound Weight
Unmentionables 1
Arm 5
Guts (Broken) 8
Guts (Battered) 8
Guts (Busted) 8
Leg 3
Head (Hideous Scar) 1
Head (Blinded) 1
Head (Brain Damage) 1

It is (currently) not possible to set up the Fright Table as a rollable table since you frequently need to roll on it with a modifier and modifiers for tables are not possible in Roll20.

For the Out of Control Table use these weights:

Effect Weight
Roll Over 1
Spin 5
Skid 24
Slip 5
Flip 1

For the Critical Hits Table use these weights:

Effect Weight
Scratch and Dent 1
Engine 2
Locomotion 3
Controls 4
Chassis 16
Crew 7
Weapon 2
Wrecked 1

Character Sheets

Character Sheets are a new feature in Roll20 which allow you to use a digital sheet that's similar to a traditional paper character sheet while playing your game. The creator of a game can choose a character sheet template when setting up the game, and all characters in the game will use that sheet template. Use the guides below for specific versions of available character sheets.

Savage Worlds Macros By Necron99

Here is an example of some of the macros i use for my Savage Rifts game. These Macros also work in regular Savage Worlds game. Just change the names. Link to my original post on macros

Ive been making these macros for my game to make everything run faster. The pull A lot of information from the sheet. One thing I suggest is making a bubble linked to parry on the token it set for bar 1 but you can change it. that way if a PC or what ever make a wild attack, you can just input the -2 and it will adjust. These Macros take everything from the sheet, as much as possible. A couple here and there might be slight mutations. as macros evolve with a life of their own. these macros must be named the name as they are listed if you change the name change the button information as well. these are tiered macros. currently this is the only macro i keep in the settings tab under macros

dmg-calc

/r floor(([[?{damage|0}]]-[[?{toughness|0}]])/4) Wounds enter damage enter toughness subtract the AP(if any) from toughness up to the maximum amount of armor the target has. toughness Armor value = 12(6) damage =18 AP 2 when it ask damage enter 18. when it ask tough enter 12-2 it will output how many wound you took

Chain-Great-Sword &{template:default}Template:Name=Chain-Great-Sword AP2 MDC{{Attack1=[[floor((1d@{fighting}!!+?{Penalty or Bonus?|0}-@{encumbrance}-@{target|bar1}-@{wounds}-@{fatigue})/4)]] Raises}}{{Attack2=[[floor((1d@{fighting}!!+?{Penalty or Bonus?|0}-@{encumbrance}-@{target|bar1}-@{wounds}-@{fatigue})/4)]] Raises}}{{Wild Die=[[floor((1d6!!-@{encumbrance}-@{wounds}-@{fatigue}- @{target|bar1}+?{Penalty or Bonus?|0})/4)]] Raises}}{{Targets Parry=[[@{target|bar1}]]}}{{Target=@{target|token_name}}}{{[Chain-Great-Sword](~chain-great-sword-dmg)}} @{target|image}

chain-great-sword-dmg &{template:default}Template:Name=Chain-Great-SwordAP2 Mega Damage{{Chain-Sword [[d@{strength}!!+2+2d10!!+?{raise|no,0|yes,1d6!!}]]}}{{Vehicle [[d@{strength}+2+2d10]]}}{{Target Toughness=[[@{target|toughnesscur}]] ([[@{target|toughnessArmor}]])}}{{[Dmg-Calc](~dmg-calc)}} @{target|image} (<====is if you want a picture of your target you must make an attribute named image and the value must be [image](url of .jpg or gif here if it doesn't have the ext just numbers add this at the end of it #.png))

dmg-calc

  1. dmg-calc

@{target|image}

Mini-rail-gun-(Range-75/150/300) &{template:default}Template:Name=Mini-rail-gun-(Range 75/150/300, Damage 2d8+4, RoF 4 AP 6, MDC) {{Attack1=[[floor((1d@{shooting}!!+?{Penalty or Bonus?|0}-@{encumbrance}-@{wounds}-@{fatigue}-4)/4)]] Raises}}{{Attack2=[[floor((1d@{shooting}!!+?{Penalty or Bonus?|0}-@{encumbrance}-@{wounds}-@{fatigue}-4)/4)]] Raises}}{{Attack3=[[floor((1d@{shooting}!!+?{Penalty or Bonus?|0}-@{encumbrance}-@{wounds}-@{fatigue}-4)/4)]] Raises}}{{Attack4=[[floor((1d@{shooting}!!+?{Penalty or Bonus?|0}-@{encumbrance}-@{wounds}-@{fatigue}-4)/4)]] Raises}}{{Wild Die=[[floor((1d6!!-@{encumbrance}-@{wounds}-@{fatigue}+?{Penalty or Bonus?|0}-4)/4)]] Raises}}{{Target=@{target|token_name}}}{{[mini-rail-run-dmg](~mini-rail-run-dmg)}}

mini-rail-run-dmg &{template:default}Template:Name=Mini-rail-gun-(Range 75/150/300, Damage 2d8+4, RoF 4 AP 6, MDC){{Rail gun=[[2d8!!+4+?{raise|no,0|yes,1d6!!}]]}}{{Target Toughness=[[@{target|toughnesscur}]] ([[@{target|toughnessArmor}]])}}{{[Dmg-Calc](~dmg-calc)}}

NG-57(Range-12/24/48-RoF-1) &{template:default}Template:Name=NG-57 Heavy Duty Ion Blaster Range 12/24/48, RoF 1, Damage 1–3d6+1 {{Attack1=[[floor((1d@{shooting}!!+?{Penalty or Bonus?|0}-@{encumbrance}-@{wounds}-@{fatigue}-4)/4)]] Raises}}{{Wild Die=[[floor((1d6!!-@{encumbrance}-@{wounds}-@{fatigue}+?{Penalty or Bonus?|0}-4)/4)]] Raises}}{{Target=@{target|token_name}}}{{[NG-57-dmg](~NG-57-dmg)}}

NG-57-dmg &{template:default}Template:Name=NG-57 Heavy Duty Ion Blaster Range 12/24/48, RoF 1, Damage 1–3d6+1{{Damage=[[?{Range|short, 3d6!!| medium, 2d6!!| long, 1d6!!} + ?{dmgmod|0}+?{raise|no,0|yes,1d6!!}]]}}{{Target Toughness=[[@{target|toughnesscur}]] ([[@{target|toughnessArmor}]])}}{{[Dmg-Calc](~dmg-calc)}}

HEX-Grenade &{template:default}Template:Name=HEX-Grenade (Range 5/10/20 MDC, MBT) {{Attack1=[[floor((1d@{Throwing}!!+?{Penalty or Bonus?|0}-@{encumbrance}-@{wounds}-@{fatigue}-4)/4)]] Raises}}{{Wild Die=[[floor((1d6!!-@{encumbrance}-@{wounds}-@{fatigue}+?{Penalty or Bonus?|0}-4)/4)]] Raises}}{{Target=@{target|token_name}}}{{[HEX-Grenade-dmg](~HEX-Grenade-dmg)}}

HEX-Grenade-Dmg &{template:default}Template:Name=HEX-Grenade (Range 5/10/20 MDC, MBT){{Damage=[[3d8!!+ ?{dmgmod|0}+?{raise|no,0|yes,1d6!!}]]}}{{Target Toughness=[[@{target|toughnesscur}]] ([[@{target|toughnessArmor}]])}}{{[Dmg-Calc](~dmg-calc)}}

fraggrenade (Range 5/10/20) LBT-MDC &{template:default}Template:Name=Frag grenade (Range 5/10/20, Damage 3d6, Mega Damage, LBT) {{Attack1=[[floor((1d@{Throwing}!!+?{Penalty or Bonus?|0}-@{encumbrance}-@{wounds}-@{fatigue}-4)/4)]] Raises}}{{Wild Die=[[floor((1d6!!-@{encumbrance}-@{wounds}-@{fatigue}+?{Penalty or Bonus?|0}-4)/4)]] Raises}}{{Target=@{target|token_name}}}{{[FRAG-Grenade](~FRAG-Grenade-dmg)}}

FRAG-Grenade-dmg &{template:default}Template:Name=Frag grenade (Range 5/10/20, Damage 3d6, Mega Damage, LBT){{Damage=[[3d6!!+ ?{dmgmod|0}+?{raise|no,0|yes,1d6!!}]]}}{{Target Toughness=[[@{target|toughnesscur}]] ([[@{target|toughnessArmor}]])}}{{[Dmg-Calc](~dmg-calc)}}


this is a special one i have cyborg battle toads. so i gave them "The boot" the-boot &{template:default}Template:Name=The Boot MDC{{Attack1=[[floor((1d@{fighting}!!+?{Penalty or Bonus?|0}-@{encumbrance}-@{target|bar1}-@{wounds}-@{fatigue})/4)]] Raises}}{{Attack2=[[floor((1d@{fighting}!!+?{Penalty or Bonus?|0}-@{encumbrance}-@{target|bar1}-@{wounds}-@{fatigue})/4)]] Raises}}{{Wild Die=[[floor((1d6!!-@{encumbrance}-@{wounds}-@{fatigue}- @{target|bar1}+?{Penalty or Bonus?|0})/4)]] Raises}}{{Targets Parry=[[@{target|bar1}]]}}{{Target=@{target|token_name}}}{{[The Boot](~The-Boot-dmg)}}

the-boot-dmg

&{template:default}Template:Name=The Boot Mega Damage{{The Boot=[[d@{strength}!!+3+1d10!!+3d6!!+?{raise|no,0|yes,1d6!!}]]}}{{Target Toughness=[[@{target|toughnesscur}]] ([[@{target|toughnessArmor}]])}}{{[Dmg-Calc](~dmg-calc)}}

magic &{template:default}Template:Name=Magic{{Magic=[[floor((1d@{Spellcasting}!!+?{Penalty or Bonus?|0}-@{encumbrance}-@{wounds}-@{fatigue}-4)/4)]] Raises}}{{Wild Die=[[floor((1d6!!+@{encumbrance}-@{wounds}-@{fatigue}+?{Penalty or Bonus?|0}-4)/4)]] Raises}}{{Power Points=[[@{selected|bar3}]]}}{{Wizard=-1 point per raise}} [Armor 5pp](~armor)[slow 2pp 30"](~slow)[Bolt 3d6(2)pp 6d6(4)pp 18/36/72](~bolt)[Boost- Lower-Trait 4pp 20"](~Boost-Lower-Trait)[Darksight 2pp](~darksight)[Deflection 4pp](~deflection)[PPE-Thief 9pp 20"](~ppe-thief)[fear 4pp 30"](~fear)[Rezi 30pp](~RESURRECTION)[mass-healling 6pp 20"r](~mass-healing)[astral-form 10pp](~astral-form)[mind-control 6pp 20"](~mind-control)[slumber 4pp 30"](~slumber)[wall-walker 4pp](~wall-walker)[zombie 3pp/per](~zombie)


armor &{template:default}Template:Name=ARMOR GREATER ARMOR{{Power Points Cost=[[(5-?{number of raises|0})]]}}Template:Range=TouchTemplate:Duration=3 (1/round)Template:Success grants=+5 M.D.C. Armor, a raise grants +10

bolt &{template:default}Template:Name=Bolt Mega Dmg 18/36/72{{3d6 cost=[[2-?{number of raises|0})]]}}{{6d6 cost=[[4-?{number of raises|0})]]}}{{3d6=[[3d6!!+?{Raise|no,0|yes,1d6!!}]]}} {{6d6=[[6d6!!+?{Raise|no,0|yes,1d6!!}]]}}{{Target Toughness=[[@{target|toughnesscur}]] ([[@{target|toughnessArmor}]])}}{{[Dmg-Calc](~dmg-calc)}}

Boost-Lower-Trait &{template:default}Template:Name=BOOST/LOWER TRAIT{{Power Points Cost=[[(4-?{number of raises|0})]]}}{{Range=[[@{smarts}*2]]}}Template:Duration=3 (1/round)Template:Success grants=two die types for a success, four with a raise.

darksight &{template:default}Template:Name=DARKSIGHT{{Power Points Cost=[[(2-?{number of raises|0})]]}}Template:Range=TouchTemplate:Duration=1 hourTemplate:Success grants=Exalted darksight makes it virtually impossible to impair the target’s vision in any way. Blind does not work on him, nor does any form of obscure or other lighting penalties. He can also see anyone using the invisibility power.

i could do the whole list but you get the formula by now to make changes on your own. and I can answer any questions you might have on how to implement them. and yes i did put every spell the npc has into macros. i like all combat to run very fast and these help me do it.

a little bit of work on the back end, and the front runs so much smother. for those of you that play with someone who is running API script you can add /fx explode-blood @{target|token_id} to the end of any macro and make blood explode from your target. coming soon!(hopefully it can be done i just need to learn it first) how to add a sound effect to play when ever you hit someone or damage them I hope you all find these macros useful. Read the wiki on macros. that where i started. 90% of you are not getting the full enjoyment out of the site as you can. I can only afford a free account and I've done so much with just the free resources.

General Macros

Here is a basic wild card trait test macro. You can point it at any token connected to a sheet. This macro is meant to be put under macros in the setting tab. I should mention, all these macros are for the tabbed sheet for savage worlds. The 2 sheet have different values.

WC-Trait /me @{target|token_name} makes a trait test /r floor(({?{Trait to Roll|Agility, #agility |Smarts,#smarts |Spirit,#spirit |Strength,#strength |Vigor,#vigor }[TR], 1d6!![WD]}k1+?{trait mod|0}[TM]-@{target|wounds}[WND]-@{target|fatigue}[FAT]+?{Agility or Strength Check?|no,0 |yes,#encumbrance }[ENC]-4)/4)


these macros must be put into the macros under the settings tab. Because of the limitation of a free account and the way roll20 parses information, I made a work around. You can't do a a multiple choice with @{target|value}

EDIT: made some changes to make it more clear where the value is coming from agility [[[[d@{target|agility}!!]]+[[@{target|agmod}]]]]

smarts [[[[d@{target|smarts}!!]]+[[@{target|smmod}]]]]

spirit [[[[d@{target|spirit}!!]]+[[@{target|spmod}]]]]

strength [[[[d@{target|strength}!!]]+[[@{target|stmod}]]]]

vigor [[[[d@{target|vigor}!!]]+[[@{target|vimod}]]]]

Here is the Extra's version

extra-trait /me @{target|token_name} makes a trait test /r floor((?{Trait to Roll|Agility, #agility |Smarts,#smarts |Spirit,#spirit |Strength,#strength |Vigor,#vigor }[TR]+?{trait mod|0}[TM]-@{target|wounds}[WND]-@{target|fatigue}[FAT]+?{Agility or Strength Check?|no,0 |yes,#encumbrance }[ENC]-4)/4)

Here the fighting wild card attack. target one token and have it swing at the other token. same instruction as before put these under macros in the settings tab

wild-card-melee /me @{target|making attack|token_name} takes a swing at @{target|being attacked|token_name} whose parry is [[@{target|being attacked|bar1}]] /r floor(({#fighting ,1d6!!}k1+?{skill mod|0}-@{target|making attack|wounds}-@{target|making attack|fatigue}+@{target|making attack|encumbrance}+?{skill mod|0}-@{target|being attacked|bar1})/4)

fighting [[[[d@{target|making attack|fighting}!!]]+[[@{target|making attack|fightingmod}]]]]

extra-melee-attack /me @{target|making attack|token_name} takes a swing at @{target|being attacked|token_name} whose parry is [[@{target|being attacked|bar1}]] /r floor((#fighting +?{skill mod|0}-@{target|making attack|wounds}-@{target|making attack|fatigue}+@{target|making attack|encumbrance}+?{skill mod|0}-@{target|being attacked|bar1})/4) here the fighting wild card attack. target one token and have it swing at the other token. same instruction as before put these under macros in the settings tab

wild-card-melee /me @{target|making attack|token_name} takes a swing at @{target|being attacked|token_name} whose parry is [[@{target|being attacked|bar1}]] /r floor(({#fighting ,1d6!!}k1+?{skill mod|0}-@{target|making attack|wounds}-@{target|making attack|fatigue}+@{target|making attack|encumbrance}+?{skill mod|0}-@{target|being attacked|bar1})/4)

fighting [[[[d@{target|making attack|fighting}!!]]+[[@{target|making attack|fightingmod}]]]]

extra-melee-attack /me @{target|making attack|token_name} takes a swing at @{target|being attacked|token_name} whose parry is [[@{target|being attacked|bar1}]] /r floor((#fighting +?{skill mod|0}-@{target|making attack|wounds}-@{target|making attack|fatigue}+@{target|making attack|encumbrance}+?{skill mod|0}-@{target|being attacked|bar1})/4)

wild-card-ranged-attack /me @{target|making attack|token_name} takes a shot at @{target|being attacked|token_name} /r floor(({#shooting ,1d6!!}k1+?{skill mod|0}-@{target|making attack|wounds}-@{target|making attack|fatigue}+@{target|making attack|encumbrance}+?{skill mod|0}-4)/4)

extra-ranged-attack /me @{target|making attack|token_name} takes a shot at @{target|being attacked|token_name} /r floor((#shooting +?{skill mod|0}-@{target|making attack|wounds}-@{target|making attack|fatigue}+@{target|making attack|encumbrance}+?{skill mod|0}-4)/4)

shooting [[[[d@{target|making attack|shooting}!!]]+[[@{target|making attack|shootingmod}]]]]

get armor value macro. use it after you have rolled damage, and pull the toughness and armor value from a token. now you dont have to bother GM. you can do it your self. if everyone takes a hand in determining all the values flying around, you increase the speed of your combat rounds by at least 50% Which leaves more time for role playing

get-armor-value /me @{target|token to get AV from|token_name} has a Toughness of [[@{target|token to get AV from|toughnesscur}]] and an Armor value of ([[@{target|token to get AV from|toughnessarmor}]])