# Setting up your Custom Bot (/custombot)

















## Prerequisites [#prerequisites]

<Callout type="info" emoji="👑">
  This feature requires a [Premium Subscription](https://tickety.top/premium).
</Callout>

Before you begin, make sure you meet the following requirements:

* [x] A Tickety Premium 👑 subscription
* [x] The Custom Bot 👑 add-on on that subscription
* [x] Permission to invite and add bots to your Discord server

Both are bought on **Premium & AI** in the dashboard. See [What is Tickety Premium?](/premium) if you do not have them yet.

<Steps>
  <Step>
    ### Create an application [#create-an-application]

    Open the [Discord Developer Portal](https://discord.com/developers/applications) and press **New Application** at the top right of the Applications page.

        <img alt="New Application on the Applications page" src="__img0" />
  </Step>

  <Step>
    ### Name it [#name-it]

    1. Type a name under **Name**. You can change it later.
    2. Tick the box to agree to the Discord Developer Terms of Service and Developer Policy.

    Then press **Create**.

        <img alt="Name and the terms box in Create a new app" src="__img1" />
  </Step>

  <Step>
    ### Customize your bot [#customize-your-bot]

    You land on **General Information** for your new app.

    1. **App Icon** becomes your bot's avatar in Discord.
    2. **Name** is the app's name.
    3. **Description** shows in the About Me section of your bot's profile.

    Save your changes in the bar that appears at the bottom of the page.

        <img alt="App Icon, Name and Description on General Information" src="__img2" />
  </Step>

  <Step>
    ### Set up the bot user [#set-up-the-bot-user]

    Open **Bot** in the sidebar.

    1. **Public Bot**: on
    2. **Server Members Intent**: on
    3. **Message Content Intent**: on

    Tickety needs both intents and switches them on for you when you save your token. If saving fails with **Missing required intents**, Discord did not accept the change: turn both on here by hand, then save again in the dashboard. **Presence Intent** is not needed.

        <img alt="Public Bot and the two intents on the Bot page" src="__img3" />
  </Step>

  <Step>
    ### Copy the token [#copy-the-token]

    Still on **Bot**, press **Reset Token**, confirm, and copy the token Discord shows. It is only shown once.

        <img alt="Reset Token on the Bot page" src="__img4" />
  </Step>

  <Step>
    ### Add it to Tickety [#add-it-to-tickety]

    Open your [Tickety Dashboard](https://tickety.top/dashboard), pick your server and click **Personalizer** in the sidebar.

    1. Switch **Bot Personalizer** on.
    2. Paste the token into **Bot Token**, then press **Save Changes** in the bar at the bottom.
    3. Press **Invite** and add your bot to your server. The button appears once the token is saved.

        <img alt="Bot Personalizer, Bot Token and Invite on the Personalizer page" src="__img5" />
  </Step>

  <Step>
    ### Check it is online [#check-it-is-online]

    Your bot shows up online in your server's member list. Read [After your bot is online](#after-your-bot-is-online) before you remove the Tickety labelled bot.

        <img alt="The custom bot online in the member list" src="__img6" />
  </Step>
</Steps>

Congratulations on setting up your Custom Bot!

## Personalizer settings 👑 [#personalizer-settings-]

Everything your bot shows in Discord is set on this one page.

* **Bot Personalizer**: The toggle in the page header. On, with a valid token saved, your bot comes online and runs Tickety for this server. Off, your bot is stopped and the regular Tickety bot takes over again. It starts off.
* **Reboot**: Restarts your bot. It only appears while the toggle is on. Use it if your bot has gone quiet.
* **Invite**: Opens Discord's authorization page with your bot preselected for this server and the permissions Tickety needs already ticked. It only appears once a token has been saved and Discord confirmed the application.
* **Bot Avatar**: Your bot's profile picture, sent straight to Discord when you save. Press **Upload Image** to pick a file. The accepted formats are PNG, JPG, GIF and WEBP, up to 8 MB.
* **Bot Name**: The username your bot shows in Discord. Keep it to 32 characters or fewer: the box lets you type more, but the save is rejected. Markdown and mentions are stripped.
* **Bot Token**: The token from your Discord application. It is hidden by default, with an eye button to reveal it while you paste. Once saved it comes back masked, so copy it somewhere safe if you need it again.
* **Bot Status**: The coloured dot next to your bot in the member list: `Online`, `Idle` or `DND`. It starts on `Online`.
* **Bot Activity**: The verb Discord puts in front of your text: `Playing`, `Listening`, `Watching`, `Competing` or `Custom`. `Custom` shows your text on its own with no verb. It starts on `Playing`.
* **Activity Text**: The text after the verb, up to 128 characters. Markdown and mentions are stripped, and there are no placeholders here: the text appears exactly as you type it.
* **Visualization**: A live preview of the avatar, name, BOT tag, status dot and activity line. It is preview only, and it is hidden on narrow screens.

Saving a new token restarts your bot. Changing only the status or the activity updates the running bot without a restart.

<Callout type="warn">
  Discord rate limits name and avatar changes. Saving a second change straight after the first can fail with **Failed to update bot profile on Discord**. Wait a moment and save again.
</Callout>

<Callout type="info" emoji="👑">
  This feature requires a [Premium Subscription](https://tickety.top/premium).
</Callout>

## After your bot is online [#after-your-bot-is-online]

* Run a command such as `/new` to confirm your bot answers. Until it does, keep the Tickety labelled bot in the server.
* Once your bot answers, remove the Tickety labelled bot. Only one of them should be handling your tickets.
* Set your [Command Permissions](/server/command-permissions) on the Tickety dashboard. Discord's own Integrations screen cannot manage permissions for a custom bot, so the dashboard is where they are saved and your bot enforces them directly. If you already set permissions in Discord, the page offers to import them.
* Everything else in your configuration is unchanged. Panels, forms, logs and transcripts carry on exactly as before, now sent under your bot's name.

## When your custom bot stops [#when-your-custom-bot-stops]

Your bot goes offline and the Tickety labelled bot takes over again in three cases:

* Premium ended on this server.
* The Custom Bot add-on was removed from the subscription.
* The **Bot Personalizer** toggle was switched off and saved.

Your token, name, avatar, status and activity are all kept. Turning the toggle back on with premium and the add-on active brings your bot back with the same settings.

## Troubleshooting [#troubleshooting]

<Accordions>
  <Accordion title="Invalid bot token">
    Discord could not verify the token. Open the `Bot` tab in the Developer Portal, press **Reset Token**, copy the new one and paste it again. A token that has been reset since you saved it stops working immediately.
  </Accordion>

  <Accordion title="Missing required intents">
    Tickety could not switch the privileged intents on for you. Enable **Server Members Intent** and **Message Content Intent** yourself on the `Bot` tab, then save again.
  </Accordion>

  <Accordion title="Failed to update bot profile on Discord">
    Discord rejected the name or avatar change, usually because it is rate limiting profile edits. Wait a few minutes and save again.
  </Accordion>

  <Accordion title="Image size is too large (8 MB max)">
    The avatar file is over the limit. Use a smaller image, up to 8 MB, in PNG, JPG, GIF or WEBP. Any other file type is refused with **Please select a valid image file**.
  </Accordion>

  <Accordion title="No custom bot set up yet">
    Nothing has been saved on this page yet. Create an application in the Discord Developer Portal, paste its bot token into **Bot Token** and save.
  </Accordion>

  <Accordion title="There is no Invite button">
    The button appears only after a token has been saved and Discord confirmed the application. Save a valid token first.
  </Accordion>

  <Accordion title="Clicking anything opens an upgrade dialog">
    Without Premium the page is read-only and opens the premium prompt. With Premium but no add-on it opens a Custom Bot prompt instead. Buy the missing part on **Premium & AI**, then reload the page.
  </Accordion>

  <Accordion title="The bot is online but does not answer commands">
    Check it was invited with the permissions Tickety needs, using the **Invite** button rather than a link of your own. If it still does not answer, press **Reboot**.
  </Accordion>
</Accordions>

## Where to go next [#where-to-go-next]

* [What is Tickety Premium?](/premium): the plan and the add-on your bot needs.
* [Managing your subscription](/premium/billing): adding or removing the Custom Bot add-on later.
* [Command Permissions](/server/command-permissions): who can run which command, which is where custom bots differ.
* [Custom Bot Intents Application](/custombotintents): the answers Discord asks for once your bot passes 10,000 users.
