A few days ago, I read Novecento’s post on How To Start Making Your Own RPG Stuff. Most of the advice covers the basics on how to get started, but the idea of “What do I need to make this adventure game playable?” resonated with me. It reminded me of a post by Jay Dragon with a similar sentiment:

I stand upon the shoulders of giants. I don’t know where I’d be without the wisdom of the greater ttrpg community. Anyway, these two posts made me really consider what I need to start playtesting The Serket Hack. I settled on four things:
- Generic conflict resolution
- Four classes
- Fighter
- Black Mage
- Scoundrel
- Bartender
- Combat rules
- Enemies to fight
Through my blog posts, I’ve been exploring a lot of these pillars — mostly through a case study on the Fighter, which is meant to be an introductory class. Explaining the Fighter explains conflict resolution and some of the combat basics, like the idea that it’s not battlemap-based. What I haven’t talked about are the enemies.
Making An Enemy-Maker
My favorite tabletop combat experiences have been in Lancer, ICON, and NOVA; all three are my touchstones for what makes a good enemy system. I particularly dislike the way that D&D 5e, Pathfinder, and similar games handle enemies where each one is a bespoke entity designed around a specific number of players at a specific level. It makes encounter balance difficult, and it limits the stories I can tell by restricting what kinds of enemies I can throw at my players. There’s a reason that popular advice for monsters is to just use the stats of a bear.
So what do I like about the former systems? Modularity.
Each of those systems has the ability to create an enemy from the ground up by applying templates or keyword tags. This allows me to create an enemy in the fiction, and then pick the appropriate modules and mechanics to represent them mechanically. For the Serket Hack, I’ve created a 4-layer system for enemy creation: Tier, Role, Faction, and Class.
Tier
On a broad scale, the danger of an enemy can be broken down into four categories:
- Grunt: a threat to the action economy
- Standard: a threat as a team working together
- Elite: a threat supported by minions
- Boss: a threat alone with multiple phases
The purpose of a grunt enemy is twofold: they overwhelm the players if left unchecked, but they also provide a satisfying power fantasy for players carving through a horde of enemies. Standard enemies exist as mirrors to the players themselves, which leads to a lot of interesting matchups. An elite is someone that the encounter can be about, without it being a full-on boss encounter. Bosses themselves should have mechanics that break the normal rules of the game and serve as landmark tests of player ability.
Each of these tiers is defined relative to the players, and this provides the statistical foundation for an enemy. A single grunt should only require one attack to defeat, with the possibility of multiple grunts being defeated at once with better attacks. The other tiers should have health which scales based on the number of players and their damage output. Currently, the Serket Hack doesn’t really have “levels” and there isn’t an explicit increase in damage as players gain new abilities, but I anticipate increased damage as players gain system mastery and more powerful abilities than the starting ones. Accordingly, the GM has a built-in “lever” to raise the stats of these tiers until it’s at an appropriate balance.
Role
How should this enemy behave? What is their strategy during a fight? These questions are defined by an enemy’s role:
- Heavy: exists to soak damage
- Rook: can take some damage and deal it back out
- Striker: a glass cannon
- Controller: provides buffs and debuffs
Names are hard. If anyone can think of a better name than “rook” for an enemy in between “tank” and “glass cannon”, let me know in the comments.
As the second layer, an enemy’s role determines how it relates to the other enemies in the encounter. A heavy grunt is going to have different priorities from a controller grunt. The former might have an ability to take a hit for an ally, while the latter might try and apply a vulnerability debuff to a player. That said, the role of an enemy should have minimal impact on the final mechanics — otherwise all enemies of a specific role would have a lot of overlap. At most, the enemy should only have one ability gained from the role.

Tarakava from Bionicle: Elite Rook Wildlife Pugilists
Faction
This is where the flavor starts to come in. Enemies become more memorable purely because players learn the unique mechanics of their faction like its own meta combat puzzle. The very simplest example is a faction of Ice Fae who are naturally weak to fire and use cold magic. Players are rewarded for finding a way to deal fire damage and protect against the cold. A more complicated faction might theme itself around followup attacks, and the players have to memorize the triggers for each unit to determine which order to defeat the enemies.
There are many factions I’d like to put in the Serket Hack, but for initial playtesting purposes, there are three that I want to build out:
- Imperial
- Marauder
- Wildlife
I can easily see these factions getting more specific over time through sub-factions with unique mechanics and variants, but this will help broadly refine our enemies with more behavior and strategy for now. An imperial heavy grunt (shocktrooper) is going to have different abilities and tactics than a wildlife heavy grunt (direwolf).
Class
Sentinel, Brawler, Thug.
Pugilist, Archer, Raider.
Assassin, Pyromancer, Sniper.
Commander, Sapper, Priest.
After three layers of categories, we’re finally ready to talk about what the enemy is at its core. If everything above is generic, these have specific, unique mechanics. The twelve classes above are just a handful of examples corresponding to each role. For example, the Pugilist and Archer are both Rooks, but the Assassin and Sniper are both Strikers. As previously mentioned, the role is primarily organizational with a minimal amount of mechanical overlap between classes within the same role.
The Pugilist is a defensive fighter focused on stances that you need to attack into correctly lest you get hit with a counterattack. The Raider is more aggressive with an axe attack that can cleave the party and the ability to make hit-and-run attacks. Both of these are Rooks, which means they have moderate health and deal non-trivial damage. Their Rook ability might be something like a second wind to restore health, or it might be a small damage increase if one or more Rooks are on the field.

Imperial soldiers in Final Fantasy XIV
Full Assembly
To create an enemy, you start by selecting each TRFC (“traffic”) component: i.e. an Elite Striker – Imperial Pyromancer. From there, you assign base stats according to the Tier. An Elite is going to have a strong foundation to establish themselves as the primary threat for an encounter. The Striker role is used to signal to players that the unit is vulnerable but deadly. While I haven’t built the Imperial faction yet, I imagine it’s going to have mechanics that involve sacrificing grunts and the use of soul cassette technology. As a Striker-type, the Pyromancer class modifies the base stats from the Tier so that it has lower defenses or a convenient weakpoint. The class also provides the abilities the unit will be using during the encounter, along with any special mechanics. In total, an enemy should have 2-3 abilities selected from the pool of role, class, and faction abilities.
I think a big problem with bespoke monster manuals is the way it limits creativity, forcing you to reskin something if you have an original idea. I like being able to envision a fight and then put it together from the tools the system provides. Creating a system like this also allows people to build and expand upon it by creating new factions and classes.
What are some of your favorite enemy systems? Do you have any ideas for improving this one? Let me know what you think.