A simple bot for Discord, that can track initiative in D&D and similar TTRPGs, based on alternative systems - such as Speed Factor from DMG (currently supported) or Greyhawk initiative from Unearthed Arcana (TBD).
!ib start
- start initiative!ib end
- stop initiative, if it was started!ib help
- display help message
!ib add <base modifier> [name]
- add a participantname
(defaults to username) with base initiative modifier!ib remove [name]
!ib round
- start a new round, but only if every combatant has rolled a new initiative!ib end-round
- end the round, enable combatants edit and rolling!ib roll <modifier> [name]
(name
can be omitted if user has added a single character) - rolls initiative for the current round, addsmodifier
and base modifier
To start encounter, DM calls start
command. All combatants join using add
command, stating their base modifiers. All combatants
should state their actions and roll for initiative using !ib roll <modifier> [name]
command. Once everyone (i.e., all, who has joined previously)
has rolled, DM starts a new round using round
command, followed by next
command. The bot will then ask the first combatant to act.
Once everyone has acted, DM should call end-round
. After that, everyone rolls again. If needed, list of combatants can be altered
using add
and remove
commands. The bot stores the list of combatants from the previous rounds and won't let the new round start,
unless everyone has rolled.
This app requires Java installation of version 1.8 or greater.
To build the app, run ./gradlew build
.
To run it for your own server, you'll need to register a new discord app and obtain a token for it. Once this is done, you can either
- run initiative-bot-discord with gradle, run
./gradlew :initiative-bot-discord:run --args="<your discord token>"
. - build distribution using
./gradlew :initiative-bot-discord:installDist
and run an executable script frominitiative-bot-discord/build/install/initiative-bot-discord-<version>/bin
. - download a distribution zip from Github releases, unpack it and run an executable script