Setting Up Your Application
A custom bot is Graffiti running under a Discord application you own, so your members see your name and avatar instead of ours. Discord asks you to create that application; this page walks the whole thing, start to finish. It takes about five minutes and you only do it once.
You need Premium on the server you want the bot in. Everything below happens in Discord's Developer Portal, and the last step brings you back here.
1. Create the application
- Open the Discord Developer Portal and sign in with the Discord account you use.
- Click New Application, top right.
- Give it a name and accept the developer terms. This name is what your members will see, so use the one you want — you can change it later.
You now have an application. It is not a bot in any server yet, and nothing is running.
2. Name it, and give it a face
Open the application and look at the left sidebar. Two pages matter here.
General Information
- Name — what members see in the member list and on every message it sends.
- App Icon — the avatar. Square, at least 512×512, PNG or JPG.
- Description — the bio shown on the bot's Discord profile. A line saying what it does for your server is plenty.
Save your changes at the bottom of the page.
Bot
The Bot page has its own Username and Avatar, and those are the ones members actually see. Discord keeps them separate from the application's, and they do not copy across, so set them here too.
Discord will not let two bots share a username, so a common name may be taken. The name and avatar belong to the application, not to a server, so if you run this bot in several servers a change applies to all of them.
3. Turn on the intents
Still on the Bot page, scroll to Privileged Gateway Intents. These are permissions to receive certain events at all, and Discord has them off by default. Graffiti checks them when it signs in.
| Intent | Switch it on? | What it is for |
|---|---|---|
| Presence Intent | Yes | Member online status. Nothing reads it today, but switching it on now means you won't be sent back here when something does. |
| Server Members Intent | Yes, required | Welcome messages, auto-roles on join, anti-bot checks and the member side of moderation. |
| Message Content Intent | Yes, required | Reading messages to scan links and images, count activity, and run prefix commands. |
Switch all three on and save. Two of them Graffiti needs immediately: if either is off, Graffiti won't be able to sign in as your bot, and the Custom bot page will show it as offline. The third costs nothing to have on, and having it on already means a later Graffiti release can use it without every server owner making a trip back here.
Once your application is in more than 100 servers, Discord makes you apply for these intents rather than just switching them on. Almost nobody setting up a custom bot for their own community is anywhere near that.
4. Copy the token
The token is the password for your bot. It is on the Bot page, under the username.
- Click Reset Token. Confirm, and enter your 2FA code if Discord asks.
- Click Copy.
Discord shows a token once. There is no way to look it up again later, for you or for anyone else, which is why the button says Reset rather than Show. If you lose it, reset it again and use the new one.
Anyone holding this token can act as your bot. Do not post it in a channel, a screenshot or a support ticket. If it ever gets out, reset it — that invalidates the old one immediately.
5. Give it to Graffiti
- Open your server's settings on the dashboard and go to Custom bot.
- Paste the token and connect. Graffiti checks it with Discord before storing anything, and tells you straight away if it is wrong.
- Use the invite button that appears, and add the bot to your server.
Your token is encrypted before it is saved and is never shown again, in the dashboard or anywhere else. Replacing it is the only way to change it.
From there the page finishes on its own. It watches for your bot signing in and joining, and turns into the management screen once it is running. There is nothing to confirm.
Common questions
My bot is in the server but shows as offline.
Almost always the token or the intents. If you reset the token in the portal after giving it to Graffiti, the old one stopped working the moment you did — paste the new one in under Replace token. If you have not touched the token, check that the intents are still on.
My bot is online but ignores everything.
Check Message Content Intent. Without it Discord connects the bot and then delivers empty messages, so nothing it reads has anything in it. Turn it on and the bot picks up on its own the next time it connects.
If the intents are right, check the bot's role in Discord: a module whose permission is missing fails quietly for that action rather than stopping the rest of the bot.
Can one application serve several of my servers?
Yes. Set it up on each Premium server with the same token. Discord gives an application one name, one avatar and one status, so those apply everywhere it runs — the Custom bot page tells you when that is the case and names the other servers.
What happens if Premium comes off the server?
Your bot pauses there and the main Graffiti bot takes the server back, so it is never left without one. Nothing is deleted: your settings, your tickets and the bot's setup are all kept, and putting Premium back resumes it exactly as it was.
Do I still need the main Graffiti bot in the server?
Keep it. It stays quiet while your bot is running, and it is what spots your bot arriving and steps in if yours goes down. Only one of the two ever answers.
How do I remove my custom bot?
On the Custom bot page, under Danger zone. It affects that server only: your settings and history stay, the bot keeps running in any other server you set it up on, and your application in Discord is untouched.