Vytvoření vašeho prvního Discord bota je snazší, než si myslíte. Nepotřebujete titul z informatiky ani roky programátorských zkušeností. V roce 2026 vám sestavení a nasazení funkčního bota zabere víkend, pokud se soustředíte.
Tento průvodce vás provede celým procesem: registrací vašeho bota, napsáním vašeho prvního příkazu, lokálním testováním a nasazením do provozu. Na konci budete mít bota spuštěného na vašem serveru.
Pochopení toho, co je Discord bot
Discord bot je program, který se připojuje k Discordu prostřednictvím API a reaguje na události: když někdo napíše příkaz, reaguje na zprávu, připojí se k serveru atd.
Klíčové koncepty:
- Aplikace vs. Bot: Vaše "aplikace" je registrována v Discord Developer Portal. "Bot" je uživatelský účet spojený s touto aplikací. Jedna aplikace má jednoho bota.
- Tokeny: Tajný klíč, který ověřuje vašeho bota. Nikdy ho nesdílejte. Je to jako heslo k vašemu botovi.
- Intents: Oprávnění, která umožňují vašemu botovi vidět určité události (zprávy, reakce, změny stavu členů atd.). Povolíte pouze to, co potřebujete.
- Příkazy: Boti reagují na příkazy. Moderní boti používají lomítkové příkazy (
/command) namísto příkazů s předponou (!command). Lomítkové příkazy jsou oficiálně podporovány a doporučovány. - Události: Váš bot naslouchá událostem Discordu (odeslaná zpráva, přidána reakce, připojen člen) a reaguje na ně.
Krok 1: Zaregistrujte svého bota v Discord Developer Portal
Zde váš bot oficiálně existuje v systému Discordu.
Proces:
- Přejděte na Discord Developer Portal
- Přihlaste se pomocí svého účtu Discord
- Klikněte na "New Application"
- Pojmenujte ji (např. "Můj první bot")
- Klikněte na "Create"
- Nyní jste v nastavení vaší aplikace
Nyní vytvořte uživatele bota:
- Přejděte do sekce "Bot" (levý postranní panel)
- Klikněte na "Add Bot"
- Pod uživatelským jménem bota uvidíte tlačítko "TOKEN"
- Zkopírujte token — takto se váš bot ověřuje. Uchovejte ho v tajnosti. Nikdy ho nesdílejte veřejně ani ho neukládejte do GitHubu bez šifrování.
Konfigurace nastavení bota:
- Povolte "Message Content Intent" (umožňuje botovi číst text zprávy)
- Povolte "Server Members Intent" (umožňuje botovi vidět, kdo je na serveru)
- Přejděte dolů do sekce "OAuth2"
Krok 2: Vygenerujte odkaz pro pozvání vašeho bota
Potřebujete speciální odkaz pro pozvání, abyste mohli přidat bota na server.
V Developer Portal:
- Přejděte na "OAuth2" → "URL Generator"
- V části "SCOPES" zaškrtněte:
bot - V části "PERMISSIONS" vyberte, co váš bot může dělat:
Send Messages(nezbytné pro každého bota)Manage Messages(pokud moderujete)Add Reactions(pokud bot na něco reaguje)Connect+Speak(pokud je to hudební/hlasový bot)- Pro učení stačí vybrat
Send Messages+Read Messages(minimální životaschopnost)
- Zkopírujte vygenerovanou URL ve spodní části
- Sdílejte tuto URL s vlastníky serveru (nebo ji použijte sami k přidání na svůj vlastní testovací server)
Nepoužívejte oprávnění administrátora, pokud to není naprosto nezbytné. Nadměrné povolování je bezpečnostní riziko.
Krok 3: Vyberte si jazyk a framework
Dvě hlavní možnosti pro začátečníky:
JavaScript (discord.js)
Discord.js je nejoblíbenější framework pro Discord boty. Obrovská komunita, spousta tutoriálů a vynikající dokumentace.
Výhody:
- Největší komunita a nejvíce tutoriálů online
- Dokumentace discord.js je vynikající
- Node.js je široce používán a snadno se učí
- Snadné nasazení na většinu hostingových platforem
Nevýhody:
- JavaScript má zvláštnosti (křivka učení async/await)
- Node.js přidává režii paměti oproti Pythonu
Začínáme:
- Nainstalujte Node.js (v18+)
- Vytvořte složku projektu
npm init -ynpm install discord.js
Python (discord.py)
Jednodušší syntaxe, skvělé pro začátečníky, vynikající pro učení základů.
Výhody:
- Nejsnadnější syntaxe k naučení
- Intuitivní pro začátečníky
- Dokumentace discord.py je dobrá
- Python se používá všude (datová věda, web, automatizace)
Nevýhody:
- Menší komunita než discord.js (ale stále velká)
- Méně tutoriálů než JavaScript
- Mírně vyšší využití paměti
Začínáme:
- Nainstalujte Python 3.10+
- Vytvořte složku projektu
pip install discord.py
Doporučení pro začátečníky: Pokud znáte Python, použijte discord.py. Pokud znáte JavaScript, použijte discord.js. Pokud neznáte ani jeden, Python se snadněji učí, ale JavaScript má více zdrojů online. Vyberte si jeden a zavázejte se.
Krok 4: Napište svého prvního bota (příklad v Pythonu)
Zde je minimální funkční Discord bot v Pythonu, který reaguje na příkaz:
import discord
from discord.ext import commands
# Create bot with command prefix and 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} has connected to Discord!')
@bot.command(name='hello', help='Says hello')
async def hello(ctx):
await ctx.send(f'Hello {ctx.author.name}!')
@bot.command(name='ping', help='Responds with pong')
async def ping(ctx):
await ctx.send('Pong!')
bot.run('YOUR_TOKEN_HERE')
Co to dělá:
- Připojí se k Discordu
- Naslouchá příkazům
!helloa!ping - Reaguje zprávou, když je spuštěn
Chcete-li jej spustit:
- Nahraďte
'YOUR_TOKEN_HERE'svým skutečným tokenem z kroku 1 - Uložte jako
bot.py - Spusťte:
python bot.py - V Discordu napište
!hellov libovolném kanálu - Bot odpoví: "Hello [VašeJméno]!"
Krok 5: Testujte lokálně
Před nasazením otestujte svého bota lokálně (na vašem počítači).
Nastavte testovací server:
- Vytvořte soukromý server Discord pro testování
- Přidejte na něj svého bota pomocí odkazu pro pozvání z kroku 2
- Spusťte kód svého bota lokálně
- Zadejte příkazy na testovacím serveru
- Sledujte chyby ve svém terminálu; opravte je
Běžné chyby:
- "Invalid token" — Token jste zkopírovali špatně nebo vypršel. Regenerujte v Developer Portal.
- "Missing permissions" — Bot nemá oprávnění provést tuto akci v tomto kanálu. Přidejte oprávnění nebo použijte kanál, kde má bot více práv.
- "Intents are not enabled" — Musíte povolit intents v Developer Portal (Message Content Intent, Server Members Intent atd.)
Důkladně otestujte. Bot s chybami v produkci je trapný.
Krok 6: Přidejte další příkazy
Nyní, když rozumíte základům, rozšiřte se o další funkce.
Příklad v Pythonu — jednoduchý ekonomický příkaz:
@bot.command(name='balance', help='Check your coin balance')
async def balance(ctx):
# In a real bot, this would query a database
# For now, just return a mock value
await ctx.send(f'{ctx.author.name}, you have 100 coins!')
@bot.command(name='roll', help='Roll a dice (1-6)')
async def roll(ctx):
import random
result = random.randint(1, 6)
await ctx.send(f'{ctx.author.name} rolled: **{result}**')
Každý příkaz je jednoduchá funkce. Přidejte tolik, kolik chcete.
Krok 7: Nasaďte svého bota
Hosting lokálně funguje pro testování, ale váš bot se zastaví, když zavřete notebook. Nasaďte na server, aby běžel 24/7.
Bezplatné možnosti hostingu
Replit (nejjednodušší pro začátečníky):
- Přejděte na Replit.com
- Vytvořte nový Repl → Python (nebo Node.js)
- Vložte kód svého bota
- Klikněte na "Run"
- Replit ho hostuje zdarma (s omezeními: může usnout po neaktivitě)
Railway.app (moderní, spolehlivý):
- Přejděte na Railway.app
- Připojte GitHub (nebo nahrajte soubory přímo)
- Vytvořte nový projekt → vyberte svého bota
- Railway nasazuje automaticky
- Bezplatná úroveň zahrnuje měsíční kredit 5 USD
Glitch (podobný Replit):
- Přejděte na Glitch.com
- Vytvořte nový projekt
- Vložte kód
- Glitch ho udržuje v chodu (v rámci limitů bezplatné úrovně)
Důležité: Neukládejte svůj token natvrdo do kódu, který odesíláte do GitHubu. Použijte proměnné prostředí:
import os
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
bot.run(TOKEN)
Vytvořte soubor .env lokálně (přidejte do .gitignore, aby nebyl uložen):
DISCORD_TOKEN=váš_skutečný_token_zde
Na Replit/Railway nastavte token jako tajnou proměnnou prostředí v nastavení platformy (ne v kódu).
Běžné chyby začátečníků
Chyba 1: Ukládání tokenu natvrdo Nikdy nedávejte svůj token do kódu, který odesíláte do GitHubu. Boti s uniklými tokeny jsou okamžitě kompromitováni. Použijte proměnné prostředí.
Chyba 2: Neřešení chyb Váš bot se zhroutí při neočekávaném vstupu. Přidejte zpracování chyb:
@bot.command()
async def divide(ctx, a: int, b: int):
try:
result = a / b
await ctx.send(result)
except ZeroDivisionError:
await ctx.send('Cannot divide by zero!')
except ValueError:
await ctx.send('Please enter valid numbers!')
Chyba 3: Nerespektování limitů rychlosti Discord omezuje, jak rychle můžete odesílat zprávy. Nezahlcujte API. Přidejte zpoždění mezi hromadnými akcemi.
Chyba 4: Ignorování intents Mnoho začátečnických botů selže, protože nepovolí potřebné intents v Developer Portal. Zkontrolujte intents, které váš bot potřebuje, před nasazením.
Chyba 5: Příliš ambiciózní rozsah Nesnažte se ve svém prvním botovi vybudovat ekonomický systém, moderování, hudbu a 50 příkazů. Začněte s 3-5 jednoduchými příkazy. Rozšiřte se, až se budete cítit pohodlně.
Další kroky
Nyní, když máte základního bota:
- Rozšiřte funkčnost: Přidejte další příkazy, použijte databáze k uchování dat, implementujte složitou logiku
- Použijte lomítkové příkazy: Moderní syntaxe
/commandnamísto příkazů s předponou - Přidejte reakce: Umožněte uživatelům klikat na tlačítka nebo reagovat pomocí emotikonů
- Připojte databázi: Ukládejte uživatelská data, mince, preference (SQLite pro začátečníky, PostgreSQL pro škálování)
- Připojte se ke komunitám: Komunity vývojářů Discord botů (reddit.com/r/discordbots, Discord.js support server) mají odpovědi na každou otázku
Zdroje
- dokumentace discord.js: https://discord.js.org
- dokumentace discord.py: https://discordpy.readthedocs.io
- dokumentace Discord API: https://discord.com/developers/docs/intro
- Tutoriály na YouTube: Vyhledejte "[discord.js/discord.py] tutorial" — obrovské množství obsahu
Váš první Discord bot je víkendový projekt. Váš první dobrý Discord bot je měsíc praxe. Váš první bot používaný 1 000 servery je měsíce iterací, vývoje funkcí a budování komunity. Začněte hned, neustále iterujte a nepřemýšlejte o tom příliš.