Savage Worlds Shadowrun Enemy Builder

This table is to make enemies for a Shadowrun-type game using the Savage Worlds (SWADE) System.

Currently Assigns Attributes due to NPC Rating instead of being random, as I couldn't figure out a proper way to add metatype bonuses otherwise.

Wildcards get leadership edges. Some edges may not be appropriate for the rank or prerequisites. This is left up to the DM to determine what is appropriate for their situation.

This chart uses input variables
  • Wildcard
  • Enemy_Archetype
  • Rating
Result

{#Roll On Charts to keep throughout Statblock Generation#}

{% metatype = roll_chart name:"Metatype" %}

{% armor = roll_chart name:"Armor" %}

{# Establish NPC Strength#}

{%if Wildcard == "Yes"%}
{% Wildcard = "(Wildcard)" %}
{%else%}
{% Wildcard = "" %}
{%end%}

{# Number of Edges #}
{%if Rating == "Weak"%}
{% ed = 1 %}
{% hed = 2 %}
{% led = 0 %}
{%elif Rating == "Average"%}
{% ed = 2 %}
{% hed = 3 %}
{% led = 1 %}
{%elif Rating == "Strong"%}
{% ed = 3 %}
{% hed = 4 %}
{% led = 2 %}
{%elif Rating == "Black Ops"%}
{% ed = 4 %}
{% hed = 5 %}
{% led = 3 %}
{%end%}

{# Attributes #}
{%if Rating == "Weak"%}
{% die = "6" %}
{% bonusdie = "8" %}
{% trolldie = "10" %}
{%elif Rating == "Average"%}
{% die = "8" %}
{% bonusdie = "10" %}
{% trolldie = "12" %}
{%elif Rating == "Strong"%}
{% die = "10" %}
{% bonusdie = "12" %}
{% trolldie = "12+1" %}
{%elif Rating == "Black Ops"%}
{% die = "12" %}
{% bonusdie = "12+1" %}
{% trolldie = "12+2" %}
{%end%}

{% agi = die %}
{% smt = die %}
{% sprt = die %}
{% str = die %}
{% vig = die %}

{# Determine Size #}
{%if metatype.1 == "Troll"%}
{% sz = 2 %}
{%elif metatype.1 == "Orc"%}
{% sz = 1 %}
{%else%}
{% sz = 0 %}
{%end%}

{# Add Racial Bonuses to Attributes #}
{%if metatype.1 == "Elf"%}
{% agi = bonusdie %}
{% sprt = bonusdie %}
{%elif metatype.1 == "Dwarf"%}
{% str = bonusdie %}
{% vig = bonusdie %}
{%elif metatype.1 == "Orc"%}
{% str = bonusdie %}
{% vig = bonusdie %}
{%elif metatype.1 == "Troll"%}
{% str = trolldie %}
{% vig = trolldie %}
{%end%}

{# Determine Derived Stats #}

{% parry_table = roll_chart filter:{{str}} filter_cols:1 name:"Derived" %}
{% par = parry_table.2 %}

{% tough_table = roll_chart filter:{{vig}} filter_cols:1 name:"Derived" %}
{% tgh = tough_table.2 %}

{%if metatype.1 == "Dwarf"%}
{% pce = "5, d4 running die" %}
{%else%}
{% pce = "6" %}
{%end%}

Resolve: {{$Rating} {$Enemy_Archetype} {$Wildcard}}

{{metatype.1}}


Possible Names

{%if Enemy_Archetype == "Decker"%}
Roll on "Silly Cyberpunk Hacker Names" 5 times (unique results only)
{%else%}
Roll on "Shadowrun Names" 5 times (unique results only)
{%end%}


AGILITY SMARTS SPIRIT STRENGTH VIGOR
d{{agi}} d{{smt}} d{{sprt}} d{{str}} d{{vig}}

  • Pace {{pce}}
  • Parry {{par}}
  • Toughness {{tgh}} + {{armor.2}} ({{armor.1}})
  • Size {{sz}}
  • Skills Assume Skills are the same as their governing Attribute

Racial Abilities

{%for item in metatype%}
{{item}}
{%end%}

Weapons & Equipment

{%if Enemy_Archetype == "Street Samurai" or Enemy_Archetype == "Adept"%}
Roll on "Melee Weapons" (render_style="horizontal")

Resolve: {Roll on "Shotguns" (render_style="horizontal")|Roll on "SMG" (render_style="horizontal")|Roll on "Rifles" (render_style="horizontal")}
{%elif Enemy_Archetype == "Decker" or Enemy_Archetype == "Rigger"%}
Roll on "SMG" (render_style="horizontal")
{%else%}
Roll on "Heavy Pistols" (render_style="horizontal")
{%end%}

Resolve: {Roll on "Explosives" (render_style="horizontal")|}

{%if Enemy_Archetype == "Decker"%}
Roll on "Cyberdecks" (cols="1-6", filter="{{Rating}}", filter_cols="7", render_style="horizontal")
{%elif Enemy_Archetype == "Rigger"%}
Roll on "Medium Drones" (render_style="horizontal")
{%end%}

Edges

{%if Wildcard == "(Wildcard)" and led > "0"%}

Leadership Edges

JOIN("
", Roll on "Edges" (cols="1,2", filter="Leadership", filter_cols="4") {$led} times (unique results only))

{%end%}

{%if metatype.1 == "Human"%}
Roll on "Edges" (cols="1,2", filter_cols="1", filter_exact="Luck")
JOIN("
", Roll on "Edges" (cols="1,2", filter="Combat", filter_cols="4") {$hed} times (unique results only))

{%else%}
JOIN("
", Roll on "Edges" (cols="1,2", filter="Combat", filter_cols="4") {$ed} times (unique results only))

{%end%}

{%if Enemy_Archetype == "Decker" or Enemy_Archetype == "Rigger" or Enemy_Archetype == "Street Samurai" or Enemy_Archetype == "Johnson"%}

Augments

JOIN("
", Roll on "Augmentations" (columns: 1,2) {$ed} times (unique results only))

{%end%}

{%if Enemy_Archetype == "Adept" or Enemy_Archetype == "Mage"%}

Powers

JOIN("
", Roll on "Powers" (columns: 1,2) {$ed} times (unique results only))

{%end%}