Friday, January 31, 2020

Troika! initiative tracker Discord bot

I absolutely love Troika! and the initiative system it uses is as bonkers and off the wall as the rest of the system.

For people who are unfamiliar:
  • Each PC puts two tokens into a bag of their color
  • Each enemy puts tokens into the bag based on their initiative stat (all enemies share the same color token)
  • hirelings, etc get tokens of another color
  • Then a single End of Round token is added.
You draw out of the bag, whoever's color is drawn gets to act.

If the End of Round token is drawn, the round ends and all tokens (except anyone who's died) get tossed back into the bag. This is also when people at zero HP die, when damage over time events tick over, etc.

It's highly unpredictable, gives another axis for enemies to be more dangerous (they simply get to act more often, or let other enemies in the fight act more often) and is a very fun and dynamic way to play the game. This is especially true in person when everyone gets to watch the token drawing happen. (It's also not quite as unfair as it might sound, as attacks in Troika! are all versus, meaning if you get attacked you have a chance to deal damage back.)

Unfortunately, a lot of my game playing happens online and I couldn't find a good way to do this initiative on Roll20 or any similar service. So rather than hack another initiative system into the game, I decided to write my own Discord bot to handle it.

The bot's code is here and if you can run python scripts on your computer you should be able to download this and set up an initiative tracker bot in your own discord servers.

It lets you add tokens, draw tokens, reset the bag, remove tokens entirely, etc. It has a basic dice roller in it just in case you need that (although other bots are certainly better for this) and keeps a log of all events. You can also have it display the current and total contents of the bag if you want to know the odds of various things happening.

Setting up a discord bot is a bit annoying, but I followed the instructions here, which also contains the instructions I used to write the bot in the first place.

I am not a professional developer, basically just know enough coding to get by in my day to day work, so I'm sure this isn't written in a particularly nice way, but it does work. I hope this is helpful to anyone who's been wanting to play Troika! online!

Here's the link to the bot once more:  https://github.com/AwkwardTurtle42/TroikaDiscordBot

Also everyone please go back the Troika! setting module Very Pretty Paleozoic Pals because I desperately want my copy to have a ribbon in it.

Also posted to reddit.