The Mörk Borg megadungeon bot
I made a post on Bluesky earlier in which I mentioned I've been writing a Discord bot to help facilitate a megadungeon I'm planning to run. I also mentioned it on a recent stream with Plus One Exp and between the Bluesky post and that show I've had a few questions about it, so I figured I'd write up something brief.
Back in 2021 I kickstarted a Mörk Borg adventure called Treasures Of The Troll King which has become one of (if not the) best-selling third party adventures for the system. I've intended to write a sequel to it for a long time. This bot is part of that.
The pitch is that a decade after the events of the original adventure, capitalism has come to Galgenbeck. Somebody has found the sunken chapel that Niduk called his home and they've turned it into a tourist attraction akin to the London Dungeon. There's a pub above it, a megadungeon below it, and people pay the bartender to access the chapel and the tunnels beyond it. I've said for ages that I wanted to run it for people while I'm crowdfunding it, but I've never figured out a format that I liked for that. Then I spent a month playing Over/Under and everything fell into place.
I plan to run it like a West Marches game, via Discord. The server itself will represent the tavern. I, and a group of GMs who I'll recruit at some point, will be available to run games. Players hang out in the server, role-playing and scheming and stuff, and whenever they want they can ping an available GM to say "hey, we want to go on a delve". And then we start a 90 minute session. Much like the High Noon Showdown we ran during Over/Under there will be a leaderboard (scoring is something I haven't figured out yet) and there will be prizes for the winners.
So where does the bot come into play? Since there are going to be prizes on the line I figured we needed some way to keep track of characters, silver, equipment, etc. in a way that's fair, transparent, and that all GMs have access to. The bot generates and tracks Mörk Borg characters, starts and finishes delves, allows me to refresh everyone's health, Omens, and Powers at dawn every day, checks for Miseries, and a few other things (including letting players spend silver to do 'Getting Better', Mörk Borg's equivalent of levelling up).
At the time of writing this post the bot is functional and could be used to run the game tomorrow. I'm working on adding a shop to it, and I need to build in some reporting stuff for my use on the back end, but all of the core functionality I need exists. It currently recognises 36 slash commands, and has a dice roller. Here's a list of the current commands built in to the bot
Player Commands
/create_character- Generate a new character with random stats, starting weapon, and armour/character public:[True/False]- View your character sheet (ephemeral message by default, can make public)/retire- Delete your current character (24-hour cooldown before creating new one, can't retire your character while on a delve)/balance- View your silver (ephemeral)/omen- Use an omen (only usable on delve)/power- Use a power (only usable on delve)/shoot slot:[1/2]- Fire equipped ranged weapon, uses ammo (only usable on delve)/transfer recipient:@user amount:X- Transfer silver to another player/inventory- View your inventory with slot numbers and item details (ephemeral)/equip inventory_slot:X weapon_slot:[1/2]- Equip weapon or shield from inventory/unequip weapon_slot:[1/2]- Unequip weapon or shield (stays in inventory)/give_item recipient:@user inventory_slot:X- Give item to another player/better- Level up (costs 3000s by default, not usable on delve. You must have been on a delve to use it for the first time, and then you have to go on at least one delve in between subsequent uses)/repair- Repair armor
The dice roller just watches messages rather than making use of slash commands, and automatically adds modifiers if you specify them. Syntax is roll XdY [stat] (e.g., roll 2d6 a or roll 1d20 strength)
GM Commands (Require GM role or Server Owner)
/set_stat player:@user stat:X value:Y- Modify any character stat/damage player:@user amount:X- Deal damage to a character/heal player:@user amount:X- Heal a character/kill player:@user- Mark character as dead, archive to database (players can still view the character sheets of dead characters until they generate a new one, which can't be done while you're on a delve)/damage_armor player:@user tiers:X- Reduce armor tier by X tiers/view_inventory player:@user- View any player's inventory (ephemeral)/add_item player:@user item_name:X ...- Add item to player's inventory. This is quite a complex command because items have lots of parameters./remove_item player:@user slot_number:X- Remove item from inventory slot/delve_start player1:@user player2:@user ...- Start a delve for up to 6 players. Creates channels and logs the starting status of characters (stats, silver, etc)/delve_end floor:X- End your active delve and record the deepest floor that you reached. Logs the status of characters at the end of the delve, including deaths./delve_add_player player:@user- Add player to your ongoing delve mid-game
God Commands (Server Owner only)
/set_better_cost cost:X- Change the silver cost for Getting Better/set_creation_channel channel:#channel- Restrict character creation to specific channel/clear_creation_channel- Allow character creation in any channel/set_delve_log channel:#channel- Set channel where delve logs are posted "/clear_delve_log- Disable delve logging/toggle_cooldowns setting:[cooldowns/delves]- Toggle character creation cooldown or delve requirement for Getting Better (this exists so I can test things, basically)/refresh- Daily refresh - restore all characters' HP, reroll Powers/Omens, roll for Misery/pause- Pause/unpause the game (blocks all player commands except owner)/make_gm player:@user- Grant GM role to a player/fire_gm player:@user- Remove GM role from a player
Upcoming Features
I'm in the process of writing a shop system. This will allow players to buy adventuring gear and also to sell the stuff they pull out of the dungeon. Based on Over/Under I expect players will build their own economy as well, but I want to codify some of the game-necessary stuff. Equipment is important in dungeon crawling.
I also intend to build some reporting into this thing, so I can look at individual delves, get leaderboards, etc.
There are also a few fun system things I need to build, like /infect and /curse to allow GMs to inflict players with Infection and the Goblin Curse respectively. I'm sure I'll think of other things I feel like I need as I work on this, too.
I have no idea when this game will actually happen, because once the bot works I still need to write the actual megadungeon. I also need to figure out the logistics of having multiple GMs run the same dungeon simultaneously. My instinct right now is to write it onto a shared spreadsheet that all the GMs can access and annotate (thanks to Luke Gearing for putting me on to this method - it's how he's been running his Wednesday OD&D game that I've played in for the last 3 years, and how I ran my A Dungeon Game megadungeon when we were on hiatus from that game). I may well end up adding every piece of treasure I place in the dungeon into a database that the bot has access to, so that GMs can specify what room they're in, get a list of treasure from that room, and put it in player inventories. I'll cross that bridge when I come to it, though.
So that's the broad plan, and what I'm going to use the bot for. Realistically I don't think this is going to actually happen until late 2026 or even early 2027, since it's a massive project that's going to require careful planning, but I'm very excited about it and I'm having a lot of fun working on this bot.