Ang paggawa ng iyong unang Discord bot ay mas madali kaysa sa iyong iniisip. Hindi mo kailangan ng degree sa computer science o mga taon ng karanasan sa programming. Sa 2026, ang pagbuo at pag-deploy ng isang functional na bot ay tumatagal ng isang weekend kung ikaw ay nakatuon.
Gagabayan ka ng gabay na ito sa buong proseso: pagpaparehistro ng iyong bot, pagsulat ng iyong unang command, pagsubok nito nang lokal, at pag-deploy nito nang live. Sa pagtatapos, magkakaroon ka ng isang bot na tumatakbo sa iyong server.
Pag-unawa Kung Ano ang Isang Discord Bot
Ang isang Discord bot ay isang programa na kumokonekta sa Discord sa pamamagitan ng API at tumutugon sa mga kaganapan: kapag may nag-type ng isang command, nag-react sa isang mensahe, sumali sa server, atbp.
Mga pangunahing konsepto:
- Application vs. Bot: Ang iyong "application" ay nakarehistro sa Discord Developer Portal. Ang "bot" ay ang user account na nauugnay sa application na iyon. Ang isang application ay may isang bot.
- Mga Token: Isang lihim na key na nagpapatunay sa iyong bot. Huwag kailanman ibahagi ito. Ito ay tulad ng isang password sa iyong bot.
- Mga Intent: Mga pahintulot na nagpapahintulot sa iyong bot na makita ang ilang mga kaganapan (mga mensahe, mga reaksyon, mga pagbabago sa katayuan ng miyembro, atbp.). Pinapagana mo lamang ang kailangan mo.
- Mga Command: Tumutugon ang mga bot sa mga command. Gumagamit ang mga modernong bot ng mga slash command (
/command) sa halip na mga prefix command (!command). Ang mga slash command ay opisyal na sinusuportahan at inirerekomenda. - Mga Kaganapan: Nakikinig ang iyong bot para sa mga kaganapan sa Discord (mensahe na ipinadala, reaksyon na idinagdag, miyembro na sumali) at tumutugon sa mga ito.
Hakbang 1: Irehistro ang Iyong Bot sa Discord Developer Portal
Dito opisyal na umiiral ang iyong bot sa sistema ng Discord.
Proseso:
- Pumunta sa Discord Developer Portal
- Mag-log in gamit ang iyong Discord account
- I-click ang "New Application"
- Pangalanan ito (hal., "My First Bot")
- I-click ang "Create"
- Nasa mga setting ka na ng iyong application
Ngayon gumawa ng bot user:
- Pumunta sa seksyong "Bot" (kaliwang sidebar)
- I-click ang "Add Bot"
- Sa ilalim ng username ng bot, makikita mo ang isang "TOKEN" button
- Kopyahin ang token — ito ang paraan ng pagpapatunay ng iyong bot. Panatilihing lihim ito. Huwag kailanman ibahagi ito sa publiko o i-commit ito sa GitHub nang walang pag-encrypt.
I-configure ang mga setting ng bot:
- Paganahin ang "Message Content Intent" (hinahayaan ang bot na basahin ang teksto ng mensahe)
- Paganahin ang "Server Members Intent" (hinahayaan ang bot na makita kung sino ang nasa server)
- Mag-scroll pababa sa seksyong "OAuth2"
Hakbang 2: Bumuo ng Invite Link ng Iyong Bot
Kailangan mo ng isang espesyal na invite link upang idagdag ang bot sa isang server.
Sa Developer Portal:
- Pumunta sa "OAuth2" → "URL Generator"
- Sa ilalim ng "SCOPES", i-check:
bot - Sa ilalim ng "PERMISSIONS", piliin kung ano ang maaaring gawin ng iyong bot:
Send Messages(mahalaga para sa anumang bot)Manage Messages(kung ikaw ay nagmo-moderate)Add Reactions(kung ang bot ay nagre-react sa mga bagay)Connect+Speak(kung ito ay isang music/voice bot)- Para sa pag-aaral, piliin lamang ang
Send Messages+Read Messages(minimum viable)
- Kopyahin ang nabuong URL sa ibaba
- Ibahagi ang URL na ito sa mga may-ari ng server (o gamitin ito mismo upang idagdag sa iyong sariling test server)
Huwag gumamit ng pahintulot ng Administrator maliban kung talagang kinakailangan. Ang sobrang pagpapahintulot ay isang panganib sa seguridad.
Hakbang 3: Piliin ang Iyong Wika at Framework
Dalawang pangunahing opsyon para sa mga baguhan:
JavaScript (discord.js)
Ang Discord.js ay ang pinakasikat na Discord bot framework. Malaking komunidad, maraming tutorial, at mahusay na dokumentasyon.
Mga kalamangan:
- Pinakamalaking komunidad at pinakamaraming tutorial online
- Mahusay ang dokumentasyon ng discord.js
- Malawakang ginagamit ang Node.js at madaling matutunan
- Madaling pag-deploy sa karamihan ng mga platform ng pagho-host
Mga kahinaan:
- Ang JavaScript ay may mga quirks (async/await learning curve)
- Nagdaragdag ang Node.js ng memory overhead kumpara sa Python
Magsimula:
- I-install ang Node.js (v18+)
- Gumawa ng isang project folder
npm init -ynpm install discord.js
Python (discord.py)
Mas simpleng syntax, mahusay para sa mga baguhan, mahusay para sa pag-aaral ng mga batayan.
Mga kalamangan:
- Pinakamadaling syntax na matutunan
- Intuitive para sa mga baguhan
- Maganda ang dokumentasyon ng discord.py
- Ginagamit ang Python saanman (data science, web, automation)
Mga kahinaan:
- Mas maliit na komunidad kaysa sa discord.js (ngunit malaki pa rin)
- Mas kaunting tutorial kaysa sa JavaScript
- Bahagyang mas mataas na paggamit ng memorya
Magsimula:
- I-install ang Python 3.10+
- Gumawa ng isang project folder
pip install discord.py
Rekomendasyon para sa mga baguhan: Kung alam mo ang Python, gamitin ang discord.py. Kung alam mo ang JavaScript, gamitin ang discord.js. Kung wala kang alam, mas madaling matutunan ang Python, ngunit ang JavaScript ay may mas maraming mapagkukunan online. Pumili ng isa at maglaan ng oras.
Hakbang 4: Isulat ang Iyong Unang Bot (Halimbawa ng Python)
Narito ang isang minimal na gumaganang Discord bot sa Python na tumutugon sa isang command:
import discord
from discord.ext import commands
# Gumawa ng bot na may command prefix at mga intent
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='Bumabati')
async def hello(ctx):
await ctx.send(f'Hello {ctx.author.name}!')
@bot.command(name='ping', help='Tumutugon sa pong')
async def ping(ctx):
await ctx.send('Pong!')
bot.run('YOUR_TOKEN_HERE')
Ano ang ginagawa nito:
- Kumokonekta sa Discord
- Nakikinig para sa
!helloat!pingna mga command - Tumutugon sa isang mensahe kapag na-trigger
Upang patakbuhin ito:
- Palitan ang
'YOUR_TOKEN_HERE'ng iyong aktwal na token mula sa Hakbang 1 - I-save bilang
bot.py - Patakbuhin:
python bot.py - Sa Discord, i-type ang
!hellosa anumang channel - Tumutugon ang bot: "Hello [YourName]!"
Hakbang 5: Subukan Nang Lokal
Bago mag-deploy, subukan ang iyong bot nang lokal (sa iyong computer).
Mag-setup ng isang test server:
- Gumawa ng isang pribadong Discord server para sa pagsubok
- Idagdag ang iyong bot dito gamit ang invite link mula sa Hakbang 2
- Patakbuhin ang iyong bot code nang lokal
- I-type ang mga command sa test server
- Magbantay para sa mga error sa iyong terminal; ayusin ang mga ito
Mga karaniwang error:
- "Invalid token" — Mali ang pagkopy mo ng token o nag-expire na ito. Muling bumuo sa Developer Portal.
- "Missing permissions" — Walang pahintulot ang bot na gawin ang aksyon na iyon sa channel na ito. Magdagdag ng mga pahintulot o gumamit ng isang channel kung saan may mas maraming karapatan ang bot.
- "Intents are not enabled" — Kailangan mong paganahin ang mga intent sa Developer Portal (Message Content Intent, Server Members Intent, atbp.)
Subukan nang lubusan. Nakakahiya ang isang bot na may mga bug sa produksyon.
Hakbang 6: Magdagdag ng Higit Pang mga Command
Ngayong naiintindihan mo na ang mga batayan, palawakin sa higit pang mga tampok.
Halimbawa ng Python — isang simpleng command sa ekonomiya:
@bot.command(name='balance', help='Suriin ang iyong balanse ng coin')
async def balance(ctx):
# Sa isang tunay na bot, ito ay magtatanong sa isang database
# Sa ngayon, ibalik lamang ang isang mock value
await ctx.send(f'{ctx.author.name}, mayroon kang 100 coins!')
@bot.command(name='roll', help='Mag-roll ng dice (1-6)')
async def roll(ctx):
import random
result = random.randint(1, 6)
await ctx.send(f'{ctx.author.name} rolled: **{result}**')
Ang bawat command ay isang simpleng function. Magdagdag ng kasing dami ng gusto mo.
Hakbang 7: I-deploy ang Iyong Bot
Ang pagho-host nang lokal ay gumagana para sa pagsubok, ngunit humihinto ang iyong bot kapag isinara mo ang iyong laptop. I-deploy sa isang server upang tumakbo ito 24/7.
Mga Libreng Opsyon sa Pagho-host
Replit (pinakamadali para sa mga baguhan):
- Pumunta sa Replit.com
- Gumawa ng bagong Repl → Python (o Node.js)
- I-paste ang iyong bot code
- I-click ang "Run"
- Libre itong iho-host ng Replit (na may mga limitasyon: maaaring matulog pagkatapos ng hindi aktibo)
Railway.app (moderno, maaasahan):
- Pumunta sa Railway.app
- Ikonekta ang GitHub (o mag-upload ng mga file nang direkta)
- Gumawa ng bagong project → piliin ang iyong bot
- Awtomatikong nagde-deploy ang Railway
- Kasama sa libreng tier ang $5 buwanang credit
Glitch (katulad ng Replit):
- Pumunta sa Glitch.com
- Gumawa ng bagong project
- I-paste ang code
- Pinapanatili itong tumatakbo ng Glitch (sa loob ng mga limitasyon ng libreng tier)
Mahalaga: Huwag i-hardcode ang iyong token sa code na ipinapadala mo sa GitHub. Gumamit ng mga environment variable:
import os
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
bot.run(TOKEN)
Gumawa ng isang .env file nang lokal (idagdag sa .gitignore upang hindi ito ma-commit):
DISCORD_TOKEN=your_actual_token_here
Sa Replit/Railway, itakda ang token bilang isang lihim na environment variable sa mga setting ng platform (hindi sa code).
Mga Karaniwang Pagkakamali ng Baguhan
Pagkakamali 1: Pag-hardcode ng token Huwag kailanman ilagay ang iyong token sa code na ipinapadala mo sa GitHub. Ang mga bot na may leaked token ay nakompromiso kaagad. Gumamit ng mga environment variable.
Pagkakamali 2: Hindi paghawak ng mga error Nag-crash ang iyong bot sa hindi inaasahang input. Magdagdag ng paghawak ng error:
@bot.command()
async def divide(ctx, a: int, b: int):
try:
result = a / b
await ctx.send(result)
except ZeroDivisionError:
await ctx.send('Hindi maaaring hatiin sa zero!')
except ValueError:
await ctx.send('Mangyaring magpasok ng mga valid na numero!')
Pagkakamali 3: Hindi paggalang sa mga limitasyon sa rate Nililimitahan ng Discord kung gaano kabilis ka makapagpadala ng mga mensahe. Huwag mag-spam sa API. Magdagdag ng mga pagkaantala sa pagitan ng mga bulk action.
Pagkakamali 4: Hindi pagpansin sa mga intent Nabigo ang maraming beginner bot dahil hindi nila pinapagana ang mga kinakailangang intent sa Developer Portal. Suriin ang mga intent na kailangan ng iyong bot bago mag-deploy.
Pagkakamali 5: Masyadong ambisyosong saklaw Huwag subukang bumuo ng isang sistema ng ekonomiya, pagmo-moderate, musika, at 50 command sa iyong unang bot. Magsimula sa 3-5 simpleng command. Palawakin kapag komportable ka na.
Mga Susunod na Hakbang
Ngayong mayroon ka nang isang pangunahing bot:
- Palawakin ang pag-andar: Magdagdag ng higit pang mga command, gumamit ng mga database upang magpatuloy ng data, ipatupad ang kumplikadong lohika
- Gumamit ng mga slash command: Modernong
/commandsyntax sa halip na mga prefix command - Magdagdag ng mga reaksyon: Hayaan ang mga user na mag-click ng mga button o mag-react gamit ang mga emoji
- Kumonekta ng isang database: Mag-imbak ng data ng user, mga coin, mga kagustuhan (SQLite para sa mga baguhan, PostgreSQL para sa scale)
- Sumali sa mga komunidad: Ang mga komunidad ng developer ng Discord bot (reddit.com/r/discordbots, Discord.js support server) ay may mga sagot sa bawat tanong
Mga Mapagkukunan
- discord.js documentation: https://discord.js.org
- discord.py documentation: https://discordpy.readthedocs.io
- Discord API docs: https://discord.com/developers/docs/intro
- Mga tutorial sa YouTube: Maghanap ng "[discord.js/discord.py] tutorial" — napakaraming nilalaman
Ang iyong unang Discord bot ay isang weekend project. Ang iyong unang magandang Discord bot ay isang buwan ng pagsasanay. Ang iyong unang bot na ginamit ng 1,000 server ay mga buwan ng pag-ulit, pagbuo ng tampok, at pagbuo ng komunidad. Magsimula ngayon, umulit nang patuloy, at huwag masyadong mag-isip.