Discord Tickets
Let players open support tickets in your Discord server and answer them from MonoAdmin: the bot, ticket types, staff roles and closing.
On This Page
Discord Tickets lets players ask for help from inside your Discord server, and lets your staff answer from Discord, the web panel or the game. A bot posts a message with buttons, a player presses one, fills in a short form, and a private channel opens for them and your staff. Every ticket is also a report, so the whole conversation, its files and its history stay in MonoAdmin, whatever happens to the Discord channel.
Everything is set up under Settings > Discord (the page heading reads Discord Tickets). The bot is the shared MonoAdmin bot by default. Tickets can also come from your own Discord bot instead: see Using Your Own Bot.
How It Works
- You add the bot to your Discord server (the MonoAdmin bot, or your own) and choose a channel for the panel message.
- The panel message offers your ticket types as buttons or as a menu.
- A player picks a type. If the type has questions, a form opens in Discord. Submitting it opens a private ticket channel.
- Staff answer in the channel, in the panel or in game. The player answers in the channel, or in game from the report window (
/reportunless you renamed it). - When the ticket closes, the conversation is saved with the report, a transcript can be posted, and the channel is deleted or archived.
Before You Start
- Manage Discord Tickets in MonoAdmin. The default Admin role has it, and the project owner always does. Moderators and Support do not.
- You must be the owner of the Discord server, or an Administrator there. MonoAdmin checks this when the MonoAdmin bot is added. With your own bot it checks the Discord account you linked to your MonoAdmin sign-in instead (see Link Your Discord Account).
- The Discord module must be on under Settings > Features. If its switch is off, Settings > Discord is not available to anyone. Tickets are reports, so keep the Reports System on too, or your staff cannot read them.
If the page shows Discord Tickets Is Not Set Up, the shared MonoAdmin bot is not set up on this MonoAdmin, so you cannot connect a server. Your own bot is no way around it, because it needs the shared bot to be set up too. Contact MonoAdmin support at hello@monoadmin.net.
Connecting Your Discord Server
This is how you connect the MonoAdmin bot. To use your own bot, see Using Your Own Bot.
- Open Settings > Discord and press Add to Discord.
- Discord opens in your browser. Choose your server and accept the permissions it lists.
- You return to the panel, which says Connected to your Discord server and shows the server’s name, who added the bot and when.
The link that Discord opens works once and expires after 10 minutes. If you take longer, the panel says “That link expired. Choose Add to Discord to start again”.
| What the panel says on return | What happened |
|---|---|
| Connected to your Discord server | It worked. |
| Only the server owner or an Administrator can add the bot to a server | You are not allowed in that server. The bot leaves again. |
| That server is connected to another project; only its owner can move it | A Discord server belongs to one project. Only that server’s owner can move it. |
| Adding the bot was cancelled | You declined in Discord. |
| That link expired. Choose Add to Discord to start again | Take it again from the start. |
| Discord did not finish adding the bot. Try again in a moment | A temporary problem on Discord’s side. |
To use a different Discord server, press Connect Another Server. A project holds one Discord server, so this disconnects the current one: the bot leaves it, and its open tickets are closed and lose their channel. See Disconnecting for what that means.
A badge on the connection card shows Connected, Removed (the bot was kicked or the server deleted; Add to Discord Again restores it, and with your own bot you invite it again and connect the server) or Not connected, and whether the bot is Online with Discord right now. With your own bot, the badge is about your bot. If it is offline it reconnects by itself and catches up.
What the Bot Needs in Discord
The bot asks for these permissions when you add it. The invite link for your own bot asks for the same ones.
| Permission | Why |
|---|---|
| View Channels, Send Messages, Embed Links | To post the panel message and write in ticket channels. |
| Attach Files, Read Message History | To post transcripts and read what was said. |
| Manage Channels | To create ticket channels and move or delete them. |
| Manage Roles | To decide who can see each ticket channel. |
It does not ask for Manage Messages or Pin Messages.
MonoAdmin also checks the places it works in. The panel channel needs View Channel, Send Messages and Embed Links. Ticket categories need View Channel, Manage Channels and Manage Roles, plus the permissions to write in the ticket channels inside them. The archive category needs View Channel and Manage Channels. The transcript channel needs View Channel, Send Messages and Attach Files.
What Is Stopping the Bot
When something is missing, the connection card lists it under What is stopping the bot, with the fix:
| The panel says | The fix |
|---|---|
| The bot is missing permissions in the server | Give the bot’s role those permissions in your server settings, under Roles. That is the MonoAdmin role, or your own bot’s role. |
| The bot is missing permissions in a channel | Give the bot those permissions in that channel or category. |
| A channel the bot uses was deleted | Pick another channel in the settings below and save. |
| The server or a ticket category is full | Delete old channels, or add overflow categories to the ticket type. |
Work that hit a problem waits until the problem is fixed, and nothing retries on a timer. Fix the permission in Discord, or pick another channel and save, and the waiting work goes ahead.
Full Mode and Reply-Button Mode
The connection card shows the mode as Full or Reply-button mode. You do not choose it. It depends on whether Discord has allowed the bot to read message text, which Discord decides for the bot as a whole. For the MonoAdmin bot that is the same for every project. For your own bot it is the Message Content Intent switch on your own application (see Using Your Own Bot).
- Full: people type in ticket channels as usual and every message is saved.
- Reply-button mode: the bot cannot read typed messages, so typing in ticket channels is switched off and answers go through a Reply button that opens a form with a text box and file upload. Everything sent that way is still saved with the ticket.
Using Your Own Bot
By default, tickets come from the shared MonoAdmin bot. They can instead come from a Discord bot that you create and own. Every plan can use it.
You need Manage Discord Tickets to set it up. If MonoAdmin staff switched the own bot off for the project, the choice is locked and the page says “Your Own Bot Is Switched Off”: “MonoAdmin staff switched off your own bot for this project. Tickets can still come from the MonoAdmin bot. Contact MonoAdmin support to ask about it.” Support is at hello@monoadmin.net.
What Changes
- Your bot’s name and picture. Tickets, the panel message and answers come from your bot, under its own name and picture. The panel shows your bot’s initials and name, not its picture.
- No MonoAdmin wording in your server. Answers sent from the panel or from game do not end with “via MonoAdmin”. A ticket channel’s topic does not say “MonoAdmin ticket”. When the panel makes a channel or a category for you, your server’s audit log gives the reason as “Created from the panel”.
- Typing works once Message Content Intent is on. It is a switch on your own application, so it does not depend on the MonoAdmin bot. With it on, people type in ticket channels as usual (Full mode). With it off, your bot runs in Reply-button mode, described above.
Set It Up
Open Settings > Discord and choose Your Own Bot under Bot. The other choice is MonoAdmin Bot. The page walks you through four steps.
1. Create a Discord Application. In the Discord Developer Portal, create an application and open its Bot page. The Open the Developer Portal link on the page goes to https://discord.com/developers/applications. Set it like this:
| Setting in the Developer Portal | Where | Set it to |
|---|---|---|
| Public Bot | Bot | Off |
| Message Content Intent | Bot | On |
| Requires OAuth2 Code Grant | Bot | Off |
| Interactions Endpoint URL | General Information | Empty |
A public bot can be added to anyone’s server, which is why it should be off. With an Interactions Endpoint URL set, buttons in Discord cannot reach MonoAdmin. MonoAdmin refuses to save a token while Requires OAuth2 Code Grant is on or an Interactions Endpoint URL is set.
2. Paste the Bot Token. On the Bot page, choose Reset Token and copy the token. Paste it into Bot Token and press Save Token. MonoAdmin checks it with Discord and reads your application’s settings. The token is stored encrypted and never shown again, and it is deleted when you remove the bot or the project. See Data, Privacy and Retention.
3. Invite Your Bot. Press Invite Bot. Discord opens its page for adding your bot to a server in a new tab. You need to be the server’s owner or an Administrator there. Then come back and press I’ve Added It, so the list of servers refreshes.
4. Choose the Server. Pick the server you invited your bot to and press Connect. After that you switch Discord Tickets on and set up the panel message, ticket types and the rest, as described in the sections below.
Link Your Discord Account
Connecting checks you, not only the bot. Your MonoAdmin account needs a Discord account linked under Account > Sign-in & Security, and that Discord account must be the owner of the server you choose or hold Administrator there, through a role or otherwise.
Without a linked account, step 4 says “Link your Discord account first, so we can check you are the server’s owner or an Administrator.” and offers Link Discord, which takes you to your account. Saving a token and connecting are personal actions, so a MonoAdmin support session opened as your account cannot do them.
Token Problems
When you press Save Token, the Bot Token field says what is wrong:
| The panel says | What to do |
|---|---|
| Paste your bot’s token. | The field was empty. |
| That does not look like a bot token. Copy it again from the Bot page. | Copy the whole token again. |
| Discord refused this token. Reset it on the Bot page and paste the new one. | The token is wrong, was reset, or its bot was deleted. |
| That token is not a bot’s. Copy the token from the Bot page. | You pasted something other than a bot token. |
| That is the MonoAdmin bot’s token. Paste your own bot’s token. | Create your own application in step 1. |
| This bot already serves another project. Each bot serves one project. | See One Server and One Bot per Project. |
| Turn off Requires OAuth2 Code Grant on the Bot page, then save again. | Change it in the Developer Portal, then save the token again. |
| Clear Interactions Endpoint URL under General Information, then save again. | Same: clear it in the Developer Portal, then save again. |
Connecting Problems
Pressing Connect can be refused with:
| The panel says | What to do |
|---|---|
| Your bot is not in that server yet. Invite it first. | Do step 3 for that server, then press I’ve Added It. |
| Your linked Discord account must be the server’s owner or an Administrator there. | Only the owner or an Administrator of the server can connect it. |
| That server is connected to another project; only its owner can move it. | A Discord server belongs to one project, as with the MonoAdmin bot. |
| MonoAdmin staff switched off this project’s own bot. | See If Your Bot Is Paused. |
| Discord refused your bot’s token. Paste a new one. | See If Discord Refuses the Token. |
One Server and One Bot per Project
A project holds one Discord server, and a Discord server belongs to one project. A bot serves one project too. If another project already uses the bot, saving its token is refused. Remove the bot from that project first.
Switching Between Bots
You can move from the MonoAdmin bot to your own bot and back. Either way it is a reconnect, even for the same server, because the ticket channels and the panel message belong to the bot that made them. The panel asks you to confirm first, and the dialog says how many open tickets close. Then:
- The old bot is disconnected from the server. Its open tickets close and lose their channel, and their conversations stay in the reports. Anything waiting to be sent to Discord is dropped.
- Discord Tickets switches off. Your other settings are kept. Post the panel message again with Post Panel and switch Discord Tickets on when you are ready.
- Moving to your own bot makes the MonoAdmin bot leave the server. Moving back leaves your bot in the server until you remove it in Discord.
To go back to the MonoAdmin bot, choose MonoAdmin Bot under Bot and press Switch to the MonoAdmin Bot. The alert of a paused bot has the same button. You confirm, and Discord opens to add the MonoAdmin bot, as in Connecting Your Discord Server. Nothing closes until the MonoAdmin bot is added: if you cancel on Discord, your own bot keeps the server.
Pasting a new token for the same application with Replace Token keeps the connection, and nothing closes. A token of a different application is refused while a server is connected: disconnect first, then save the new token.
Removing Your Bot
Remove Bot deletes the saved token and, if a server is connected, disconnects it. The dialog says “The token is deleted and {server} is disconnected: its {n} open tickets close, and their conversations stay in the reports. Your bot stays in the server until you remove it in Discord.” With no server connected it says “The token is deleted. You can add a bot again later.”
Your own bot never leaves a server by itself. Removing the bot, or pressing Disconnect, leaves it in the server until you remove it in Discord. Only the MonoAdmin bot leaves a server when it is disconnected.
If Your Bot Is Paused
When MonoAdmin staff switch your own bot off for the project, the bot is paused. The badge reads Paused and the page says “Your Own Bot Is Paused”: “MonoAdmin staff switched off your own bot for this project, so it is offline and no tickets open. The token, the server and the settings are kept: it resumes when it is switched back on, or you can switch to the MonoAdmin bot.” A plan change never pauses it.
Nothing is lost. Work waiting to be sent to Discord waits, and goes out when the bot resumes. The bot resumes when MonoAdmin staff switch it back on. Or press Switch to the MonoAdmin Bot to use the shared bot instead. Remove Bot still works while the bot is paused.
If Discord Refuses the Token
If you reset the token, or delete the bot, in the Developer Portal, Discord refuses the old one. The badge reads Token Refused and the page says “Discord Refused the Token”: “The token was reset, or the bot was deleted, in the Developer Portal. Paste a new token to bring the bot back.” Press Replace Token and paste a new one. Until then the bot is offline and no tickets open, and MonoAdmin does not keep trying the old token.
Warnings About Your Application
After you save, the page warns about settings that stop things from working:
| The page says | Meaning |
|---|---|
| Your bot is public, so anyone can add it to their server. Servers other than yours are ignored. Turn Public Bot off on the Bot page. | If a public bot is added to another server, MonoAdmin ignores that server. |
| Interactions Endpoint URL is set, so buttons in Discord cannot reach MonoAdmin. Clear it under General Information. | Discord sends button presses to that address instead of to MonoAdmin. |
| Message Content Intent is off, so ticket channels take answers through a Reply button. Turn it on on the Bot page. | The bot is in Reply-button mode. |
What Still Uses the MonoAdmin Bot
Your own bot runs Discord Tickets and nothing else. Discord direct-message notifications and Discord profile pictures still come through the MonoAdmin bot.
Switching It On
The Discord Tickets switch at the top of the page turns the whole feature on. It cannot be turned on until a server is connected and at least one ticket type exists. Off, no new ticket can be opened, the panel buttons are disabled with “Tickets are closed right now”, and tickets already open are still saved until they close. You can set everything up with it off and switch it on when you are ready.
All four tabs below save together with one save bar. A field with a problem is highlighted, and its tab shows a count, such as Ticket Types (1 problem). If someone else saved while you were editing, the page offers Reload Settings and gives up your unsaved changes rather than overwrite theirs.
The Panel Message
On the Panel Message tab:
- Channel: where the message is posted. Pick a channel everyone can read. If you have none, Create a channel in Discord makes one right away.
- Show Ticket Types As: Buttons (one per type, five to a row) or Menu (one menu listing every type, better with many).
- Menu Prompt: the menu’s placeholder, such as “Choose a topic”.
- The message itself has a Title, Description, Colour, an Image, a Small Image and a Footer. Image links must start with
https://. - A Preview shows how it will look in Discord.
Save, then press Post Panel. Later, Update Panel edits the message already in Discord to match what you last saved. Saving also does this by itself. Moving the panel to another channel removes the old message and leaves the new channel without one until you post it. View in Discord opens the posted message.
Ticket Types
Each type is a button or menu entry. You can have up to 25. Order them with the arrows.
| Setting | What it does |
|---|---|
| Label | The button text and the form title, up to 45 characters. |
| Emoji | A Unicode emoji, or a server emoji written like <:name:id>. |
| Button Colour | Blue, Grey, Green or Red. Only used when the panel shows buttons. |
| Description | Shown beside the type in the menu. |
| Category | New ticket channels are created in this category. |
| Overflow Categories | Used in order once the category holds 50 channels. Up to 5. |
| Report Kind | The kind each ticket becomes in Reports: Player Report, Bug, Question or Other. |
| Channel Name | A template. Words in braces are filled in: {type}, {number} and {user}. The default ticket-{number} makes names such as ticket-0042. |
| Staff Roles | These roles see and answer this type’s tickets, in addition to the global ones. |
| Ping Staff When a Ticket Opens | Mentions the staff roles in the new channel. |
| Welcome Message | The first message in each new channel. Use {user}, {type} and {number}. |
| Form Questions | Up to 5 questions asked before the channel opens. With none, the ticket opens as soon as the button is pressed. |
Each form question has a Kind: Short answer, Paragraph, Choice (up to 25 choices, each with a label and a value) or File upload (up to 10 files). It also has a Question (the label), a Key that answers are saved under, Required, optional Help Text and Placeholder, and for text questions the Shortest Answer and Longest Answer. Answers appear in the ticket and in the report’s Discord Ticket details.
Removing a type removes it from the panel after you save. Tickets already open keep working.
New projects start with one type, Support, with one required paragraph question, “What do you need help with?”.
Staff and Limits
The Staff & Limits tab holds settings for all tickets:
- Staff Roles: up to 10 roles that see and answer every ticket. Members who are Administrators or can manage channels in your server can always answer too.
- Show Staff Names: when on, answers sent from MonoAdmin are signed with the staff member’s name. When off, they are signed “Staff”, and saved transcripts show staff as “Staff” too.
- Open Tickets Per Person: from 1 to 5 (the default is 1). At the limit, the player is told to use their open ticket first.
- Wait Between Tickets: seconds, up to 3600, between one person’s tickets. The default is no wait.
Closing
The Closing tab decides what happens at the end. The report keeps the whole conversation and files in every case.
- The Person Who Opened It Can Close It: on by default. Off, only staff can close a ticket.
- Ask for a Reason When Closing: a form asks whoever closes the ticket why. Giving a reason is optional. The reason is saved with the report under Why It Closed.
- When a Ticket Closes: Delete the channel (the default) after a delay of up to 24 hours, 10 seconds by default, or Archive the channel. An archived channel moves to the Archive Category, read only. Archived Channels To Keep (1 to 200, default 50) caps them, and the oldest is deleted beyond it. A server holds 500 channels, which is why deleting is the safe default.
- Transcript Channel: each closed ticket’s transcript is posted here.
- Send the Transcript to the Person Who Opened It: by direct message, when their Discord privacy settings allow it.
A transcript is one self-contained HTML page of the conversation, without internal notes and without the messages that were deleted in Discord. It is stored with the report as a Discord file, and it can be posted to the channel with a link back to the report. MonoAdmin waits for files that are still being copied from Discord before it makes the transcript.
- The copy sent to the person who opened the ticket is made for them when it is sent, and shows what they could read themselves. Unless they are the one who made the report, it also leaves out what was said before they joined the ticket. It never has internal notes or deleted messages.
- The copy stored with the report and posted to the transcript channel leaves out deleted messages too, but keeps the whole conversation from before anyone joined, because it is for your staff. The report in the panel still shows deleted messages to staff, marked “Deleted in Discord”.
- A transcript that is too big is not kept, not posted and not sent. It is over the size limit for a file in a ticket (the same limit as for files copied from Discord), which only a very long conversation or one full of long messages reaches. The conversation is still all in the report, and the ticket’s channel is still deleted or archived as you set it. Nothing is posted in Discord about it.
Auto-Close
Under Auto-Close, turn on Close Quiet Tickets Automatically to close tickets nobody is writing in. A warning with a Keep open button comes first.
- Close When: Nobody has written for a while closes after the set time with no message from anyone. The person who opened it has not answered closes after staff replied and the opener stayed quiet that long. This is the default mode.
- Hours Before Closing: from 1 to 720 (default 48).
- Warn This Many Hours Before: 0 closes without a warning. Otherwise fewer than the hours above, up to 168 (default 12).
A new message, or a press of Keep open, starts the wait again.
Working a Ticket
In Discord
Each ticket channel starts with a welcome message and the player’s answers, and has buttons:
- Close closes the ticket, after asking the person to confirm. Staff always can; the opener can unless you turned that off.
- Claim assigns the report to the staff member who pressed it. To claim, link your Discord account under Account > Sign-in & Security and hold Manage Reports. Otherwise the bot tells you to.
- Reply appears in reply-button mode.
- Keep open appears on the auto-close warning.
Who counts as staff in a ticket: anyone with one of the ticket type’s staff roles or a global one, and anyone who administers the server or manages its channels.
Edited and deleted Discord messages stay visible to staff in the report: an edit shows the latest text with “(edited)”, and a deleted message says “Deleted in Discord” and keeps its text. The player does not see a deleted message in game, and the transcripts leave it out (see Closing). Files that could not be kept are listed with the reason, such as Too large to keep.
When Discord Slows Down New Channels
Discord limits how fast a server may make channels, and the limit can last for minutes. When a player presses a ticket button during it, the bot answers “Discord is limiting how fast channels can be made right now. Your ticket is queued and will open as soon as it can.” The ticket is kept and opens by itself when Discord allows it, and the bot then updates its reply with a link to the channel. Buttons and tickets of other servers are not held up. Up to 2 tickets of one Discord server can wait this way at a time; a player who presses a button after that is told “Discord is limiting how fast channels can be made right now, and tickets from this server are already waiting for it. Please try again in a few minutes.” While the limit lasts, Create Discord Ticket on a report in the panel is refused, and the panel asks you to try again in a moment.
In the Panel and in Game
A Discord ticket appears on the Reports page with a Discord origin and a ticket badge. Replies written in the panel or in game appear in the channel, and replies in the channel appear in the report. Internal notes never go to Discord. Closing the report closes the ticket and reopening the report reopens it, and closing the ticket in Discord closes the report. In the report’s Details, Discord Ticket shows the ticket number, its type, who opened it, their game account when one is known, who is in the channel and the answers to the form. Open in Discord jumps to the channel.
A player can also read and answer their ticket in game from the report window (/report unless you renamed it), as long as their game reported their Discord account. A player who filed the report reads all of it. Someone who is in the ticket without having filed the report, such as a person staff added, sees in game only what was written from the moment they joined the ticket. In Discord, the channel shows them its whole history.
Opening a Ticket for a Report
Staff with Open Discord Tickets can press Create Discord Ticket on any report. Choose the Ticket Type, and Who To Add: the reporter is ticked by default, players the report is about are listed apart under About this report, are not ticked and are never added unasked, and only people who are in your Discord server can be added. Under Someone else from your Discord server you can search your server for anyone else; its hint reads “Search by nickname, username or Discord ID. A ticket can have up to 5 people in total.” The limit of 5 covers the ticked people and the ones you searched for together. Add an optional First Message and press Create Ticket.
Anyone in your Discord server can be added this way, not only the Discord accounts MonoAdmin knows for the report’s players. If no Discord account is known for the reporter or the players, the dialog says so and sends you to the search: “No Discord account is known for the reporter or the players in this report. Search your Discord server below for who to add.”
You can also open a ticket while you start a report: the New Report dialog has an Open a Discord ticket switch, and its People in the ticket box works like the one here. See Reports.
Searching Your Discord Server
Everywhere you choose people for a ticket, the search box reads “Nickname, username or Discord ID”.
- By name. Type at least 2 characters. The search matches the start of a person’s nickname in your server, or the start of their username. It looks only at members of your Discord server, and bots are left out. It shows at most 10 people at a time, so type more of the name to narrow it down.
- By Discord ID. Paste the ID to find exactly that account. A Discord ID is the long number that identifies a Discord account. To copy one, turn on Developer Mode in Discord’s advanced settings, then right-click a person and choose Copy User ID.
- Each result shows the Discord name, the @username and, when MonoAdmin knows a game account for that Discord account, “Player: {name}”.
Changing Who Is in a Ticket
Staff with Open Discord Tickets and Manage Reports can change who is in a ticket after it opened, by editing the players of its report. While the ticket is open, Edit Players shows a box, Update Discord ticket #0002 too, that carries the change over to the channel. Reports explains the box and the toast you get. This is what it does:
- People you add are let into the channel through their Discord account that is in your server. Added people can read everything said in the channel, including what was said before they came. The bot posts one line in the channel: “Curt added @Kai to this ticket.” Only the people added are pinged.
- People you remove are taken out of the channel and lose the ticket in game. The bot posts “Curt removed @Juno from this ticket.” without pinging them.
- Two people stay. Whoever opened the ticket, and the player who filed the report, are never taken out.
- Hidden staff names. With Show Staff Names off, the line starts with “A member of staff” instead of the name, as in “A member of staff added @Kai to this ticket.”
- One change, one line. If the same edit adds and removes people, the bot says both in one message.
- In game. A person you add finds the ticket in My reports in their report window, with only what was written from the moment they joined. A person you remove no longer sees it.
- In the report. A staff-only line in the conversation records it, such as “Curt added Kai to the Discord ticket”, and In the Channel in the report’s Details lists the people now in the ticket.
- A closed ticket. Changing the players of a report whose ticket is closed does not touch the ticket. If the ticket closes while you are editing, the panel says “This report has no open Discord ticket to change.”
The change is recorded in Audit Logs as “Changed who is in a report’s Discord ticket”.
Disconnecting
Disconnect makes the MonoAdmin bot leave your Discord server. Discord Tickets is switched off, the tickets still open are closed and lose their channel, and anything waiting to be sent to Discord is dropped. Everything already saved stays in the reports. The panel message stays in Discord until you delete it. You can add the bot again later.
With your own bot, the same happens except that the bot does not leave: it stays in your server until you remove it in Discord. See Removing Your Bot.
Connecting, saving settings, posting the panel, disconnecting, and saving or removing your own bot are all recorded in Audit Logs. If something goes wrong, see Troubleshooting.