Docs · Start here

Your first bot, from payment to online

All docs

This takes about ten minutes the first time. You need a bot token. Your own bot's code can come later: every new Python or JavaScript server has a small starter bot on it, so you can check the token works first.

Before you start: have a bot and a token

If you have already made a bot in the Discord Developer Portal and invited it to a server, skip this section.

  1. Go to discord.com/developers/applications and press New Application.
  2. Open Bot in the left menu. Press Reset Token, copy the token and keep it somewhere private for a few minutes. Discord only shows it once.
  3. Still on that page, turn on Message Content Intent if your bot reads what people type (prefix commands like !help need it; slash commands do not).
  4. Open OAuth2, then URL Generator. Tick bot and applications.commands, pick the permissions your bot needs, and open the link at the bottom to add the bot to your server.

1. Pick a plan

Open the checkout page (every plan button on the site leads there). Most bots fit on Flurry. On that page you choose:

  • the plan, and monthly, 6-month or 12-month billing,
  • whether to start with the 7-day free trial (Flurry, monthly),
  • Python, JavaScript or Java, and which version. You can switch later in the panel,
  • a name for your server (optional),
  • your email address, and a discount or referral code if you have one.

The price updates as you choose. Press Continue to secure payment and Stripe takes the card. Use an email address you can get into: it becomes your control panel login.

2. Set your password

Within a minute you get an email with the subject Your Flurry server is being built. We never email passwords, so press Set your password in that email, enter the same address, and follow the reset link that arrives.

Nothing arrived after five minutes? Check spam, then tell us.

3. Sign in and open your server

Go to panel.snowservers.com and sign in with your email address and the password you just set. Your server is listed on the first page. Click it.

4. Add your token and meet the starter bot

Until there is a token, a new server sits at Starting and the console ends with Waiting for a bot token. That is expected. (Java servers have no starter bot. Their console ends with There is no .jar to run instead: add the token, then go straight to step 5 and upload your jar. Java bots.)

  1. Open Startup.
  2. Paste your token into Bot token. It saves by itself a moment after you paste.
  3. Open Console and press Restart.

The console prints Logged in as YourBot and an invite link. In a server the bot is in, type /ping. New slash commands can take a minute to show up the first time.

If the token is wrong, the console says so in a line starting with [SnowServers] Hint:. Fix it and restart.

5. Put your own bot on

Two ways. Use whichever matches how you work now.

Upload your files

  1. Open Files. Delete the starter files (bot.py and requirements.txt, or index.js and package.json).
  2. Press Upload, or drag files onto the page. Upload your code and its requirements.txt (Python) or package.json (JavaScript). Do not upload venv or node_modules; packages are installed here.

A whole folder is easier as a zip. See Uploading files.

Or deploy from GitHub

  1. If you uploaded anything in Files, delete it. The starter files can stay: the clone replaces them. Anything else stops the clone, so it never overwrites your work.
  2. On Startup, paste the repository link into Git repository, for example https://github.com/you/your-bot.
  3. Private repository? Add a read-only token in Git access token. How to make one.

On the next start the repository is cloned in, and every restart after that pulls your newest commits. More about Git deploy.

Your code reads the token from the environment

Do not paste the token into your code. Read it like this:

# Python
import os
client.run(os.environ["BOT_TOKEN"])

// JavaScript
client.login(process.env.BOT_TOKEN);

If your code already has the token typed in, change that line before you upload or push it. Why it matters.

6. Start it

Open Console and press Restart. You will see packages install, a [SnowServers] Starting: line saying which file it found, then your bot's own output. It stays running when you close the page, and starts again by itself if it crashes.

It picked the wrong file? Set Bot file on Startup, for example src/main.py or npm start. Startup settings.

It did not start

Read the last lines of the console. Most failures get a [SnowServers] Hint: line saying what to change. If not, look for the error in Troubleshooting. Want a message in Discord when it stops? Set up crash alerts.

Something here wrong or out of date? Tell us and it gets fixed.