Monsters

To generate a standard monster, pick a monster race and a monster class.

library(sfrpg)

Note - Recharging attacks: - Some monsters have attacks with (recharge n+). These attacks are spent on use, and cannot be used again until recharged. - At the end of a monster's turn, roll 1d6 for each spent recharge attack that wasn't used this turn. If the roll is equal or higher to the recharge value, the attack is recharged. - PCs are aware when a monster they can see succeeds at recharging. They don't know details about the recharged power, but they can find out with a Skill Check (see Skills chapter). - Some recharge attacks are labeled as Exhausted: monsters start combat with these powers spent.

Standard Monsters

Monster Races - Heroic, Humanoid

df_monster_race <- read_csv_monster("monster_races") %>%
  dplyr::filter(Level %>% as.numeric()<11, category=='Standard',subcategory=='Humanoid')
htm_monster_race <- get_htm_monster_race(df_monster_race)  %>% 
    get_monster_list_htm()
htm_monster_race %>% cat()

Monster Races - Heroic, Undead

df_monster_race <- read_csv_monster("monster_races") %>%
  dplyr::filter(Level %>% as.numeric()<11, category=='Standard',subcategory=='Undead')
htm_monster_race <- get_htm_monster_race(df_monster_race)  %>%
    get_monster_list_htm()
htm_monster_race %>% cat()

Monster Races - Heroic, Beast

df_monster_race <- read_csv_monster("monster_races") %>%
  dplyr::filter(Level %>% as.numeric()<11, category=='Standard',subcategory=='Beast')
htm_monster_race <- get_htm_monster_race(df_monster_race)  %>%
    get_monster_list_htm()
htm_monster_race %>% cat()

Monster Races - Heroic, Other

df_monster_race <- read_csv_monster("monster_races") %>%
  dplyr::filter(Level %>% as.numeric()<11, category=='Standard', subcategory %in% c('Aberration', 'Plant', 'Ooze'))
htm_monster_race <- get_htm_monster_race(df_monster_race)  %>%
    get_monster_list_htm()
htm_monster_race %>% cat()

Monster Classes - Mundane

df_monster_class <- read_csv_monster("monster_classes") %>%
  dplyr::filter(category=='Standard', subcategory=='Mundane')
htm_monster_class <- get_htm_monster_class(df_monster_class)  %>%
   get_monster_list_htm( )
htm_monster_class %>% cat()

Monster Classes - Humanoid

df_monster_class <- read_csv_monster("monster_classes") %>%
  dplyr::filter(category=='Standard', subcategory=='Humanoid')
htm_monster_class <- get_htm_monster_class(df_monster_class)  %>%
   get_monster_list_htm( )
htm_monster_class %>% cat()

Monster Classes - Elemental

df_monster_class <- read_csv_monster("monster_classes") %>%
  dplyr::filter(category=='Standard', subcategory=='Elemental')
htm_monster_class <- get_htm_monster_class(df_monster_class)  %>%
   get_monster_list_htm( )
htm_monster_class %>% cat()

Minion Monsters

Unlike most characters, minions do not have a HP value - do not keep track of damage done to minions. Instead, use the following:

In addition, most minions have Partial Vulnerability (Melee or Ranged), included in their stats.

Minion Races, Heroic Humanoid

df_monster_race <- read_csv_monster("monster_races") %>%
  dplyr::filter(Level %>% as.numeric()<11, category=='Minion', subcategory=='Humanoid')
htm_monster_race <- get_htm_monster_race(df_monster_race)  %>% 
    get_monster_list_htm()
htm_monster_race %>% cat()

Minion Races, Heroic Undead

df_monster_race <- read_csv_monster("monster_races") %>%
  dplyr::filter(Level %>% as.numeric()<11, category=='Minion', subcategory=='Undead')
htm_monster_race <- get_htm_monster_race(df_monster_race)  %>%
    get_monster_list_htm()
htm_monster_race %>% cat()

Minion Races, Heroic Beast

df_monster_race <- read_csv_monster("monster_races") %>%
  dplyr::filter(Level %>% as.numeric()<11, category=='Minion', subcategory=='Beast')
htm_monster_race <- get_htm_monster_race(df_monster_race)  %>%
    get_monster_list_htm()
htm_monster_race %>% cat()

Minion Races, Heroic Other

df_monster_race <- read_csv_monster("monster_races") %>%
  dplyr::filter(Level %>% as.numeric()<11, category=='Minion', subcategory %in% c('Plant', 'Ooze'))
htm_monster_race <- get_htm_monster_race(df_monster_race)  %>%
    get_monster_list_htm()
htm_monster_race %>% cat()

Minion Classes

df_monster_class <- read_csv_monster("monster_classes") %>%
  dplyr::filter(category=='Minion', subcategory=='Mundane')
htm_monster_class <- get_htm_monster_class(df_monster_class)  %>%
   get_monster_list_htm( ) 
htm_monster_class %>% cat()

Elite Monsters

All Elite Monsters gain the following rules:

Elite Monster Templates:

Apply to Standard monsters to convert them to Elite

Basic Elite Monster: - Double XP value - Double HP - Trait: Elite Attack: Melee and Ranged attacks can target 1 additional enemy in range. Area and Close attacks have Burst size increased by 1. Damaging attacks that target a single enemy deal +D/2 damage.

Elite Monster Races

Monsters with the following classes gain the Elite monster special rules, double XP and double HP (already included in stats).

df_monster_race <- read_csv_monster("monster_races") %>%
  dplyr::filter(Level %>% as.numeric()<11, category=='Elite')
htm_monster_race <- get_htm_monster_race(df_monster_race)  %>%
    get_monster_list_htm()
htm_monster_race %>% cat()

Elite Monster Classes

Monsters with the following classes gain the Elite monster special rules, double XP and double HP.

df_monster_class <- read_csv_monster("monster_classes") %>%
  dplyr::filter(category=='Elite')
htm_monster_class <- get_htm_monster_class(df_monster_class)  %>%
   get_monster_list_htm( )
htm_monster_class %>% cat()

Solo Monsters

All Solo Monsters gain the following rules:

Solo - Dragon - Monster Races

df_monster_race <- read_csv_monster("monster_races") %>%
  dplyr::filter(category=='Solo', subcategory=='Dragon')
htm_monster_race <- get_htm_monster_race(df_monster_race)  %>%
    get_monster_list_htm()
htm_monster_race %>% cat()

Solo - Dragon Monster Classes

df_monster_class <- read_csv_monster("monster_classes") %>%
  dplyr::filter(category=='Solo', subcategory=='Dragon')
htm_monster_class <- get_htm_monster_class(df_monster_class)  %>%
   get_monster_list_htm( )
htm_monster_class %>% cat()

Solo - Eye - Monster Races

df_monster_race <- read_csv_monster("monster_races") %>%
  dplyr::filter(category=='Solo', subcategory=='Eye')
htm_monster_race <- get_htm_monster_race(df_monster_race)  %>%
    get_monster_list_htm()
htm_monster_race %>% cat()

Solo - Eye Monster Classes

df_monster_class <- read_csv_monster("monster_classes") %>%
  dplyr::filter(category=='Solo', subcategory=='Eye')
htm_monster_class <- get_htm_monster_class(df_monster_class)  %>%
   get_monster_list_htm( )
htm_monster_class %>% cat()

Other Templates

Fat: - +50% XP value - Double HP

Veteran: - +25% XP value - +6/12/24 HP, depending on tier - +2/4/8 D, depending on tier - +1H, +1Def

Base Stats

In this section, we show monster templates with basic stats that can be used as reference when designing custom monsters.

Race - Heroic

df_monster_race <- read_csv_monster("monster_races") %>%
  dplyr::filter(Level %>% as.numeric()<11, category=='Standard', subcategory=='Example')
htm_monster_race <- get_htm_monster_race(df_monster_race)  %>% 
    get_monster_list_htm()
htm_monster_race %>% cat()

Race - Paragon

df_monster_race <- read_csv_monster("monster_races") %>%
  dplyr::filter(Level %>% as.numeric()>=11, Level %>% as.numeric()<21, category=='Standard', subcategory=='Example')
htm_monster_race <- get_htm_monster_race(df_monster_race)  %>%
    get_monster_list_htm()
htm_monster_race %>% cat()

Race - Epic

df_monster_race <- read_csv_monster("monster_races") %>%
  dplyr::filter(Level %>% as.numeric()>=21, category=='Standard', subcategory=='Example')
htm_monster_race <- get_htm_monster_race(df_monster_race)  %>%
    get_monster_list_htm()
htm_monster_race %>% cat()

Class

df_monster_class <- read_csv_monster("monster_classes") %>%
  dplyr::filter(category=='Standard', subcategory=='Example')
htm_monster_class <- get_htm_monster_class(df_monster_class)  %>%
   get_monster_list_htm( ) 
htm_monster_class %>% cat()

Minion Race - Heroic

df_monster_race <- read_csv_monster("monster_races") %>%
  dplyr::filter(Level %>% as.numeric()<11, category=='Minion', subcategory=='Example')
htm_monster_race <- get_htm_monster_race(df_monster_race)  %>%
    get_monster_list_htm()
htm_monster_race %>% cat()

Minion Class

df_monster_class <- read_csv_monster("monster_classes") %>%
  dplyr::filter(category=='Minion', subcategory=='Example')
htm_monster_class <- get_htm_monster_class(df_monster_class)  %>%
   get_monster_list_htm( )
htm_monster_class %>% cat()

Solo Race - Heroic

df_monster_race <- read_csv_monster("monster_races") %>%
  dplyr::filter(Level %>% as.numeric()<11, category=='Solo', subcategory=='Example')
htm_monster_race <- get_htm_monster_race(df_monster_race)  %>%
    get_monster_list_htm()
htm_monster_race %>% cat()

Solo Race - Paragon

df_monster_race <- read_csv_monster("monster_races") %>%
  dplyr::filter(Level %>% as.numeric()>=11, Level %>% as.numeric()<21, category=='Solo', subcategory=='Example')
htm_monster_race <- get_htm_monster_race(df_monster_race)  %>%
    get_monster_list_htm()
htm_monster_race %>% cat()

Solo Race - Epic

df_monster_race <- read_csv_monster("monster_races") %>%
  dplyr::filter(Level %>% as.numeric()>=21, category=='Solo', subcategory=='Example')
htm_monster_race <- get_htm_monster_race(df_monster_race)  %>%
    get_monster_list_htm()
htm_monster_race %>% cat()


capelastegui/sfrpg documentation built on June 13, 2022, 1:38 a.m.