Choose Your Modality

August 28, 2026 philosophyarchitectureannouncement

Here’s a motto I keep coming back to, because it keeps turning out to be the right test for every decision I make:

Choose Your Modality.

Fate’s Edge is a tabletop roleplaying game, not a particular application. Play with a human GM or an AI GM. Use physical dice or digital dice. Track your campaign on paper, in the web client, in a VTT, through Discord, or through your own tools. The rules, campaign state, and adventure data remain the foundation. The interface is your choice.

I want to explain why that sentence exists, because it wasn’t an obvious design goal. It was a reaction.

The thing I kept running into

I’ve been playing tabletop games for decades, and at some point in the last several years, every tool I touched started making the same assumption: that the tool was the game. Log in here. Your character sheet lives on our server. Your campaign history is a row in our database. If we shut down, sell out, or change our pricing tier, your years of sessions go with us.

That’s backwards. The game is the rules, the fiction, the people at the table, and the state of the world you’ve built together. The tool is just how you’re currently touching that state. A character sheet on a laptop and a character sheet on a legal pad are the same character sheet. A VTT battle map and a hand-drawn one on graph paper are the same battle map. The moment a platform forgets that distinction, it stops serving the game and starts becoming the game — and now you’re locked in, whether or not anyone meant for that to happen.

I didn’t want to build another one of those.

Where this actually comes from

I’ll be honest about the less architectural reason, too, because it’s the real one. I have a chronic condition, and my capacity changes day to day in ways I don’t fully control. Some days I have the energy for a full session — VTT open, maps out, tokens moving, the works. Other days the most I can manage is a phone, a few dice rolled digitally, and a couple of exchanges in a Discord thread between naps. Both of those need to be the same game, or the bad days quietly become the days I don’t play at all.

That’s not a hypothetical design constraint. That’s Tuesday. And once I noticed that my own ability to play depended on the interface never being allowed to gatekeep the game, I realized every group has some version of that problem — a player with a newborn who can only manage async turns through a bot, a table that meets in person but has one remote friend, a GM who wants paper because a screen at the table kills the mood. Choose Your Modality started as something I needed for myself and turned out to be something everyone needed, just with a different reason each time.

What “modality” actually means here

So the architecture draws a hard line: on one side, the rules engine, the campaign state, and the adventure data. On the other, every possible way of touching them. Nothing on the interface side is allowed to be load-bearing.

That’s not a slogan, it’s a literal constraint on how the system is built. The transport layer — the thing that carries “I attack the guard” from a player to the table and back — doesn’t care if it’s carrying that message from a browser tab, a terminal client, a Discord bot, or a Foundry integration. It’s the same event, the same protocol, the same resolution underneath. The Tag DSL that lets an AI GM narrate consequences doesn’t know or care whether the GM seat is a person improvising or a language model reading the same state. Position and Effect, the dice math, the Boon economy — none of it changes based on who’s rolling or what they’re rolling with.

Practically, this means:

Human GM or AI GM are the same seat at the table, filled two different ways. If you love running games and always will, nothing here replaces you — the AI GM exists for the sessions where no one can GM, not to make GMs obsolete. If you want to play solo at 1am with no group available, the seat’s still there, just filled differently.

Physical dice or digital dice resolve the exact same math. Roll a d10 on your kitchen table and read the result off the Position/Effect chart in the book, or click a die in the web client and let it apply automatically — same outcome, same rules, different hands doing the work.

Paper, the web client, a VTT, Discord, or your own tooling are all just different windows onto the same campaign state. That’s why the transport layer is interoperable instead of proprietary — a group that wants to run everything through a Discord bot and a group that wants a full VTT with maps and tokens are both first-class citizens, not one “real” way to play and one degraded fallback.

Why this is a promise, not just a feature

I wrote a while back about why the code is MIT and the SRD is CC BY-NC-SA — that a license that survives independent of any one company’s decisions is the only kind of promise that actually holds. Choose Your Modality is the architectural half of that same promise. A license tells you what you’re legally allowed to do. An architecture that never lets the interface become load-bearing tells you that you’ll actually be able to do it, five years from now, on hardware and platforms that don’t exist yet.

If the web client disappears tomorrow, the rules don’t disappear with it. If Discord changes its bot policy, or a VTT vendor shuts its doors, or you’d just rather play with a notebook and a d10 like it’s 1987, none of that touches the game itself. The foundation was never the app. It was always the rules, the world, and the people playing.

Why this should matter to you, specifically

Maybe you don’t care about transport layers or Tag DSLs — that’s fair, most players shouldn’t have to. Here’s the version that matters at the table: whatever your group actually looks like — in person or scattered across time zones, high-energy or running on fumes, all-in on a VTT or allergic to screens — Fate’s Edge bends to fit that, instead of asking your group to bend to fit it. You’re not buying into a platform that might not exist in five years, or a workflow that only works if everyone’s schedule and energy line up the same way every week. You’re buying into a game that keeps being playable long after any one tool involved has changed, broken, or gone away.

Pick whatever interface fits your table tonight. Switch it next week if you want. The game doesn’t move.


If you want to see where this shows up in the actual code — the transport layer, the Tag DSL, how the AI GM and human GM share one protocol — the architecture overview on the dev portal is the place to start. And if you’re running with any of this and have opinions about it, come say so in the Discord — that’s exactly the kind of thing I want to hear.