Frequently Asked Questions¶
General¶
What is PYTHIA?¶
PYTHIA is a Discord bot meant to assist with various parts of running Danganronpa/Killing Game RPs, of course. The home page has a bit more information on what it can do.
How do I set up PYTHIA?¶
You can find a list of setup guides on the setup page. The basic setup guide is a good place to start.
A server I'm in is using PYTHIA. How do I use it?¶
You can find a list of usage guides on the usage page.
Is this meant to be a replacement for Ultimate Assistant?¶
Short answer: kind of.
This bot was initially created just for its BDA investigation system under the name of Ultimate Investigator. Knowing that Ultimate Assistant existed, the bot didn't expand out to other features because there was no point in doing so. However, once I got the news that Ultimate Assistant was going to be deprecated, I decided to expand the bot to include features previously only found in Ultimate Assistant.
However, PYTHIA's new systems are not an exact copy of Ultimate Assistant's systems. While Ultimate Assistant's command names and arguments/options were sometimes referenced, the systems themselves were built from scratch. I didn't hestitate on making changes to the systems if I felt it was necessary.
Most notably, many of the systems do not rely on making an entire profile per player to function - instead, they rely on a player role (or nothing at all, in the case of the messaging system). This, in my opinion, makes the systems easier to use and set up.
Will you implement the currently missing features/systems from Ultimate Asisstant?¶
Maybe. I tend not to like developing things that are already done (well) by other bots. However, if there's a feature that I think would be a good addition to the bot, I'll consider adding it.
For now, for alternatives to the missing features, you can check out:
- Carl-bot's Autofeeds for the announcement system.
- Chiaki Nanami for some parts of a general purpose investigation/inventory system. From what I can tell, it does not cover everything Ultimate Assistant had - a general purpose investigation system is planned for PYTHIA, but it may not come for a while.
- I do not know of any alternative for the profile system Ultimate Assistant had.
Note
These are listed as-is, and I (AstreaTSS) take no responsibility for them. These recommendations are based on research and are not sponsors, nor are they necessarily endorsed. That being said, if you wish to talk to me about one of these bots or to add one, you can join my support server to do so.
Just because features are in the above list does not mean they will not be added to PYTHIA in the future.
How do I make it so only certain users can use certain commands?¶
Discord has this feature built-in for slash commands! Check out this page Discord made (links to archive.org as page has been deleted) for more information.
Note:
- All management/configuration commands require "Manage Server" permissions by default.
- Subcommands cannot be individually controlled - only the base command can. This is a Discord limitation.
Where can I find information about updates/new features?¶
There are two places you can find updates - the updates page and the support server. The updates page always will contain new features and major adjustments, but the support server will also contain bug fixes and other miscellaneous announcements (IE downtime announcements) that you may find useful.
So why PYTHIA, anyways? And who's the figure in the bot's icon?¶
PYTHIA is actually one of my Danganronpa OCs! She's the Ultimate Robotic Assitant (and indeed a robot - a humanoid robot, specifically), which... well, is quite a good fit for this Discord bot. As you may expect, the head in the icon is the character's head, ponytail and all. Also, purple is her (the character's) primary color, and so it became the bot's primary color.
Cute naming scheme aside, it was also not frequently used as a Discord bot name and is very memorable. It gives the Discord bot a lot more character than, say, a name like "Ultimate Helper", which is always nice.
As for the character - yes, she's named after the historical Pythia from ancient Greece.
I want to suggest a feature. Where can I suggest it?¶
In the support server, of course!
There's another question I have that's not answered here. Where can I ask about it?¶
Also in the support server, of course!
Technical¶
I wanted to add something to the website/I noticed a mistake on the website. Can I do something about it?¶
Of course! The website is open source, and you can find the repository over here. The website uses MkDocs Material and markdown, so you'll need to know a bit about that to make changes. If you're not comfortable with that, you can always ask in the support server and point me in the right direction.
I want to add a feature to PYTHIA. Can I do that?¶
Yes! The bot is also open source, as can be seen here. The bot is written in Python and uses Prisma and Git, so I'd suggest knowing a bit about those (and Discord bot making) before you start. If you're not comfortable with that, you can always ask in the support server and point me in the right direction.
Self-hosting steps (for testing) can be found on the next question.
Can I self-host PYTHIA?¶
You can! Using the source code, you can self-host the bot.
Note about Self-Hosting
Self-hosting is not recommended for most users, being a complicated process that requires at least some technical knowledge. Only do this if you have a personal interest in self-hosting, or if you want to contribute to the bot's development. For most people, the public instance of the bot is more than enough - see the Server Setup Guides for more information.
If you run into issues, I will only give limited support on my support server, and will expect you to have a reasonable understanding of Python, Discord, Git, and potentially Docker. I am not tech support.
Recommended Process (Docker)¶
That being said, the recommended process is:
- Clone the repository.
- Install Docker Engine and Docker Compose.
- Run
docker compose build
in the repository. - Make a
.env
file in the repository with the following contents:MAIN_TOKEN="YOUR_BOT_TOKEN" BOT_COLOR=7487408 DOCKER_MODE="true" POSTGRES_PASSWORD="A_STRONG_PASSWORD"
- Use
docker compose up -d
to start the bot. You can usedocker compose logs -f
to view the logs of the bot.- To sync slash commands, run
@BOT_MENTION debug sync
in Discord (replaceBOT_MENTION
with the bot's mention, like@PYTHIA
).'
- To sync slash commands, run
Non-Docker Setup¶
If you don't want to use Docker, your steps will be a bit different. You'll need to:
- Clone the repository.
- Install Python 3.10+ (the latest Python is usually the best one to use). Ideally, make a virtual environment for this project.
- Make a
.env
file in the repository with the following contents:MAIN_TOKEN="YOUR_BOT_TOKEN" BOT_COLOR=7487408 DB_URL="URL_TO_YOUR_POSTGRES_DATABASE"
- Run
pip install -U -r requirements.txt
in the repository. - Set up Prisma by running
python -m prisma generate
. - Set up the database by running
python -m prisma migrate deploy
. This may complain if you already have tables - you can runpython -m prisma migrate dev
to wipe the database and start fresh. - Start the bot by running
python -m main.py
.- To sync slash commands, run
@BOT_MENTION debug sync
in Discord (replaceBOT_MENTION
with the bot's mention, like@PYTHIA
).'
- To sync slash commands, run
Updating¶
To update the bot, you can:
- Run
git pull
in the repository. - To update dependencies, run:
docker compose build
for Docker setups.pip install -U -r requirements.txt
andpython -m prisma generate
for non-Docker setups.
- If there are any database changes (visible as a new migration in
migrations
), you can run the following command to apply them:- Migrations are applied automatically in Docker setups on bot startup unless the
DO_NOT_MIGRATE
variable is set totrue
in.env
(or as an environmental variable). python -m prisma migrate deploy
for non-Docker setups.
- Migrations are applied automatically in Docker setups on bot startup unless the