Setting the bot up has been as streamlined as possible.
Following this guide should get you fairly close to complete.
If you have any questions, feel free to ask in the Discord
This bot requires python and pip at a minimum.
General knowledge of python is encouraged but not strictly necessary.
I've also written this guide with Linux in mind, but that can be easily accomplished with WSL on windows, or a VM to run the bot.
Bridgeipelago Windows OS support has been removed in v3.0. Some day I'll add it back.
You can use WSL to run Bridgeipelago VERY easily. WSL Setup
There is some minor help in Step 5 with running python commands in windows.
To be honest, you can figure out most errors by just googling.
When generating the Archipelago game, make sure the bridgeipelago.yaml is included in the game to ensure the bot has a slot to listen in on.
This slot has no effect on the AP itself.
If you'd like to add-in this bot to an existing game (or not have a dedicated slot for the bot) change ArchipelagoBotSlot in the config.json to a valid slot-name.
You'll need a discord bot API token for the bot.
Log into the Discord Developer Portal: https://discord.com/developers/applications
And create a new Application/bot
In the Installation tab:
- Installation Contexts:
- Check
Guild Install
- Check
- Default Install Settings:
- Scopes:
application.commandsandbot - Permissions:
Send Messages
- Scopes:
In the Bot tab:
- Username: Something fun!
- Copy your token down. You'll need it in a bit!
- Enable
Public Bot - Enable
Message Content Intent
Back in the Installation tab:
- Under
Install Linkmake sureDiscord Provided Linkis selected - Copy the OAuth link into your browser and add the bot to the discord of your choice.
You're done with the bot portal for now, but keep that token handy!
- In Discord, enable
Developer Modefor your client - Create/have two channels for the bot.
- One will be where the bot posts all the AP information, and where commands are ran (for your users)
- The second will be for debug reasons (for you, I'd keep this private)
- Make sure the bot has access to both channels and can send messages in them.
- Right-Click the channels and
Copy Channel ID, and hold them for now! - Next, right-click your name and
Copy User ID, copy it down.
- Core
- Download Bridgeipelago
- Stable:
- Unstable (hopefully not):
- All releases (Stable and Pre-Release)
- Or clone the main repo for a crazy experience
https://github.com/Quasky/bridgeipelago.git
- Copy
config.json.templatetoconfig.json
- Download Bridgeipelago
- Discord Config
- Fill out the
DiscordTokenwith your discord app/bot's token - Fill out
DiscordBroadcastChannelwith the channel ID that you'd like the bot to post AP info in - Fill out
DiscordAlertUserIDwith your User ID. (This can also be a group/role in discord) - Fill out
DiscordDebugChannelwith the channel ID of the debug channel
- Fill out the
- Archipelago Config
- Fill out
ArchipelagoServerif you're self-hosting the Archipelago Server - Fill out
ArchipelagoPortwith the port number you've been assigned - Fill out
ArchipelagoPasswordwith password for your Archipelago room (if you have one) - Fill out
ArchipelagoBotSlotwith the slot name of the bot (Not needed if you used the included yaml) - Fill out
ArchipelagoTrackerURLwith the Tracker room URL - Fill out
ArchipelagoServerURLwith the room URL - Fill out
UniqueIDwith the RoomID/seed/an arbitrary value (see UniqueID for detailed usage)
- Fill out
- Item Filter Config
- Set
BotItemSpoilTrapstotrueif you'd like to have traps spoiled, or change tofalseto hide traps - Set
BotItemFilterLevelto the level you'd like:0,1, or2(See the main Readme for details on what the filter levels mean)
- Set
- Relay Config
- Set desired AP to Discord relay options.
- Drawbridge Config
- Set
DiscordBridgeEnabledtotrueif you'd like chat from discord bridged to AP.
- Set
- Meta Config
- Set
FlavorDeathLinktotrueif you'd like custom flavored deathlink messages.
- Set
You're free to leave the Advanced Config section as-is unless you know what you're doing.
Detailed references for the config.json can be found on the main Readme
If you run a selfhosted AP server but elect to not have the webhost module running, the bot will throw a fit unless you disable WebHost-specific functionality.
In the Advanced Config section:
- Set
SelfHostNoWebtotrue
- Create the venv:
python -m venv bridgeipelago - Activate the venv:
source bridgeipelago/bin/activate - Install dependencies:
pip install -r requirements.txt
Bridgeipelago Windows support has been removed in v3.0. Some day I'll add it back.
You can use WSL to run Bridgeipelago VERY easily. WSL Setup
You may need to run
Set-ExecutionPolicy Bypass to enable scripts.1. Create the venv:
py -m venv bridgeipelago1. Activate the venv:
./bridgeipelago/Scripts/Activate.ps11. Install dependencies: pip install -r requirements.txt
Ensure you've joined the venv and set up the config.json file, then run: python3 bridgeipelago.py
> Windows users may need to run py bridgeipelago.py depending on how Python set up its aliases.
You'll see the bot connect to your Discord channel and join the Archipelago game.
You can join the discord and post in the tech-support channel for assistance on setting up the bot.
This value is used to store the bot's files in key'd directories for use in a run.
When changing rooms / AP runs, you'll need to manually purge the data directories and restart Bridgeipelago or run the Swapping rooms via Discord process via discord.
You have the ability to swap rooms without manually editing the config.json of the bot. This process will automatically create new directories, and reload all data needed for running Bridgeipelago.
It's a fairly painless process, but should be done carefully and in order, as to not break Bridgeipelago into a thousand pieces.
(Make sure the room is up, and connectable by clients before you $reloadtracker!)
$setconfig ArchipelagoPort <port>- Sets the port
$setconfig ArchipelagoTrackerURL <tracker URL>- Sets the tracker URL
$setconfig ArchipelagoServerURL <server URL>- Sets the server URL
$setconfig UniqueID <uniqueID>- Sets the new UniqueID
- $reloadtracker
- Tells the tracker to reload to fetch new room data, datapackages, and connection data for the new room
- $reloaddiscord
- Finally, tell discord to reload to make sure it's cleaned out
By setting the values in this order, you can prep the new connection in steps 1-3, create the new directories in step 4, populate new room data with step 5, then finally; refresh discord in step 6
If at any time this process breaks or throws an error here are some common troubleshooting tips:
- Stopping Bridgeipelago fully and restarting it
- Stopping Bridgeipelago, deleting the contents of the data directories, and restarting Bridgeipelago
- Nuking everything and restarting
- Praying to the magic smoke god in your computer to make it work
If none of this works, poke in the discord for help and someone will get you sorted. :)