Это первая статья про создание бота для Discord. В конце статьи находятся ссылки на следующие части, со временем они будут дополняться. Статьи следуют друг за другом, без каких-либо "информационных дыр". Если нашли опечатку или неточность, отпишите о проблеме в комментариях или в личных сообщениях, максимально оперативно всё поправим! А теперь переходим непосредственно к созданию бота. Создание тестового сервера Включение режима разработчика Создание приложения и получение токена Добавление бота на сервер Установка библиотеки discord.py Первые строчки кода Гайд будет максимально подробный, поэтому и начинать будем с создания тестового сервера. Зачем он нужен? Лишь для вашего удобства и безопасности, если у вас уже есть большой сервер, тем более не стоит сразу добавлять на него разрабатываемого бота. Никто не защищён от багов и дыр в безопасности. Заходим в дискорд  Слева видим список серверов, листаем в самый низ до кнопки "Создать сервер". Создаём сервер по любому из предложенных шаблонов. Это необязательно, но очень желательно. В режиме разработчика появляются некоторые полезные элементы для удобства разработки, например, в меню пользователя появляется пункт, который позволяет скопировать его ID. Чтобы включить этот режим, заходим в настройки.  В категории "Настройки приложения" ищем "Расширенные". И включаем режим разработчика. Для начала нам нужно зайти на страницу создание приложений и нажать New Application.   После этого вам предложат назвать ваше приложение (Потом можно будет изменить).  После создания, попадаем на страницу настройки приложения. В меню выбираем "Bot". На данной странице нажимаем на "Add Bot". Скопируем токен и сохраним его. Так же, сразу можно выдать дополнительные разрешения боту, чтобы потом об этом не задумываться. В меню ищем пункт OAuth2  –>  URL Generator. В поле SCOPES выбираем bot и applications.commands. В появившемся ниже поле выбираем Administrator, это более удобно для тестирования. Но когда бот будет работать в продакшене, лучше выставлять только те права, которые правда нужны, потому что никто не защищён от потери токена, а с правами администратора это может стать очень большой проблемой. Копируем появившеюся ниже ссылку и вставляем в адресную строку браузера. Если у вас не выполнен вход в браузере, его необходимо произвести. После чего выбираем тестовый сервер из списка и нажимаем "Продолжить" и далее "Авторизовать". Ура! Наш бот на тестовом сервере! Для начала нужно установить python, данный этап не расписан, но желательно установить версию 3.10 (Последняя версия на момент написания 3.10.5). Если у вас Windows, для проверки можете использовать следующую команду В ответ получите версию вашего python. Устанавливать будем не стабильную, а разрабатываемую версию, для этого пропишем следующую команду. (Это можно делать уже внутри проекта). Хотя некоторые IDE устанавливаю git вместе с собой, можете скачать его отдельно. Если всё же хотите установить стабильную, релизную версию, пропишите следующую команду. Подробнее про установку библиотеки и саму библиотеку можно прочитать тут. Пришло время писать код! Программирование в статьях будет происходить в PyCharm, хоть это и довольно тяжёлая IDEA, она удобная и бесплатная для студентов. Не советую создавать проект через внутренний интерфейс, может появиться множество ненужных папок и файлов, вместо этого создадим папку проекта вручную и откроем как пустой проект. Для этого заходим в PyCharm, далее File –> Open. P.s. Не обращайте внимания на другую тему IDE. В появившемся окне ищем созданную папку, выбираем её и нажимаем "Ok". Обратите внимание на то, что нужно просто нажать по папке, а не проваливаться в неё. Если PyCharm автоматически не создал main.py, создайте его вручную. Вставляем код ниже и запускаем. В консоли вы увидите логи запуска бота. Они могут быть красными, не бойтесь, сначала прочитайте сами сообщения, они скорее, всего просто информационные. Идём в дискорд и используем нашу первую команду. Немного объясним данную структуру. Поскольку это обычная команда, вся информация хранится в ctx(Переменная одноимённого класса). Она имеет следующие поля: И следующие команды: Если вы знакомы с синтаксисом языка, то данный список можно получить с помощью встроенной функции dir. На более правильно прочитать документацию про Context. Сразу отвечу всем комментаторам. Да - подобных статей море, в том числе есть официальная документация. Но поскольку в моих планах есть создать серию статей, я хотел бы, что бы в них было описано всё, начиная с самых азов.  И небольшое примечание. Статьи строятся на основании того, что у вас есть опыт и знания программирования на python.  Часть 1 (Текущая) Часть 2  Developer