“#1 Sap Master”

This Pathfinder character is based on the Sap Master feat that doubles sneak attack damage when attacking a flat-footed opponent with non-lethal bludgeoning damage. That’s a lot of conditions

  • sneak attack
  • flat footed
  • non-lethal
  • bludgeoning

I need sneak attack and a way to make opponents flat-footed.  Rogues have sneak attack, and there’s a Flowing Monk archetype whose AOOs make opponents flat-footed.  I’ll multi-class.

  • sneak attack ✅
  • flat footed ✅

Unarmed strikes (Monk’s specialty) are bludgeoning and can be non-lethal, so that’s a great fit.

  • non-lethal ✅
  • bludgeoning ✅
  • AOO

Rogues and Monks both have reason to maximize Dexterity, so I planned to get Weapon Finesse so my accuracy is based on Dex, not Str.  But I need AOOs to make my combo work, and reach weapons threaten more areas, so enemies provoke more AOOs.  No reach weapon is finessable (except whips, which require a huge investment to work).

I decided to drop Weapon Finesse and maximize Str over Dex.  I wanted the reach weapon to also deal non-lethal bludgeoning damage (like my close-range unarmed strikes). The Bludgeoner feat allows me to deal non-lethal damage with any bludgeoning weapon, but Monks and Rogues are not proficient with any bludgeoning reach weapons. Half-Elves have an alternate racial trait called Ancestral Arms that awards proficiency with one martial or exotic weapon, so I picked the Lucerne Hammer and was ready to actually build the character!

  • sneak attack ✅
  • flat footed ✅
  • non-lethal ✅
  • bludgeoning ✅
  • AOO ✅
  • Flowing Monk 2 ✅
  • Rogue 5 ✅
  • Half-Elf ✅
  • STR, not DEX ✅

As I started selecting ability scores and looking up class features, I remembered that Rogues are bad.  3/4 BAB, d8 HD, and light armor makes melee combat dangerous, but I planned to be in melee all the time.  There’s an Alchemist archetype called Vivisectionist that gets Sneak Attack just like a Rogue.  If I was going to have the weak BAB, HD, and armor, I might as well get spellcasting to go with it.  So Rogue was out, and Vivisectionist was in.

The Vestigial Arm discovery let me hold a shield and a two-handed weapon at once, boosting my low AC, but I didn’t have shield proficiency.  Building the shield from Darkwood reduced the penalty for wielding the shield to zero, which is just as good as proficiency.  Similarly, a mithral breastplate that I was not proficient in inflicted a penalty of zero.  So my alchemist/monk used a weapon, shield, and armor that alchemists and monks are not proficient in.

Alchemist Mutagen boosted my Str, and the Feral Mutagen discovery gave me three natural attacks.  Those three attacks with regular, lethal sneak attack dealt far more damage than the single non-lethal weapon attack with double sneak attack.  Should I drop Sap Master, the whole reason for this build?

Non-lethal Vivisectionist

  • Vivisectionist Alchemist
  • Feral Mutagen
  • 3 natural attacks with sneak attack
  • non-lethally maul people into submission

But wait! Feral Mutagen does not specify the damage type of the bite and claw attacks, so I must fall back to the defaults.  The bestiary has a table of natural attacks and their damage types.  Both Bite and Claw deal bludgeoning damage (as well as other damage types) which means the Bludgeoner feat affects them and I get double sneak attack damage on all three attacks! Now my character had two modes:

Normal form

  • 2 hands on Lucerne Hammer
  • 1 hand on shield
  • 1 free hand for potions, etc.
  • Get AOOs with Lucerne  Hammer to make opponents flat-footed
  • Continue to hit at reach with Lucerne Hammer, or use unarmed strike up close

Mutagen form

  • 1 hand to hold Lucerne Hammer (can’t use it)
  • 1 hand on shield
  • 2 hands make Claw attacks
  • Bite attack too
  • 3 natural attacks do a lot of damage, even without the Sap Master bonus.
  • At the end of my turn, I put a second hand on the Lucerne Hammer so I can make AOOs with it.

I was almost done with the character when I re-read the Unbalancing Counter text one more time, and realized that the entire build didn’t work. Hitting with an AOO wasn’t enough to make the opponenet flat-footed. The opponent also got to make a save. The save was based on Monk level and would be DC 11 forever, low enough to be irrelevant.  I had no way to make opponents flat-footed.  I’d never get to use Sap Master.

Since I had no use for the Monk levels, and was non-proficient with my weapon, armor, and shield, I switched to Fighter 1/Alchemist 6.  I didn’t need the Half-Elf ability to get proficiency with my weapon, so I switched to human for the extra feat.  Now I could wear heavy armor and a shield and get into flanking to trigger sneak attacks.  I swapped the Lucerne Hammer and Mithral Breastplate for an Earthbreaker and Full Plate.

Invisible Tank

  • use Stealth skill and Invisibility spells to open combat with Sap Master attacks on opponents who haven’t acted yet.
  • another melee character in my party moves around to flank with me, since I’m slow.
  • 3 natural attacks with sneak attack still do a lot of non-lethal damage.

Armor Check Penalties make sneaking in Plate armor difficult, and I’m not sure Pathfinder allows me to sneak up behind someone using the Stealth skill. Charge during the surprise round? Fortunately, I remembered another feat that allows me to make opponents flat-footed.

Catch Off-Guard lets me attack with improvised weapons without penalty, which is fun to roleplay.  It also says that unarmed opponents are flat-footed vs. my attacks with improvised weapons.  Clearly I’ll just have to disarm people.  Improved Disarm and a flail give me bonuses to disarming opponents, and I hold an improvised weapon in the other hand to use once they are disarmed.  The weapon is a trophy, reading “#1 Sap Master”  The chance to disarm is disappointing, especially compared to Crusher’s inescapable grip, but the concept is fun to roleplay, so I’m still happy with it. Sort of.  I want more to-hit and better saves.

Catch Off-Guard Shenanigans

  • Alchemist 6/Fighter 1
  • Flail in one hand to disarm
  • Trophy in other hand to use as improvised weapon
  • Shield in third hand
  • Feral mutagen is still an option

That’s the long, winding road from nimble Monk/Rogue with a reach weapon to heavily-armored mutant who knocks people out with a trophy for knocking people out.


Number One
Male Human Fighter 1/ Alchemist (Vivisectionist, Beastmorph) 6
N Medium humanoid(human)
Init +4; Senses Perception +10

AC 24, touch 11, flat-footed 23 (+10 Armor, +1 DEX, +3 shield)
hp 56 (10 + 6d8+20)
Fort +12, Ref +9, Will +6

Speed 20 ft.
Melee MW Flail +11 1d8+5 non-lethal
or MW Flail +15 vs CMD disarm
or “#1 Sap Master” trophy +12 vs flat footed AC, 1d6 + 5 non-lethal
Ranged MW composite longbow +8 1d8 (x3) non-lethal
Special Attacks (3d6+3 sneak attack, double if flat-footed)
Alchemist Formulae prepared:
1. (DC 13) enlarge person x2, vanish x2, expeditious retreat
2. DC 14) barkskin, bull’s strength x2, invisibility

Str 20, Dex 14, Con 14, Int 15, Wis 10, Cha 8
Base Atk +5; CMB 10 (+5 disarm); CMD 21
Feats Bludgeoner, Brew Potion, Combat Reflexes, Improved Initiative, Iron Will, Sap Adept, Sap Master, Throw Anything
Skills perception +10, craft(alchemy) +11, spellcraft +11, acrobatics +3, knowledge nature +11, knowledge arcana +11, climb +2, swim +2 (ACP = -6)
Languages Common, +2 more
SQ Beastmorph Mutagen, Improved Beastmorph Mutagen, Mutagen, poison use, Feral Mutagen, Wings, Vestigial Arm
Traits: Surprise Weapon, Reactive
Gear: +1 Full Plate, +1 Heavy Wooden Shield, Cloak of Resistance +2, , Belt of STR +2, Headband of INT+2, +1 Amulet of Mighty Fists, MW Flail, MW Composite Longbow, 20x arrows, 20x blunt arrows, alchemist’s kit, “#1 Sap Master” trophy

Improved Feral Beastmorph Mutagen: 60min duration. +4 STR, -2 INT, 2 1d6 claws, 1 1d8 bite, 2 of the following abilities (climb 30 feet, fly 30 feet (average maneuverability), swim 30 feet, darkvision 60 feet, low-light vision, and scent.)

What do I do with my hands?
3 arms: shield, flail, “#1 Sap Master” trophy
3 arms with mutagen: 1 for shield, 2 for claws.

Attack with mutagen: bite +13 1d8+7, 2 claws +13 1d6+7 non-lethal

Crusher, the emotionless Barbarian

Pathfinder’s Android race has two features that are very interesting to Barbarians.

  1. Immune to morale bonuses.  The stat buffs from rage are morale bonuses.
  2. Immune to fatigue.  Ending Rage makes Barbarians fatigued, and they can’t enter rage again until the fatigue wears off.

Combining these two makes an interesting Barbarian who does not get stat bonuses, but can use powerful “once per rage” abilities every round, by beginning and ending rage every round.

At first I pursued the robot theme by selecting the Savage Technologist archetype, which has the appealing pistol + sword fighting style. Using a pistol in melee without provoking AOOs sounds great, but reloading still provokes, and reloading requires a free hand, which Crusher doesn’t have because he’s holding a sword.   It was too much trouble.

Strength Surge adds barbarian level to one CMB check, so I looked for a combat maneuver to specialize in.  The Brutal Pugilist archetype and Animal Fury rage power reward grappling, so I built a grappler. I chose level 7 because that’s when Greater Grapple becomes available, which lets me make two grapple checks per round.  Since Androids get a bonus to Dexterity, Crusher uses Dexterity instead of Strength for all his rolls.  (Maybe the three feats aren’t worth the slightly higher numbers, but I’m tired of doing math.)

The average CMD for a CR 7 enemy is 26, so Crusher succeeds on a 2.  Each time he maintains a grapple, he bites, and he can choose to deal damage when he maintains a grapple, so he can bite up to four times in one round. He can also reliably tie up foes with an escape DC in the 40s.

His defenses are fine.  23 AC will stop 60% of attacks.  Alas, the -2 AC penalty from rage is not  a morale penalty, so it still applies.  He’s immune to a number of status effects and has bonuses against others, including mind-effecting, the worst kind of save for a melee monster to fail.

Male Android Barbarian (Brutal Pugilist) 7
N Medium humanoid, construct
Init +6; Senses darkvision 60 ft.; Perception +13

AC 23, touch 14, flat-footed 18 (+7 Armor, +5 DEX, +2 shield, +1 deflect -2 rage)
hp 76 (7d12+28)
Fort +10, Ref +10, Will +5 (+4 vs. Mind-effecting, paralysis, poison, stun)
Defensive Abilities DR 1/–, Immune disease, sleep, fear, emotion, fatigue, exhaustion
Speed 40 ft.
Melee unarmed strike +14/+9 1d4+6 (19-20/x2), bite +8 1d4+3
Ranged MW composite longbow +14/+9 1d8 (x3)
Special Attacks rage (19 rounds/day), rage powers (animal fury, strength surge +7, brawler)

Str 10, Dex 22, Con 16, Int 9, Wis 12, Cha 6
Base Atk +7; CMB 13 (+5 grapple); CMD 24 (+3 vs. grapple)
Feats Agile Maneuvers, Improved Grapple, Greater Grapple, Weapon Finesse
Skills 11 skill points Perception +13, Acrobatics +12
Languages Common
SQ fast movement, Pit Fighter (+1 grapple CMB, +1 grapple CMD), Improved Savage Grapple
Gear: +1 Mithral Breastplate, +1 Buckler, Cloak of Resistance +2, Ring of Protection +1, Belt of DEX +2, Agile Amulet of Mighty Fists, MW cold iron Cestus, MW alchemical silver Cestus, MW Composite Longbow, 4x50ft silk rope, 2x potion of Fly, 40x arrows, 20x blunt arrows, barbarian’s kit

  • Immune to fatigue, so cycle Rage every round to use Strength Surge on grapple every round
  • Greater Grapple allows maintaining a grapple as a move action, so 2 grapple checks per round.
  • Animal Fury: free bite attack when maintaining a grapple

Initial grapple: +25 vs CMB (7BAB + 6DEX +7 Strength Surge +2 Imp. Grapple +2 Greater Grapple +1 Pit Fighter)

Animal Fury: bite +13 1d4+6
Maintain grapple: +25 or +23 vs CMB (7BAB + 6DEX +5 Maintain +2 Imp. Grapple +2 Greater Grapple +1 Pit Fighter) +2 Animal Fury?
Pin or damage (1d4+6)

Felipe Pepe’s list of influential CRPGs

Felipe Pepe, CRPG historian, wrote an article listing 35 CRPGs one should play to get a general outline of the history of the genre.  In the article, the list is displayed as an image, which is good for sharing on Twitter and the like.  Here’s a version with links to buy or play them.

Title Year Price Platform
dnd 1975 free web
Rogue 1980 free browser
Wizardry I: Proving Grounds of the Mad Overlord 1981 free browser
Ultima IV: Quest of the Avatar 1985 free Win, Mac
Dragon Quest 1986 $2.99 Smartphone port
Starflight 1986 $5.99 Win, Mac
Dungeon Master 1987 Atari ST
Pool of Radiance 1988
Wasteland 1988 $5.99 Win, Mac, Linux
Quest for Glory: So You Want to Be a Hero? 1989 $9.99 Win
Darklands 1992 $5.99 Win, Mac, Linux
Ultima Underworld: The Stygian Abyss 1992 $5.99 Win, Mac
Ultima VII: The Black Gate 1992 $5.99 Win, Mac
Mordor: The Depths of Dejenol 1995 free Win
The Elder Scrolls II: Daggerfall 1996 free Win
Diablo 1996
Final Fantasy VII 1997 $11.99 Win
Fallout 1997 $9.99 Win
Baldur’s Gate 1998 $19.99 Win, Mac, Linux
Might and Magic VI: The Mandate of Heaven 1998 $9.99 Win
Planescape: Torment 1999 $9.99 Win, Mac, Linux
System Shock 2 1999 $9.99 Win, Mac
Deus Ex 2000 $9.99 Win
Gothic 2000 $9.99 Win
The Elder Scrolls III: Morrowind 2001 $14.99 Win
Neverwinter Nights 2002 $9.99 Win
Star Wars: Knights of the Old Republic 2003 $9.99 Win
Fable 2004 $9.99 Win
Mass Effect 2007 $19.99 Win
Fallout 3 2008 $9.99 Win
Dragon Age: Origins 2009 $19.99 Win
The Elder Scrolls V: Skyrim 2011 $19.99 Win
Dark Souls 2011 $19.99 Win
Divinity: Original Sin 2014 $39.99 Win
The Witcher 3: Wild Hunt 2015 $39.99 Win

A simple game

Most of my game ideas are too ambitious to start.  I want to make games with procedural footprint generation, 3D traversal with encumbrance and different terrain types, or tons of dialog and subtle human reactions.  This means most of my games don’t progress past text files,

While watching AGDQ 2017, I realized that people love simple games, like the ones that fit on an NES.  The graphics are simple, there are only a few stages, enemies, and powerups, but that’s enough.

So I’m going to make an NES-style game, with one twist.  The main interaction is moving antagonists around, not destroying them.  The player fends off fans who rush a celebrity’s limousine with oil slicks, velvet ropes, and other cartoony tools.

I looked around for a game engine to use and settled on Godot.  In YouTube tutorials, some people pronounce it “Guh-doh” like the play, and others say “Go Dot”. The official site’s FAQ does not address the pronunciation.

Now that I have a game engine and can start writing code RIGHT NOW, I realize how many decisions need to be made before I start.  I don’t want fans getting to the limo, but how exactly does that work?  Do fans stop the limo, and the player fails if the limo is late?  Does the celebrity inside the limo have an annoyance gauge that increases as fans touch the limo?  If the fans have limited acceleration and turning speed, I can make more interesting traps that spin them around or slow them down.  Can I knock people down?  Are they injured by jumping in front of the limo?  Boss fights are traditional, but what is a ‘boss’ in this context?  A really big fan?  Do the different tools act like different weapons in Mega-Man, Contra, or Metal Slug?  I’m sure the answers will change as I go, but here is my first attempt.

Main game loop:

Top-down, real-time, 2D game.

A limo moves through a city on a pre-determined path.  It stops whenever a fan touches it.  The level ends in success when the limo reaches the end of its path.

When the limo stops, the celebrity’s annoyance increases.  The level ends in failure when the annoyance gauge is full.

The player controls a bouncer who moves independently of the limo on foot.  The bouncer can’t move out of sight of the limo.

Fans scattered around the level will try to get to the limo.  Fans activate when the limo moves inside a certain radius.  Fans give up and go home when pushed a certain distance away from the limo.

Possible types of fans:

  • Normal fan: default speed
  • Big fan: can break through velvet ropes
  • Quick fan: a bit faster
  • Screaming fan: can stop and scream, which summons more fans
  • Paparazzi: can upset the celebrity from range

Possible tools:

  • Bouncer’s glare: freeze a fan on the spot for a short time
  • Velvet rope: blocks a path.  Force fans to go around
  • Autograph:  Throw autographed merch.  All fans near the merch’s path will chase it.
  • Spring trap.  When triggered, push back everything in its path
  • ice or oil:  slows fans moving through the area

Possible levels

  • An actor goes to a shooting location
  • A singer goes to a concert
  • A celebrity goes to an award show
  • A politician goes to give a speech.

Gallery Aggregator roadmap

When I return from a convention, I scour the internet for photos from the event.  Many convention-goers do the same, as evidenced by the many “looking for photos” threads on forums and social networks.  I’m building a searchable list of galleries from many different events  that is more permanent and easier to search than those “looking for photos” threads.

Here’s the current version

I’d rather have other people do my work for me, so I built a public page where people can submit galleries.

Check it out, and please add a gallery or two.

People would rather have a machine do their work for them while they are doing my work for me, so when someone submits a link to  a Flickr album, the website uses the Flickr API to pull in the rest of the data.

The main functions of the site (submitting, moderating, and displaying) are all working and stable, so now I can think about improvements.

  • Integrate with other sites’ APIs

Flickr is not the only image host with an API.  I should integrate with SmugMug, Imgur, and Facebook.  Automating data entry makes it easier for users to submit galleries, and makes the data submitted by users more reliable.  It’s good for both of us.

  • Make the site prettier

The styling on the site could charitably be described as “basic” because I  focused on functionality.  User experience is important, so I should make the site smooth and pretty.

  • Label NSFW content, and galleries that require logging in

If a user can’t view a gallery, a link to that gallery is a waste of time.  Some image hosts, like Facebook and Flickr, may require users to log in before they can see the gallery, so I need to warn users before they click.  Users hsould also be informed before clicking on links to NSFW photos.

  • Allow users to report dead/bad links

Sometimes links go dead, or domain names expire and are taken over by squatters.  Anyone who finds a dead link should be able to report it, so I can remove it.  This saves me the effort of periodically checks all the links, and lets users help make the site a better place.

  • Rating system

Someone who doesn’t have time to look through 100 galleries from a certain event may want some way to decide which few to look at, and user ratings are one way to provide that.  I think that “popular” and “good” often diverge, so I’m unconvinced that directing people to popular galleries is a good idea.  I could curate my personal favorites, but since what I like and what the masses like are different, that feature may not be useful to the users.

  • Add more content

I have added hundreds of galleries already, but I’ve been collecting galleries for a long time, so I have many more to add.  The more content is on the site, the more useful to visit, which means more people who like it and may contribute.  It snowballs.

  • Get other people to use the site

All this information is only useful when people know about it and use it.  After each event,  I’ll post in the various “looking for photos” threads encouraging people to use the site.