# PartyUp! Discord Bot Documentation
[Invite the bot to your server!](https://discord.com/api/oauth2/authorize?client_id=805603088076767283&permissions=2416274512&scope=bot)
[PartyUp Support Discord Server](https://discord.gg/uMRAypfWz6)
![](https://i.imgur.com/7gPuRZJ.png)
# Overview
This bot is in beta. It may still have some bugs to work out. If you find issues, please join the [support server](https://discord.gg/uMRAypfWz6) and let me know (@Apollonaut#9012). Thanks!
PartyUp! Is a discord bot for managing campaign members, roles, and channels on a server. **Its intended use case is for servers with 2+ RPG campaigns going at once.** Here are some examples of what you can do with PartyUp!:
1) Create campaigns, choosing their names and the people running them
2) Add and remove players for the campaigns
3) Create channel categories and populate them with channels, with automatic role permissions for each campaign. The GM of the campaign gains permissions to pin messages and move people in voice channels in their campaign's channel category.
4) Change a set of channels to be Public (anyone can see, but only mods and that campaign's members can send messages) or Private (only mods and that campaign's members can see)
5) Create channel category templates for the server, in case you want to customize the names and number of voice and text channels
6) Delete a campaign from the server (channels and associated roles)
## Recommendations for Getting Started
If you want to give several bots access to the campaign channels, **create a role for those bots** before making a new campaign on the server, and assign that role to the bots. When creating a campaign, it will ask if you'd like to @mention that bot role, and it will handle the permissions you need for those channels.
To set up the server's database, try running `!campaigns` before anything else, and verify that you get a ``"- No Campaigns"`` response.
As for the default channel template, I've put this together:
```
Default Template (Private Channels: only bots, moderators, and campaign role has access)
Text channels: chat, dicerolls, notes, visuals
Voice Channels: Voice, Private
```
# Basic Commands
### `!docs`
*Sends the link to these docs to the chat.*
### `!invite`
*Sends the Discord bot invite link to the chat.*
### `!prefix <newPrefix>`
*Changes the prefix used for the bot.*
> Example: `!prefix $` sets the bot's prefix to `$`
You can also @mention the bot, avoiding potentially changing other bots' prefixes:
> `@PartyUp! prefix $`
### `!help`
*Shows a briefing of the commands list. Use the arrow emojis to navigate the embed.*
---
# Campaign Commands
### `!campaigns`
*Shows how many active campaigns are running on the server.*
**Aliases:** showcampaigns, allcampaigns
---
### `!createCampaign`
*Builds a new campaign for the server. If you are missing any values in the initial command call, it will prompt you for those values.*
**Permissions needed:** Manage Channels, Manage Roles
**Aliases:** register, createcampaign, addCampaign, addcampaign, buildCampaign, buildcampaign, makeCampaign, makecampaign, newCampaign, newcampaign
#### Valid calls:
> !createCampaign
!createCampaign "My Campaign"
!createCampaign "My Campaign" gm @person
!createCampaign "My Campaign" gm @person [ARGS]
#### ARGS:
Example usage: `!createCampaign "My Campaign" gm @person "system:Homebrew System" "vtt:Owlbear Rodeo" minors:no maxplayers:4`
If you put spaces in an argument, put quotes around the entire thing. Example: `"system:Dungeons & Dragons 5e"`. The order of the arguments does not matter. Do not include any < > brackets.
> **role:<Campaign_Role_Mention>** : forces the campaign to inherit an existing role instead of making a new role.
> **system:<name_of_system>** : sets the game system for the campaign. This is an open text value.
> **vtt:<name_of_vtt>** : sets the Virtual Tabletop for the campaign. This is an open text value.
> **minors:<yes/no>** : sets whether or not minors (under 18 years of age) are allowed in the campaign.
> **maxplayers:<integer\>** : sets the maximum number of players. This is not hard-enforced by any code, so you can always add more players than this number later. You can also change this number using the `!setMaxPlayers` command later.
---
### `!removeCampaign <CampaignRoleMention>`
*Removes a campaign from the server, including any associated roles and channels.*
**Permissions needed:** Manage Channels, Manage Roles
**Aliases:** removecampaign, deletecampaign, deleteCampaign, destroycampaign, destroyCampaign, nukecampaign, nukeCampaign
---
### `!info <CampaignRoleMention>`
*Shows the information embed for a campaign.*
**Aliases:** inspect, players, showInfo, showinfo, displayInfo, displayinfo, getInfo, getinfo
---
### `!assignGM <CampaignRoleMention> <UserMention>`
*Changes a campaign's registered GM to another person.*
**Permissions needed:** Manage Roles
**Aliases:** assigngm, makeGM, makegm, setGM, setgm, setDM, setdm
If you do not want to replace the old GM, you can add the word "add" or "noreplace" to the end of this command and it will add another person to the GM permissions for the campaign without removing the old GM's permissions.
---
### `!setMaxPlayers <CampaignRoleMention> <newLimit (integer)>`
*Changes the maximum number of players for a campaign. This is not hard-enforced by the code, but will show up when you use the* `!info @MyCampaign` *command*.
---
### `!addplayer <CampaignRoleMention> <UserMention>`
*Adds the campaign's role to the player you mention.*
**Permissions needed:** Manage Roles
---
### `!addplayers <CampaignRoleMention> <UserMention> ... <UserMention>`
*Adds the campaign's role to the players you mention (you can mention several users).*
**Permissions needed:** Manage Roles
---
# Channel Management Commands
### `!makeprivate <CampaignRoleMention>`
*Changes a publicly accessible category of campaign channels to Private mode (only that campaign's members can see the channels).*
**Permissions needed:** Manage Channels
---
### `!makepublic <CampaignRoleMention>`
*Changes a private category of campaign channels to Public mode (anyone in the server can see the channels, but only the campaign's members can send messages).*
**Permissions needed:** Manage Channels
---
# Channel Category Templates
### `!maketemplate`
*Builds and saves a channel category template for your server.*
**Permissions needed:** Manage Channels
---
### `!removetemplate <TemplateNumber>`
*Removes a channel category template from your server. This shifts the numbers of other existing templates down by 1, use with caution.*
**Permissions needed:** Manage Channels
---
### `!showtemplates`
*Shows the existing templates for your server.*
---