Как создать первого бота Discord в 2026 году на JavaScript (discord.js) или Python (discord.py) — от регистрации до развёртывания, шаг за шагом.
Grow your server faster with Rally
Rally gives server owners community management tools, member engagement features, and discovery placement — all in one bot. Add it to your server in 2 minutes.
Add Rally to your server →Создать первого бота Discord проще, чем кажется. Не нужна степень в информатике или годы опыта программирования. В 2026 году создание и развёртывание функционального бота занимает выходные при целенаправленной работе.
Это руководство проведёт через весь процесс: регистрацию бота, написание первой команды, локальное тестирование и живое развёртывание. В конце у тебя будет бот, работающий на сервере.
Бот Discord — это программа, подключающаяся к Discord через API и реагирующая на события: когда кто-то вводит команду, реагирует на сообщение, входит на сервер и т.д.
Ключевые концепции:
/команда) вместо команд с префиксом (!команда). Слэш-команды официально поддерживаются и рекомендуются.Здесь бот официально существует в системе Discord.
Процесс:
Создай пользователя-бота:
Настрой параметры бота:
Нужна специальная ссылка для добавления бота на сервер.
В Developer Portal:
botSend Messages (необходимо для любого бота)Manage Messages (если делаешь модерацию)Add Reactions (если бот реагирует на что-то)Connect + Speak (если это музыкальный/голосовой бот)Send Messages + Read Messages (минимально жизнеспособное)Не используй разрешение Администратора без крайней необходимости. Чрезмерные разрешения — риск безопасности.
Два основных варианта для начинающих:
Discord.js — самый популярный фреймворк для ботов Discord. Огромное сообщество, масса туториалов и отличная документация.
Плюсы:
Минусы:
Начало работы:
npm init -ynpm install discord.jsБолее простой синтаксис, отлично для начинающих, хорошо для изучения основ.
Плюсы:
Минусы:
Начало работы:
pip install discord.pyРекомендация для начинающих: Знаешь Python — используй discord.py. Знаешь JavaScript — используй discord.js. Не знаешь ни того ни другого — Python проще в изучении, но JavaScript имеет больше ресурсов онлайн. Выбери один и посвяти себя.
Вот минимально рабочий бот Discord на Python, реагирующий на команду:
import discord
from discord.ext import commands
# Создаём бота с префиксом команд и intents
intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix='!', intents=intents)
@bot.event
async def on_ready():
print(f'{bot.user} подключился к Discord!')
@bot.command(name='hello', help='Говорит привет')
async def hello(ctx):
await ctx.send(f'Привет {ctx.author.name}!')
@bot.command(name='ping', help='Отвечает pong')
async def ping(ctx):
await ctx.send('Pong!')
bot.run('ТУТ_ТВОЙ_ТОКЕН')
Что это делает:
!hello и !pingДля запуска:
'ТУТ_ТВОЙ_ТОКЕН' своим реальным токеном из Шага 1bot.pypython bot.py!hello в любом каналеДо развёртывания тестируй бота локально (на своём компьютере).
Настрой тестовый сервер:
Распространённые ошибки:
Тестируй тщательно. Бот с багами в продакшне — конфуз.
Понял основы — расширяй функциями.
Пример Python — простая команда экономики:
@bot.command(name='balance', help='Проверить баланс монет')
async def balance(ctx):
# В реальном боте это запрашивало бы базу данных
# Пока просто возвращаем тестовое значение
await ctx.send(f'{ctx.author.name}, у тебя 100 монет!')
@bot.command(name='roll', help='Бросить кубик (1-6)')
async def roll(ctx):
import random
result = random.randint(1, 6)
await ctx.send(f'{ctx.author.name} выбросил: **{result}**')
Каждая команда — простая функция. Добавляй сколько угодно.
Локальный хостинг работает для тестирования, но бот останавливается при закрытии ноутбука. Развёртывай на сервере для круглосуточной работы.
Replit (проще всего для начинающих):
Railway.app (современный, надёжный):
Glitch (похоже на Replit):
Важно: Не хардкодь токен в код, который пушишь на GitHub. Используй переменные окружения:
import os
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
bot.run(TOKEN)
Создай файл .env локально (добавь в .gitignore чтобы не коммитить):
DISCORD_TOKEN=твой_реальный_токен_здесь
На Replit/Railway устанавливай токен как секретную переменную окружения в настройках платформы (не в коде).
Ошибка 1: Хардкодинг токена Никогда не вставляй токен в код, который пушишь на GitHub. Боты с утёкшими токенами компрометируются мгновенно. Используй переменные окружения.
Ошибка 2: Не обрабатывать ошибки Бот падает на неожиданном вводе. Добавь обработку ошибок:
@bot.command()
async def divide(ctx, a: int, b: int):
try:
result = a / b
await ctx.send(result)
except ZeroDivisionError:
await ctx.send('Нельзя делить на ноль!')
except ValueError:
await ctx.send('Пожалуйста, введи допустимые числа!')
Ошибка 3: Не соблюдать лимиты запросов Discord ограничивает скорость отправки сообщений. Не спамь API. Добавляй задержки между массовыми действиями.
Ошибка 4: Игнорировать intents Многие боты для начинающих не работают из-за невключённых необходимых intents в Developer Portal. Проверь intents перед развёртыванием.
Ошибка 5: Слишком амбициозный охват Не пытайся создать систему экономики, модерацию, музыку и 50 команд в первом боте. Начинай с 3-5 простых команд. Расширяй по мере освоения.
Теперь есть базовый бот:
/команда вместо команд с префиксомПервый бот Discord — проект на выходные. Первый хороший бот — месяц практики. Первый бот, используемый 1 000 серверов — месяцы итераций, разработки функций и построения сообщества. Начинай сейчас, итерируй постоянно, не усложняй.