March 29th, 2025

Combat V3

First things first, thank you all so much for your patience on this update. Building an AI game engine that understands 5e combat is no easy task. In fact, this is our third try! This was a really big update so we had to do it in chunks over the months, but we’ve finally got something cohesive for ya! Some of you may recognize some of these updates already, because we’ve actually been quietly shipping these features to production. If you’ve turned on “Turn based combat” in your campaign, you’ll probably have used some of these features already. Even then, I still encourage you to give this update a read - there’s a lot of stuff we packed in!

Battlemaps

Battlemaps are finally here. When Franz generates an encounter, he’ll use the description of the POI to generate a battlemap. Just like in other VTTs, the battlemap editor also allows you to quickly move characters/monsters around. The thing that sets our battlemap editor apart is that Franz also has the ability to manipulate the map and handle movement. It’s a magical moment when you tell him that you move somewhere (even cooler if you use voice input) and seconds later you see your token moving. I still can’t believe we can do this!

At the moment, Franz is not actually aware of obstacles or terrain on the map. He only sees the positioning of the tokens + a text description of the map. In the future, we’ll be upgrading these maps to include obstacles/terrain, and we’ll give Franz the ability to see the maps as well.

Pretty soon we’ll be using these for POI maps as well, and you’ll have the ability to generate these yourselves outside of combat - more to come on this soon!

Healing

It’s not just damage anymore, you can now cast healing spells via text! In a future update, we’ll show healing spell options through the spell cast UI as well.

Conditions

We now support all 5e SRD conditions! You can apply them manually in the character/monster forms, but Franz will also take care of them for you during combat. In the images below, you’ll see in one prompt, I am able to move and also cast blindness/deafness. Franz knows I have the spell available and uses it (he also automatically uses up the spell slot).

The condition then shows up on the rats automatically.

Then during the rats’ turn, you see they have disadvantage on their attack since they are blinded. The game engine takes the effects of the conditions into account!

Resistances, Immunities, and Vulnerabilities

Combat now takes resistances, immunities, and vulnerabilities into account. You’ll see here that the swarm of rats takes 50% damage as they have slashing resistance. If you are immune to a certain damage type, you’ll take no damage from that type, and if you’re vulnerable you’ll take double damage.

NPC Direct Responses

NPC Dialog only works in combat for now. We’ll be bringing it to the main narration flow soon!

NPCs can now respond directly to you, instead of through Franz. Just talk naturally to an NPC and they should respond directly to you. The really, really cool part is you can actually strategize with NPCs on your team! Time to get tactical.

Very soon, you’ll be able to give each NPC their own voice as well (this is already live in alpha testing).

OOC Mode

Franz now has an OOC mode in-combat as well. In this OOC mode, he has slightly different tools, more tailored for handling encounters. Here are some of the things he can do in combat OOC mode.

  • Look up the full sheet or stat block of any character, monster, item, spell, or location.

  • Create characters / monsters and add them to the encounter, or add existing ones.

  • Update positioning or HP

  • End or continue a turn

  • Add / Remove conditions

To trigger OOC mode, just say “OOC: [request]”. We’ll continue to add more tools for Franz to use over time.

Beyond fixing game state, there’s some really cool things that this unlocks, such as conjuring an elemental, spawning new mobs, etc.

Ending Encounters

Falling Unconscious / Death Saves

The game engine now supports death saves. If you’re unfamiliar with how falling unconscious works, check out this article.

Reincarnation

We don’t want your long running campaigns to go to waste if you die, so we’ve built in a reincarnation system. If you fail your death saves or get instant killed, you’ll have a chance to reincarnate as another character, either an existing NPC or a new one that you create. Franz will attempt to weave them into the story.

Non-lethal Endings

Now that we have conditions in, we can differentiate between 0 HP and dead, vs 0 HP and unconscious. This allows us to handle non-lethal endings. Perhaps you’re in a bar fight and the fight is over once you have knocked them out. Now Franz can handle those situations! Additionally, when your whole party is downed, Franz may decide to end the fight on his own if it makes sense narratively.

Encounter Summaries

You’ll now see a display of everyone’s stats at the end of an encounter. Right now it shows damage dealt, damage taken, and feet traveled. We’ll update this with more detail in the future.

Updated UI/UX

New breakdowns, explanations, and dice!

In the combat UI, we’ve added tooltips and explanations to make it easier to understand how something was calculated, or what kind of bonus is being applied.

We’ve also added the other dice, so you can now cast meteor swarm and revel in the giant block of D6s you’ve unleashed. Best part is you don’t have to pick them all up :)

Updated forms

You can now quickly access an entity from the sidebar. We give you a combat-specific version of a character sheet / monster stat block. You can also access the full sheet / stat block by clicking the button in the top right.

Misc

  • You can now edit monsters in combat UI.

  • NPCs now use spells / ranges.

  • Casting spells in combat now correctly uses spell slots.

  • If there are more than 5 monsters, Franz will now create them as a mob.

  • Encounter narration has improved.

  • In alpha testing, we’ve lowered fatal error rates (red error warning) to 0.

  • Encounter balancing: Franz will not balance an encounter if monsters were placed by a world builder. If Franz is the one generating monsters, he will attempt to balance the encounter based on the party level.

Conclusion & Roadmap

If you’re still reading, thanks for making it through such a long update! We poured so much time and effort into this one, so we really hope you like it. That being said, this is still brand new and we’re expecting you guys to quickly find edge cases / bugs. Please continue reporting bugs as you run into them!

We still have some more work to do on Combat and we’ve created a combat specific roadmap so you can see what we have planned. Upvote anything you really care about and you’ll receive a notification when we start work on it.


Combat V3 is now ON by default for all campaigns. If you still prefer handling combat narratively, you can turn it off by going to Campaign Settings → Turn Based Combat → Off