Welcome! 🙂

This is both a wiki (a website editable by all) and a blog (an online diary about the stuff Alex Schroeder reads and does). If you’re a friend or relative, you might be interested in reading Life instead of this page. If you’ve come here from an RPG blog, you might want to head over to RPG. There are other similar categories to be found on the SiteMap.

Für Rollenspieler gibt es ebenfalls eine eigene RSP Kategorie.

2020-05-20 Hex Describe to roll up random encounters

Today, @acodispo sent me a link to a blog post he wrote: Random Encounters with Hex Describe. He uses the basic features of Hex Describe without a map – just random tables! – to generate encounters for his game. I like the idea.

Actually, I’ve wondered about a similar thing: should the regular Hex Describe mini settings come with a bunch of random encounter tables? Or just 20 random encounters for each biome which you simply cross off as you use them? I think I’d like that...


Add Comment

2020-05-19 Gridmapper use

I’ve been happily surprised by seeing Gridmapper used on the Ruins of the Undercity blog where the Idle Doodler talks about solo play – something I have never tried. OK, maybe I tried the AD&D 1st ed. random dungeon generator back in the eighties, once.

Anyway: it looks pretty cool!

From Ruins of the Undercity – Solo Playthrough:

a wide map with maybe five rooms

From Putting Together a Solo Dungeon Crawl Generator:

a big square dungeon with maybe 20 or 30 rooms

Gridmapper hasn’t seen a lot of development in recent years, but if you like a web app that’s best used without a mouse to create dungeon maps, maybe could give it a try. My recommendation is to visit the page and click on the Demo link at the bottom.


Comments on 2020-05-19 Gridmapper use

Huh, I hadn’t even clocked that there was a demo!

Great that it’s simple enough for a tech Luddite like myself to get by on.

Idle Doodler 2020-05-19 20:14 UTC

Oh my! I need somebody to think about the user-interface, haha. 😀

– Alex Schroeder 2020-05-19 20:52 UTC

Add Comment

2020-05-16 Witches

Very slowly I’ve been adding old monster posts from Google+ to this site... Recently I’ve been thinking about witches. In the Just Halberds campaign I’m running I use a 300 hex mini-setting generated by Hex Describe. On a whim I decided to count how many witches it placed in the area. Ten witches! And I recently added one due to a random encounter, so now there’s 11 witches in the setting.

What’s their story?

Time to daydream about witches.

Witches can cast spells. But which ones?

They are probably impossibly old, maybe immortal. They probably look shrivelled and old and yet their powers of illusion are such that they are always covered in a glamour that makes them look beautiful and young if they feel this is to their advantage.

I like the image of the three witches at the beginning of Macbeth. For some background, see The Relationship Between Macbeth and the Witches.

I love the short flicker of Thranduil’s face in The Hobbit movie where for a moment the glamour breaks down and we see that his spotless face is in fact scarred by a thousand years of battles.

I hate all the Malleus Maleficarum cruelties. So I don’t want the exploitation of women, the false accusations, the torture, the burning at the stake. Ugh! Not at my table. I hate this stuff.

I like the sexual aspects. In my games, the witches usually live in swamps and charm males of all sorts in order to get pregnant and they use language such as “stealing your child” as if the children the give birth to would have rightfully belonged elsewhere. It touches upon faith and promiscuity and fatherhood, and I like that.

Recently that happened to a friend’s player character. The kids roared with laughter and all mentions of witches, swamps, children, etc were full of innuendo. It was fun. But later, we also had a talk about certain uses of the charm spell being worse than knockout pills. They agreed and it’s decided now: charming people to force them to do stuff is evil.

I also like the Hänsel und Gretel aspect of a witch entrapping travellers and runaways, possibly enslaving or killing them. That is a terrible thing, to prey on the helpless, to be beset by a magic wielding monster when you’re most desperately in need of help.

So witches can be sexy, but also creepy and cruel, can be kind, but also evil.

And what about the children? I’m thinking about the matriarchal Asari species in Mass Effect: they have relationships with men of all species but don’t really need them. All their children are women. So now we can a bit of a Jedi or Sith vibe: witches may have a daughter in the house. They have a master-apprentice relationship.

What happens to the baby boys? Surely they exist. They are killed. Or abandoned. Or given into foster care. They grow up quickly, wild, troubled, violent. Life is hard. It provides opportunities to talk about foster care, adoption, wanting to know your parents, having been abandoned by your parents, all the stories modelled on children being abandoned and being raised by farmers, from Moses to Superman.

A bit like changelings, except that in this case the real child is not taken and raised in the realm of faerie.

The magic witches wield is first and foremost the charm, using their voice to make people do their bidding. As I said above, it’s a mind fuck, a terrible violation, but maybe if you’re under the influence for many days and then you manage to run away into the swamp it all turns into a nightmare, a memory that haunts you, half forgotten. Until you meet your son.

Witches also use glamour, a kind of personal illusion to make their bodies and their homes beautiful and enticing and harmless.

The rest varies: there’s flying, certainly, with or without a broom; there are fertility and harvest related curses, infertility, miscarriages, crop failures, it’s all there.

I’m guessing witches are forced to divide and conquer as they can’t face a mob. There’s no sleep and no fireball.

There’s probably also weirdness, things they found or grew or transformed or animated: animate object and polymorph. How else are we going to get walking huts on giant chicken legs and other such homes? How else are we going to turn sailors into swine?

That reminds me of Circe. I like her.

That’s my daydreaming for today. What are you daydreaming about?


Comments on 2020-05-16 Witches

I like the idea of witches being a sort of medieval conspiracy. Wide-reaching witch organizations has been a plot point in a few comics I’ve read recently (Hellboy and Head Lopper), and it reminds me of Dolmenwood, both the actual witches and the secretive (but more conventionally druidic) Drune. It fits with a lot of the typical traits of witches: covens, sisterhood and motherhood, secrecy, informal alliances and relationships, all stuff that’s interesting to talk about and use.

It does veer into the more uncomfortable witchhunter territory you mentioned wanting to avoid, but I also like the idea of many witches being “secret”. They may not have or even want any magic, or not much more than some simple tricks, but people who are a part of their formal or informal network might share information in return for help or just to be a part of something exciting. Which also fits with the idea of witches being manipulators and illusionists: why risk someone passing their charm save when you could ask your contacts for things to blackmail them with?

I think witches are an underused villain in RPGs. There’s a tendency to delineate between social situations and adventure situations: you go to a dungeon and kill monsters, then go to town and socialize with potential allies and patrons. But a powerful witch probably has her own lair and all sorts of monsters and minions, but also a lot of political control: people who’ve gone to her for curses or charms and don’t want to see her gone, other witches who’ll support or avenge her, and settlements who are unwilling to risk antagonizing her and having their harvest cursed (having the party deal with an angry mob that doesn’t want them fighting the witch would make for an entertaining adventure, if you ask me). You can’t just talk your way past her or just kill her - or at least, you have to be careful about how you handle either approach.

Malcolm 2020-05-23 22:51 UTC

Definitely. I try and treat the temples of evil gods this way: sure, they’re evil, but sometimes somebody in power needs those services. At the Orcus temple, you can get a previous relative raised from the dead. At the Set temple, you can hire those assassins you need once in a generation. At the Nergal temple, you pray for deliverance from the plague. So witches that are useful are definitely something I should add.

– Alex Schroeder 2020-05-24 09:05 UTC

Add Comment

2020-05-09 Ethics and licensing

In 2018, I wrote about ethics in programming and today stumbled on a related thing when @decentral1se mentioned the Hippocratic License:

Politics and software are so tangled that they cannot be reasonably separated. … if those novel situations involve harming other people, we can and should feel responsible. … the Hippocratic License … specifically prohibits the use of software to violate universal standards of human rights

I understand the problem of interoperability, the difficulty of enforcement, the headaches of assembly… and yet! And yet. Remember Code is Law? Software is politics and programming is about making ethical choices. Why should the license be a technocratic decision? We fought proprietary software and while we haven’t won that’s not a reason to avoid a second battle. We are humans. We can juggle many things. Our opponents do, too. We can do this.

As humans, I feel that most of us do not want to be complicit in crimes. We don’t want to be working on weapons. We don’t want to be working for organizations that do evil. If we agree that people can have these goals while working, why should programming be different?

Sometimes a tool is like a shovel and we cannot prescribe what people do with their shovels. But when we can, and when we think this is fact necessary, we do add safety measures to physical tools in order to prevent their use as weapons. And where we cannot, we regulate their use: building regulations, traffic regulations, we have added safety standards everywhere so people don’t manufacture dangerous tools and so people don’t use tools in dangerous ways. Why should complex software be different?

As a human, you have the choice not to participate in crimes (I hope!), and you have the choice to design your products such that it is harder to commit a crime, and you can make contracts that forbid recipients to use products in certain ways – its all there, for good and for evil. Why should programmers relinquish this option which is at their disposal?

Free software activists have used free software licenses to fight back against proprietary software that is hard to audit, hard to study, hard to copy, hard to modify, hard to distribute. We have used copyright and license to guarantee freedom where the powers that be would have had us relinquish that freedom and let capital have its way. And we did it!

Sure, the fight for free software is not yet over but that is not an excuse. We can fight for ethical software at the same time. We can fight for it in politics, we can speak for it on our blogs, and we can push it using our licenses.

It might not be free software as we know it, but it will still be free software. There is no golden standard of freedom. Freedom is a balancing act that needs to be renegotiated again and again. And sometimes a freedom is curtailed for another freedom to flourish. In most democracies, for example, the constitution limits the laws that can be passed such that a simple majority in parliament cannot abuse a minority. This limitation is for the greater good: the consideration of legal interests is an ongoing process.

Here is what I’m talking about:

The freedom to run the program as you wish, for any purpose (freedom 0). – Richard Stallman, The Free Software Definition

I consider the freedom to run the program as you wish to be an important freedom, but it is not an absolute freedom. It can and it must be weighed against other legal interests, other freedoms and other rights – rights like the ones listed in the Universal Declaration of Human Rights.

As I said at the top, more licenses is always a problem, specially if these are more licenses trying to achieve the same thing in incompatible ways, like free software. But there will always be new goals, and therefore there will always be a need for new licenses. We are not going to spend the next millennium without new licenses, for sure. Might as well make it a license that puts Human Rights first.


Comments on 2020-05-09 Ethics and licensing

See also, A Six-Month Retrospective on Ethical Open Source by Coraline Ada Ehmke. Also, her other publications listed on Model View Culture.

– Alex Schroeder 2020-05-09 13:04 UTC

And interesting note by @sir, Thoughts on the subject of ethical licenses. He argues three points:

“Anyone who is prepared to violate human rights is going to have no problem ignoring your software license, too.” This is true. But I believe that it does send a message. Not all laws are necessary or enforced. We recently added sexual orientation to a list of things one may not discriminate against in Switzerland even though some people argued that it was already implicitly illegal due to some other law. Not sure whether the law was therefore unnecessary. I voted in favor of that change.

Sometimes interpretations vary by country. Many people in the US don’t consider water boarding to be torture, for example. And yet, this is having an effect outside of the US. We don’t like to send people wanted in the US to the US for fear of cruel and unusual punishment. Abroad, the US is now viewed as a country that may torture prisoners. So, even if human rights are ignored somewhere, highlighting this fact is going to have an effect. If ICE is violating human rights in the US a developer using a software is now both complicit in what is considered a crime abroad, and in violation of a license. I don’t think people will ignore this.

“It’s difficult to comply with” is a good argument. But that hasn’t stopped other laws from going into effect: enforcing GDPR is hard. Enforcing copyright and DRM is hard. Enforcing ethics is also hard. Perhaps it’s a good thing that we’re outgrowing the simple problems. Time to tackle the hard ones.

“It’s not open source.” I think already discussed this in the blog post. It’s true. Ethical software puts limits on freedom zero, the freedom to use the software for anything. There are limits.

– Alex Schroeder 2020-05-09 13:30 UTC

Add Comment

2020-05-08 Replacing Keybase

OK, so Keybase was bought by Zoom and I deleted my Keybase identity. @wiktor@metacode.biz said he had a decentralized alternative.

You can find a simple description here: OpenPGP Proofs.

Here’s how I understand it:

  1. on an online service, mention your fingerprint in a particular way
  2. add that link to your key in a particular way
  3. potentially use some software to verify it, or do it manually

Let’s do this.

Determine my fingerprint:

alex@melanobombus:~$ gpg --fingerprint alex@gnu.org
pub   rsa8192 2015-03-01 [SC] [expires: 2021-05-07]
      DF94 46EB 7B78 4638 7CCC  018B C78C A29B ACEC FEAE
uid           [ unknown] Alex Schroeder <alex@gnu.org>
uid           [ unknown] Alex Schroeder <kensanata@gmail.com>
uid           [ unknown] [jpeg image of size 5665]
uid           [ unknown] Alex Schroeder <alex@alexschroeder.ch>
sub   elg3072 2019-01-20 [E] [expires: 2021-01-30]

(and many other expired and revoked keys)

The fingerprint in question, with no spaces and converted to lower case: df9446eb7b7846387ccc018bc78ca29bacecfeae

Make sure you’re using the keys.openpgp.org keyserver. For a modern GPG installation, your ~/.gnupg/gpg.conf file should have this line:

keyserver hkps://keys.openpgp.org

Send your key to keyserver:

alex@melanobombus:~$ gpg --send-key df9446eb7b7846387ccc018bc78ca29bacecfeae
gpg: sending key C78CA29BACECFEAE to hkps://keys.openpgp.org


I’m going to create a proof for my GitHub account.

Create a new Gist. Use openpgp.md as the filename. Write whatever but somewhere in that text, use the String Verifying my OpenPGP key: openpgp4fpr:{FINGERPRINT}. Here’s the Gist I created.

Now, edit your key, adding a notation pointing to the Gist, save it, and send the key to the keyservers.

alex@melanobombus:~$ gpg --edit-key df9446eb7b7846387ccc018bc78ca29bacecfeae
Secret key is available.

sec  rsa8192/C78CA29BACECFEAE
     created: 2015-03-01  expires: 2021-05-07  usage: SC  
ssb  rsa4096/0C8706F1F6881931
     created: 2015-03-01  expired: 2019-02-28  usage: S   
ssb  rsa8192/11C583644529A45C
     created: 2015-03-01  expired: 2019-02-28  usage: E   
ssb  elg3072/DE6718E639D2D11F
     created: 2019-01-20  expires: 2021-01-30  usage: E   
[ unknown] (1). Alex Schroeder <alex@gnu.org>
[ unknown] (2)  Alex Schroeder <kensanata@gmail.com>
[ unknown] (3)  [jpeg image of size 5665]
[ unknown] (4)  Alex Schroeder <alex@alexschroeder.ch>

gpg> notation
Enter the notation: proof@metacode.biz=https://gist.github.com/kensanata/ffb8ecad8d48c9091ad63fb767534340
No notations on user ID "Alex Schroeder <alex@gnu.org>"
Adding notation: proof@metacode.biz=https://gist.github.com/kensanata/ffb8ecad8d48c9091ad63fb767534340
No notations on user ID "Alex Schroeder <kensanata@gmail.com>"
Adding notation: proof@metacode.biz=https://gist.github.com/kensanata/ffb8ecad8d48c9091ad63fb767534340
No notations on user ID "[jpeg image of size 5665]"
Adding notation: proof@metacode.biz=https://gist.github.com/kensanata/ffb8ecad8d48c9091ad63fb767534340
No notations on user ID "Alex Schroeder <alex@alexschroeder.ch>"
Adding notation: proof@metacode.biz=https://gist.github.com/kensanata/ffb8ecad8d48c9091ad63fb767534340

sec  rsa8192/C78CA29BACECFEAE
     created: 2015-03-01  expires: 2021-05-07  usage: SC  
ssb  rsa4096/0C8706F1F6881931
     created: 2015-03-01  expired: 2019-02-28  usage: S   
ssb  rsa8192/11C583644529A45C
     created: 2015-03-01  expired: 2019-02-28  usage: E   
ssb  elg3072/DE6718E639D2D11F
     created: 2019-01-20  expires: 2021-01-30  usage: E   
[ unknown] (1). Alex Schroeder <alex@gnu.org>
[ unknown] (2)  Alex Schroeder <kensanata@gmail.com>
[ unknown] (3)  [jpeg image of size 5665]
[ unknown] (4)  Alex Schroeder <alex@alexschroeder.ch>

gpg> save
alex@melanobombus:~$ gpg --send-key df9446eb7b7846387ccc018bc78ca29bacecfeae
gpg: sending key C78CA29BACECFEAE to hkps://keys.openpgp.org

If you’re wondering about the proof@metacode.biz key used, there’s an explanation in the FAQ:

This e-mail-like string is actually notation key. RFC 4880 specifies this kind of format as a way to namespace custom notations. You need to create notations under the domain that you own to avoid conflicts. I used my own domain for this protocol. Ideally the notation key would be just proof. Using this kind of keys (without @ namespacing) is only allowed for IETF-approved extensions though (I did not approach them).

So, one day it might be just proof. But we need to agree on a key for tools to work and so proof@metacode.biz is as good as any.

Here’s how to manually verify the key:

alex@melanobombus:~$ gpg --list-options show-notations --list-sigs df9446eb7b7846387ccc018bc78ca29bacecfeae | grep proof
   Signature notation: proof@metacode.biz=https://gist.github.com/kensanata/ffb8ecad8d48c9091ad63fb767534340
   Signature notation: proof@metacode.biz=https://gist.github.com/kensanata/ffb8ecad8d48c9091ad63fb767534340
   Signature notation: proof@metacode.biz=https://gist.github.com/kensanata/ffb8ecad8d48c9091ad63fb767534340
   Signature notation: proof@metacode.biz=https://gist.github.com/kensanata/ffb8ecad8d48c9091ad63fb767534340

Visit the URL and check that the fingerprint mentioned is in fact the fingerprint you used in your query. If so, verified! ✔

And here’s how to do it automatically.

You can host the web app somewhere, or use Wiktor’s installation, passing along the fingerprint in question as part of the URL:

Click for the live version

This is soooo beautiful! 😍

Thanks, Wiktor!

That’s all I ever wanted Keybase to do for me. And now there’s a way to do this, but decentralized. This is awesome.


I’m adding my fingerprint as one of the four profile metadata elements available to me on Mastodon, followed by:

gpg --edit-key df9446eb7b7846387ccc018bc78ca29bacecfeae
gpg --send-key df9446eb7b7846387ccc018bc78ca29bacecfeae


I’m posting the same text I used above to Reddit, followed by:

gpg --edit-key df9446eb7b7846387ccc018bc78ca29bacecfeae
gpg --send-key df9446eb7b7846387ccc018bc78ca29bacecfeae


Remember, we’re using keys.openpgp.org. They don’t publish email addresses unless you’ve agreed to it. That means a confirmation mail per email. We need to do the following for every email address we want to make available:

  1. submit it to keys.openpgp.org
  2. get the confirmation link
  3. click the link to request a confirmation mail
  4. click the link in the confirmation mail

In order to get started, you have to submit your key without using --send-key. I know, it’s weird. But that’s the way to get the confirmation link:

alex@melanobombus:~$ gpg --export alex@alexschroeder.ch | curl -T - https://keys.openpgp.org
Key successfully uploaded. Proceed with verification here:

Click the link to request the confirmation mail, wait for the confirmation mail, click the link in the confirmation mail, and now your address is listed!

Verify this by search for your email addresses on keys.openpgp.org.

Do this for every email address you want to see listed (possibly all of them).

Searching for emails

Remember how I said above that you can pass the fingerprint of a key to the web app, like this:


If you’re self-hosting your email, there’s the option of allowing an email address instead of the fingerprint, using a Web Key Directory. One day, tools will be able to handle encryption without having to know about fingerprints. 🙂 The same is true for the web app:


If you have control over a domain but don’t use it for email, there’s still a way to get this to work using a subdomain under your control and keys.openpgp.org but I’m not going to cover that. I would have to do that for my GNU and GMail addresses. The following section just covers the email address I receive under my own domain, alex@alexschroeder.ch.

In order for this to work, we need to do the following:

  1. export our key
  2. rename it so it matches the hash of the local part (alex in my case)
  3. serve it from the same domain from a well-known location

Let’s determine the hash using --with-wkd:

alex@melanobombus:~$ gpg --list-keys --with-wkd alex@alexschroeder.ch
pub   rsa8192 2015-03-01 [SC] [expires: 2021-05-07]
uid           [ unknown] Alex Schroeder <alex@gnu.org>
uid           [ unknown] Alex Schroeder <kensanata@gmail.com>
uid           [ unknown] [jpeg image of size 5665]
uid           [ unknown] Alex Schroeder <alex@alexschroeder.ch>
sub   elg3072 2019-01-20 [E] [expires: 2021-01-30]

Thus, I need to export my public key using gpg --export alex@alexschroeder.ch > cddpr77ezsy7h967hgjydxhhmnt76n8w and serve it from https://alexschroeder.ch/.well-known/openpgpkey/hu/.

In addition to that, I created a .htaccess file in my openpgpkey directory containing the following:

Options -Indexes
Header set Access-Control-Allow-Origin "*"

The first line disables the listing of directory contents and the second line sets the Access-Control-Allow-Origin such that this information may be retrieved from elsewhere, not just my own server.

You can test the setup using Wiktor’s Web Key Directory page.

Sadly, when testing it from the command line, it doesn’t work as expected. Here I am, using --locate-keys from a different account where I don’t have access to my key:

alex@sibirocobombus:~$ gpg --locate-keys alex@alexschroeder.ch
gpg: error retrieving 'alex@alexschroeder.ch' via WKD: No data
gpg: error reading key: No data

Oops! 😭

Something’s missing. But what is it?

Self Hosting the Application

On your webserver, create a directory called openpgp with a copy of the files in the openpgp-proofs repository. The directory I’m using is accessible from the web as https://alexschroeder.ch/openpgp. This is important later because the script expects proofs.json at this location.

Run npm install --production in this directory. You’ll get a bunch of dependencies installed into the node_modules directory.

If you’re like me and you’ve set a Content Security Policy, you need to allow clients to make requests to the keyserver and to all the sites hosting the proofs. Thus, we really need to relax our CSP, unfortunately. But there’s no way around it!

In my .htaccess file, I put:

DirectoryIndex index.html
Header set Content-Security-Policy "default-src https: data:; object-src 'none'; script-src https: 'unsafe-inline'; style-src https: 'unsafe-inline'"

And here it is! 😀

Note that my primary browser is Firefox which blocks a bunch of requests so that the proofs cannot be fetched. When I use Chromium, which is less paranoid, all my proofs are verified. 👍


Add Comment

2020-05-08 Desperate Fights

In episode 53 of Daydreaming about dragons, Judd Karlman talks about the fight between Fin Razel and Queen Bavmorda in Willow and how the fight had a certain desperation about it, and how to bring that to role-playing games.

It’s an interesting question.

I don’t think counting down hit-points gives us desperation. In games with a lot of fighting, possibly with a lot of characters at the table, I see desperation mounting when characters drop out of the game. That’s when we get nervous.

If characters are dead when they drop, this requires a game with a lot of retainers that die first. This may or may not be your kind of game.

The alternative is a game where dropped characters aren’t dead by simply dying, either because they only die at -10, or they roll stabilisation dice, etc. As you can see, this is the route AD&D and D&D took.

The problem with these kinds of approaches is that some players are out of the fight and then they sit around and do nothing which is acerbated when fights are long affairs. It reminds of the problem many board games have unless they’ve been designed with Eurogame sensibilities: people who lose first must leave the game and then they sit around waiting for their friends to finish.

In my experience, death spirals also don’t result in the desired effect. By that I mean games where getting hit reduce your chances to win the fight: the consequences (if playing in a Fate like game) keep accumulating and you’re slowly dropping out of the fight. It’s the same as before, except more tedious.

Here’s what worked for me: a Death & Dismemberment table! That is, a table where we roll for dire consequences with the following properties:

  • you roll as soon as you’ve exhausted some other resource like hit-points so that people can enjoy a few exchanges in a fight without desperation
  • some of the results are harmless and some of them are extremely dire so that rolling feels like tempting fate in desperation
  • some of the results have temporary bad consequences that are reflected in the fiction, like falling prone, losing weapons, being stunned; these set the scene
  • some of the results have long term bad consequences for the characters that don’t impact their fighting ability, such as cuts (where?), loss of nose, ears, eyes, teeth
  • some of the results have long term bad consequences for the character are even harsher, such as loss of limbs

I find that having to roll on the table already underscores how desperate the situation is, even if many of the rolls are harmless or indicate minor consequences. Furthermore, some of the long term consequences are horrible even if not mechanically relevant and people react to that, too.

Or, to put it in different terms: desperation is when you keep hovering at the end of the line, always fearing that the next breath might be you last, without making it impossible for you to still turn the ship around.


See 2020-04-20 To specialize in combat for an example of such a table. See 2013-09-18 Broken Ribs for a great scene resulting from its use.


Comments on 2020-05-08 Desperate Fights

Desperate Role-Playing Moments.

Jeremy Friesen 2020-05-08 18:50 UTC

I’ve been fiddling with a similar wounds table but I’m nervous about the effect of serious long-lasting wounds. I fear that my players will feel ineffective in a way that detracts from their fun.

How has that worked out in your game? Are players upset about having a character with a broken arm for several sessions?

deadtreenoshelter 2020-05-09 21:52 UTC

Yes they are. But we also use the traditional rules for retainers: every main character can have up to 4 + Charisma bonus retainers (1–7). Those play a more important role, then.

And yes, we’ve had a bunch of characters retire because they lost both legs, both arms, or both eyes. It’s harsh and gives the campaign a Napoleonic veteran vibe, as the party can return to a town to find former party members trying to make a living. It’s rare enough to not feel like a relentless grind and still happens often enough to make an impression.

I guess the alternative would be to simply roll up a new character. Players always have that option, too. In my game those new characters have 0 XP, though. The players will always opt to promote a retainer to their new main character.

– Alex Schroeder 2020-05-09 22:11 UTC

I have used retainers less (mostly I’m afraid they’ll bog things down) but I can see how they would mitigate a PC being semi-crippled. I’ve wanted to try a more old-school approach to hirelings but my usual group of players is already so indecisive...

During COVID I’ve been mostly running Mork Borg (<0 HP = DEAD) with a different group with a faster play style and so I may give it a go.

deadtreenoshelter 2020-05-10 02:05 UTC

You are absolutely right. I said above that we use those Charisma limits but in actual fact most players just run one, two, or three retainers and when things are important I often ask, so who is on the flying carpet or giant turtle or whatever, and then I write down a little list of characters, retainers, and pets. That still gets me about ten to twenty party members, and that is a lot. Fights need a certain discipline and feel like they’re long by the time they go into the third round. These problems are acerbated if you have an indecisive player who is obsessed about playing it safe. Due to that player, we have instituted a rule at the table whereby we can still have the number of retainers and pets as determined by Charisma, but we can only ever take up to two on adventure. This guy was so undecided, and so slow at rolling dice, it bogged everything down.

So yeah, there are drawbacks, definitely.

– Alex Schroeder 2020-05-10 07:21 UTC

The blog post got mentioned in a reply show. 🙂

– Alex Schroeder 2020-05-22 21:50 UTC

Hi! I found your blog from the Daydreaming reply show. I am currently working on my own Frankenstein of a ruleset for a hexcrawl game I hope to start running soon. I love the concept you’ve detailed here and I am going to steal it. It seems a lot more exciting than just dropping unconscious at 0 hp and I love imagining HP as a combination of luck, stamina, and will to survive. You mention losing eyes, noses, etc, but I don’t see that outcome on the tables you linked. Do you have an updated table that you use now?

– slimefool 2020-05-23 12:23 UTC

how about this...

5–6 serious injury; roll 1d6: 1 – broken sword arm, 2 – broken shield arm, 3 – broken leg, 4 – gouged eye, 5 - cut off nose, 6 - shattered teeth ; broken limbs heal after 1d4 weeks (sessions)

In addition to adding the more “cosmetic” injuries, I altered the healing time to fit the tone of my game more. The only playable ancestry is Dwarf so... maybe they heal faster?

– slimefool 2020-05-23 16:24 UTC

Welcome to the blog! 😀

Yeah, I do have an updated table. Below is the table I use right now. If I remember correctly, my problem was that 6 comes up pretty often and so I had way too many player characters that were “unplayable” because of broken bones. My players even joked how it would be easier to just amputate the broken limb and use a hook or a wooden peg instead of waiting for it to heal. So now broken bones only happen on a 5 and I use something less severe for 6.

page 13

(I discussed this page on my own podcast, episode 15, in case you’re interested.)

– Alex Schroeder 2020-05-23 17:45 UTC

Add Comment

2020-05-07 Cowards

Ah, cowards. Yesterday, I was talking to @TQ and mentioned that I had one player who is very risk averse. We often joke that their character having the best armour, the best weapons, the best spells, the highest level, and yet there they are in the back, sending their retainers to the front. “He’d prefer to be playing Agricola instead!” we laugh. (Agricola being a board game where you play a farmer.) But at the same time, it’s also aggravating and I’m happy there aren’t more players like him in the group. Nothing would ever happen unless I make it a railroad, I fear.

Today I read a post by Jeremy Friesen, Highlighting Posts from my RSS Feed, where he mentions a blog post by Daniel Bishop, What to Do with the Cowards. The suggestion is to do nothing as a referee, as far as I understand it. Let the players hash it out.

“They are your characters. This is your problem. Deal with it.” – Daniel Bishop

This doesn’t make me very happy. I think I know where this is coming from. I can’t make in-game changes to out-of-game problems. I don’t want players to each have a one-on-one with me because I’m the referee. There needs to be a different way to handle this.

However, if I see miscommunication in life, I don’t think that people should hash it out without me. If it’s friends, family, coworkers, I get involved. I ask both sides to explain their position. I show empathy, I help translate the positions to the other side. That’s how I am. I don’t want the people close to me fighting. And yes, adults can be adults and handle their own problems. But we’re also friends and we’re having each other’s back and not every adult is up to 100% adulting at every moment. We have times when we can’t help ourselves.

From my perspective, I need to enjoy the game and I might not enjoy the game if we have a player who’s a coward. Perhaps they want to play a different game? Perhaps they don’t like the implied lethality of my game? I might have to adapt my game, or they need to find a different game. In addition to that, I’m doing the dishes after the game and my wife is there and we talk about the game and if she’s frustrated by another player – not enough to make a fuss about it at the table but but still noticeable – I’m feeling bad about the game we just had. It didn’t go well and I feel responsible, as a referee.

You could say I shouldn’t feel responsible because my job description says that I’m an impartial referee, but that’s not how I think about it, as I said. I feel for them. I cannot sit idly by and be just an impartial referee. These are my friends; this is my family.

I used to be tougher. I used to think that tension at the table adds spice to the game. Let players deal with it. The grappling with these things is part of the game. Until I realized that I don’t enjoy that part of the game.

So now I prefer being open about the meta aspects of it all. The frustrating moments don’t disappear. The player still does not send their thief into the shark infested water to release the harbour chain. But at least we all know the player is concerned about the safety of their characters, we can joke about it, roll our eyes, and find a way to get the job done using different means, and when it comes to distributing loot I think the players can be pretty open about some of their choices, too. The cool weapons and armour are no longer going to that player’s characters because they don’t tank and we all know it.

Being able to talk about these frustrations is the first step in being able to handle them, even if we can’t solve them.


Add Comment

2020-05-06 I need strong guidance

Yesterday’s post about fudging dice is still churning around in my head. I just realised that back in 2019 I linked to a post by The Alexandrian called GM Don’t List #9: Fudging. As I said back then, “Justin Alexander doesn’t just provide the justifications people might give to defend their fudging but also refutes these, and links to blog posts with even longer refutations, if you feel like reading up on it. And then he judges you for fudging if your still do it. Its a failure state, he argues. Think about what led you here and learn from it — improve your game instead of continuing to fudge.”

OK, so how do I improve my game? I think that I felt in some way that I had bee unfair to my players, not granting them the bonuses they expected for the things they did and when this was compounded by back luck, and I was rooting for them, and I was nervous, and staring at that result, having just heard what the fighter had rolled, and I just blurted out “Seven!” when it should have been a nine, or thirteen, or whatever.

So why did I feel the players had been treated unfairly? It all has to do with the nature of Just Halberds. In a classic old school D&D game like Halberds & Helmets I can always fall back on pure mechanics. Today, for example, the party was accompanying a necromancer back to the entrance of his tower intending to murder him. One of the players asked: “Is there a good spot where we could attack him?” I said: “You’re crossing two rooms, descending two flights of stairs, and out the main entrance, onto the ledge leading to his tower. There are plenty of excellent spots! But none of them give you a mechanical advantage if that’s what you’re looking for.” We all laughed and the game continued. We all understood that at my table, when combat starts, it’s dead simple. No maneuvers. No mechanical benefits for this and that. Make your calculations, decide whether you want to risk combat, and then when it starts, things are incoherent, tactics are hard, and then you die. Or not. Mostly you don’t die, actually. But the point still stands. There is not a lot of negotiation at the table when in combat.

But Just Halberds is different. My notes:



Burning Bone of the Mountain
☐☐☐☐☐☐ +6
Fire breath
Bite •
Claws •
Size •
Tail •
Wings •
Armour •
Roar •

My intention was basically this: +6 is the dragon’s bonus at its best. So when players use their advantages, obviously the bonus should be less. A simple rule would have been: whenever you put an opponent at a disadvantage, add +1. Thus, as the water mages cast water waves into the dragon’s cave, +1. As they freeze the water around it’s feet, add +1. When they’re all resistant to fire, +1. And when you fail at your roll, the fiction is still established. For example: the dragon roars, +6. The water mages cast their waves into the dragon’s cave, +2. They lose the opposed roll and suffer somehow. But the water is still established.

Maybe they take damage from the roaring as stones start falling. The situation made it impossible for the dragon to reach them, so it didn’t make sense for bite, claws, size, tail, or wings to have an effect, and the water was not held back by armour, tongue, armour, roaring, or flattering...

So, then I started wondering: actually, why isn’t the dragon rolling a lot less? May its size helps against the water, maybe its roar shakes the water mages, so let’s say it rolls +2?

I wasn’t sure, I was in the midst of combat. I decided it rolls +4. And then I argued the dragon was cooling with all the water and ice, so maybe it just rolls +3.

And when the fighter still kept failing, taking a little damage again and again as the rest of the party watched the rolls, I fudged a roll.

I know it’s silly because I’m writing the rules myself. But the rules provide guidance that helps my through the nervous spots, the uncertainty and doubt. If I had known how to handle a dragon at a disadvantage, I would have known that I was treating everybody fairly and I wouldn’t have been tempted to fudge.

Anyway, all of this to establish that my list of monsters might need more than a single line for stats. Or that the system needs more guidance for referees like me. Perhaps a simple: roll 3d6 drop highest might have been a great disadvantage dynamic? I remember seeing that in Barbarians of Lemuria. I need to think about that.


Comments on 2020-05-06 I need strong guidance

I have read today and yesterday posts about fudging. I do not like fudging either, as a referee I always roll in the open.

The key question is why did you fudge the roll? To spare the life of a character? To avoid a TPK? To make an enemy tougher?

Fudging dice are not the only way referees can adjust the difficulty of the game on the fly. We can change the total hits a monster can take, how many enemies appear, modifications to the rolls... And enemy actions are also a way to manage the difficulty: focusing all attacks on the same character, being reckless/cautious... Do you feel guilty after doing any of these things?

An option is to announce the modifiers before the roll. If needed, agree on them with the players. Fast, a quick discussion of one or two sentences on how the fiction translates to mechanics. Do not negotiate; if players want something, they have to do it (as PbtA games say, “to do something, do it”). Then roll and adjudicate.

You can treat the opponents of Just Halberds the same as characters. A list of skills and powers; each one that applies to the situation at hand adds +1 to the roll.

  • dragons ♡♡♡♡♡♡♡♡♡♡ huge, armour, wings, fire breath, bite, claws, tail

As K’Dare the firebreather steps out the cave, his immense (+1) scaled (+1) body reaches to the sky, with a deep roar that make your bones tremble. From there, he unleashes hell on all of you, spitting fire (+1) as he flies (+1) above your heads. What do you do?

For the disadvantage, I am unsure about rolling 3d6 and drop highest. Then you will need an advantge roll (3d6 drop lowest). How will that skew the 2d6 roll statistics? Why not use modifiers?

– Ludos Curator 2020-05-07 12:31 UTC

Yeah, you’re right. And when you write it up like that, it’s clear that K’Dare the firebreather 😀 is quite easy to hurt using water magic. Maybe his immensity and his flying will help, but if you catch him in a cave, then it’s only his size (+1). And thus the might dragon is reduced from +6 in a fair fight to +1 vs. water magic.

I like it.

– Alex Schroeder 2020-05-07 13:11 UTC

Regarding advantage/disadvantage, I’ve thought of this rationale:

Occupations, skills and special abilities/powers are internal factors, inherent to the character or monster. Each one that applies adds +1 to the roll.

External factors are independent of the people acting. They represent extraneous aspects that can alter the task difficulty. If they make it easier, roll with advantage (3d6, drop lowest); if harder, with disadvantage (3d6, drop higher).

As a referee I constantly struggle to choose the proper modifier for a task. Is the rain distracting the archers enough to confer a -1, -2 or -4 to their attack? Who knows... 😕 Using advantage/disadvantage I choose with confidence. And players feel it more tangible.

So, players describe their characters actions. They know what occupations, skills and special abilities apply to the roll. The referee judges the situation and decides if any participant has advantage or disadvantage. Everyone rolls the dice, and the referee narrates the outcome.

– Ludos Curator 2020-05-10 09:27 UTC

I definitely think that advantage/disadvantage has the advantage 😁 of being super light on the referee. You can stop thinking about it immediately. There’s no need to concern yourself with determining how big of an advantage exactly. None of that. Just advantage/disadvantage. I like that.

Still now sure whether I want to add it to Just Halberds, tough. 😅

– Alex Schroeder 2020-05-12 11:23 UTC

Add Comment

2020-05-05 I fudged a die

I … I think … I think I fudged the dice a bit tonight! 😭 It was for the best, I swear! But I feel bad about it because I told myself not to do it ever. Never ever! And now I did it. Two adult players and six kid players at the virtual table, fighting a red dragon using Just Halberds.

Looking back I don’t think it made a big difference, but it’s still fascinating to realize how I’ve trained myself not to do it and how bad I feel for doing it. Stop it, brain! Stop. No need. It went well. Everybody had a good time.

Later, @jaranta wondered why fudging was a bad idea since it resulted in a better game for everybody. Good question. It’s like the question about railroads and precious encounter designs. Why complain when the game was good?

Here’s why I think I don’t like it: undiscovered fudging is no problem but at some point in the future players will begin to suspect and then to know that your are doing it and at that point all the achievements are revealed to be fake. That’s because at the core of it all was a lie: the implied premise was that things are hard but you were lucky and made the right decisions and the results rewarded you – the experience itself is rewarding. But if it was all a lie, then all you achievements are worth nothing.

It would have been better to not roll the dice In the first place, to play a dice-less game, or a game with bennies where you can openly haggle for better results. Then at least the narrative can be enjoyable. But for me, that’s not what I like best. I like the rewarding experience of having made the right decisions, of having been lucky. I want to laugh and cry because of fate, not because of the whims of the referee.

But yeah, it’s a good question. For more about my dislike of bennies, I wrote a blog post a long time ago: I don’t like Bennies.


Comments on 2020-05-05 I fudged a die

I guess fudging is fine under the following circumstances:

  1. if you’re absolutely never found out because you’re a perfect liar
  2. if you just did it once or you do it so rarely that you cannot remember the last time you did it

What are your options? I think the better question is: how could you have avoided ending up in a situation where you felt that fudging was your only option?

  1. give players more information beforehand so that they can decide to pursue something else
  2. give players more information as the situation develops so that they can decide to call off their current plan
  3. give players more information on the severity of the current situation so that they rethink their current position

A classic move for the last point in classic D&D would be to attack retainers, first.

– Alex Schroeder 2020-05-06 06:31 UTC

I agree that more often than not fudging could easily have been avoided by providing more information, so the players could make a more informed decision.

However, it must also be noted that players don’t always play “perfectly”. Sometimes they just want to go forward recklessly or just trust their luck more than they should (after all, very safe plans may go awry because of dice, and the stupidest of ideas may sometimes work out for the same reason).

I’m pointing this out merely because almost every time when I agonised over character death or the like, my veteran players gave me those looks like they were almost insulted that I thought they didn’t read the situation well. Of course, it does happen, and more so with less experienced players.

Ynas Midgard 2020-05-06 15:36 UTC

I’ve heard of people rolling in front of the players and I’ve heard of people letting the players actually roll the die for their enemies to keep them all involved. Either way would avoid any temptation.

The later seems horrible to me as I had a player back in the day that seemed able to roll a 20 on command and I’m sure he could roll a 1 as well.

– Ruprecht 2020-05-06 15:55 UTC

Yeah, I usually roll in the open – but with the current pandemic we have moved to playing online and there nobody can see the dice I am rolling.

– Alex Schroeder 2020-05-06 17:21 UTC

Add Comment

2020-05-04 New RPG blogs

You know how it is, in social media and in blogging, or in out in the face-to-face world when we’re not in lockdown: friends come and go, enemies accumulate... no, of course not. But interesting people come and go, that much I find to be true. You follow them on social media and then they stop posting — I used to see it on Google+ and I’m seeing it now on Mastodon. The solution is to keep following new people!

In the world of blogging, that means following more blogs. It’s why I’m keen to recruit new bloggers for the RPG Planet. We need new people to supplant those who have moved on to greener pastures, who need to focus elsewhere, who have dropped out of the hobby, found new things to do.

“New” blogs I’ve enjoyed reading:

What are your suggestions for 2019, 2020? 😀


Comments on 2020-05-04 New RPG blogs

@linkskywalker said: Velexi’s blog is one of the best, and only started in 2019: A Blasted, Cratered Land.

– Alex Schroeder 2020-05-04 20:47 UTC

Lately when I find new blogs, it’s usually because they’ve shared a link on the Blogroll channel on Chris McDowell’s public OSR server on Discord.

Anne 2020-05-04 23:01 UTC

If only the stream of new blog announcements made it into the RPG Planet! 😀

– Alex Schroeder 2020-05-05 06:39 UTC

Hey Alex, have you thought on making a sister page to RPG Planet that mimics Lobsters? It will be an interesting way to share and discuss about RPG-focused topics.

– Ludos Curator 2020-05-05 15:37 UTC

It sounds like a lot of work and seeing how I don’t like the kind of conversation engendered by Reddit, which is broadly similar (I think?) I don’t see myself as a regular user of such a system. I’d rather just have people discuss stuff on their blogs. Blogs work for me. 😅

– Alex Schroeder 2020-05-05 16:06 UTC

Yesterday I discovered the fascinating Pretendo Games blog. I enjoy the dissertations about how Jason establishes and tweaks the rules of their games. Every change has a reason, a rationale derived from playtesting the rules. Practice-to-theroy translation.

In addition, he has quite a few games. I like Exhumed and Grave.

– Ludos Curator 2020-05-12 10:27 UTC

Yeah, I’ve seen @JasonT post on Mastodon but I’ve not tried his games.

– Alex Schroeder 2020-05-12 11:19 UTC

Add Comment



You probably want to contact me via one of the means listed on the Contact page. This is probably the wrong place to do it. 😄

– Alex Schroeder 2020-05-22 12:19 UTC

Referrers: Putting Together a Solo Dungeon Crawl Generator Diary Diary Diary Diary