https://github.com/ngetikin/selfbot-discord
Ini selfbot Discord fokus voice + utilitas ringan. Core sudah bootstrap, voice TTS via espeak-ng, fitur fun (meme, auto-emoji), auto-activity, dan Groq chat. Beberapa fitur voice lanjutan masih dinonaktifkan (announcer/reader).
https://github.com/ngetikin/selfbot-discord
discord discord-selfbot selfbot termux text-to-speech
Last synced: 3 months ago
JSON representation
Ini selfbot Discord fokus voice + utilitas ringan. Core sudah bootstrap, voice TTS via espeak-ng, fitur fun (meme, auto-emoji), auto-activity, dan Groq chat. Beberapa fitur voice lanjutan masih dinonaktifkan (announcer/reader).
- Host: GitHub
- URL: https://github.com/ngetikin/selfbot-discord
- Owner: ngetikin
- License: mit
- Created: 2025-11-22T07:13:38.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-12-16T03:45:42.000Z (6 months ago)
- Last Synced: 2025-12-19T13:49:10.252Z (6 months ago)
- Topics: discord, discord-selfbot, selfbot, termux, text-to-speech
- Language: TypeScript
- Homepage:
- Size: 246 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ngetikin Selfbot Discord
Discord **voice-focused selfbot** built with **TypeScript**, designed for lightweight runtime on **Termux (Android)** using PM2 + CI/CD deployment.
Project ini mencakup fitur TTS, voice automation, daily meme system, dan berbagai utilitas untuk pengalaman Discord yang interaktif.
---
## ✨ Features
### 🎧 Voice Automation (saat ini)
- Auto join Voice Channel target.
### 😀 Auto Emoji Reaction
- Channel spesifik (EMOJI_CHANNEL_IDS): auto-react 5–20 emoji acak.
- Prioritas emoji server non-animated; fallback emoji universal.
### 🧠 Mention Chat (Groq)
- Jika GROQ_API_KEY di-set, mention bot (tanpa prefix `say`) akan dibalas via Groq (default model `llama-3.2-1b-preview`).
- Rate limit lokal: 1 request / 20 detik per channel; fallback otomatis ke model lain jika tidak tersedia/413/404.
### 😂 Daily Meme (sederhana)
- Jika MEME_CHANNEL_ID di-set, kirim meme dari candaan-api (default) setiap 6 jam.
### 🟢 Activity Rotation
- Jika ACTIVITY_MESSAGES di-set (comma-separated), rotasi presence tiap 5 menit.
- Opsional rich presence: jika ada `config/activity.json`, bot pakai itu (buttons/gambar/URL) dan melewati rotasi sederhana.
Contoh `config/activity.json`:
```json
{
"applicationId": "367827983903490050",
"name": "osu!",
"details": "MariannE - Yooh",
"state": "Arcade Game",
"type": 0,
"url": "https://www.youtube.com/watch?v=5icFcPkVzMg",
"largeImage": "https://assets.ppy.sh/beatmaps/1550633/covers/list.jpg",
"largeText": "Idle",
"smallImage": "373370493127884800",
"smallText": "click the circles",
"buttons": [{ "label": "Beatmap", "url": "https://osu.ppy.sh/beatmapsets/1391659#osu/2873429" }],
"customStatus": { "emoji": "😋", "text": "yum" }
}
```
### 😂 Daily Meme
- Kirim meme pagi, siang, sore.
- Source: Meme API + Lahelu scraping.
- Anti duplicate (hash tracking).
### ⚡ Admin Auto Reply
- Auto reply ke pesan admin.
- Hapus pesan bot sendiri setelah delay.
- Rate-limited + safe-guard.
### 🟢 Custom Activity Rotation
- Presence rotation (listening/playing/watching).
- Bisa diatur via JSON.
### 🧱 Production-Ready Setup
- TypeScript strict mode.
- ESLint, Prettier, Husky + lint-staged.
- GitHub Actions CI/CD pipeline:
- install → lint → build → optional deploy to Termux.
- PM2 with log rotation.
---
## 📁 Project Structure (current skeleton)
```
src/
core/
client.ts
scheduler.ts
storage.ts
voice.ts # stub; to be expanded
events/ # ready, messageCreate, voiceStateUpdate
utils/ # env loader (dotenv+zod), logger with redaction
types/ # env types
features/ # reserved for voiceAutoJoin, dailyMeme, autoReply, activity, emoji, Groq
scripts/
(placeholder)
test/
unit/
integration/
```
---
## 🚀 Getting Started
### 1. Install dependencies
```sh
pnpm install
```
### 2. Setup environment file
Buat `.env` (opsional override di `.env.local`):
```
TOKEN=
VOICE_CHANNEL_ID=
TARGET_GUILD_ID=
ADMIN_ROLE_IDS=
TTS_LANG=id-ID
LOG_LEVEL=info
EMOJI_CHANNEL_IDS=
MEME_CHANNEL_ID=
MEME_API_URL=
MEME_DEBUG_NOW=
ACTIVITY_MESSAGES=
RATE_MSGS_PER_MIN=
RATE_PRESENCE_MIN=
RATE_VOICE_JOIN_SEC=
GROQ_API_KEY=
GROQ_MODEL=llama-3.2-1b-preview
```
### 3. Development mode
```sh
pnpm dev
```
### 4. Lint & format
```sh
pnpm lint
pnpm format:check
```
### 5. Build & run
```sh
pnpm build
pnpm start
```
### 6. Run with PM2 (Termux)
```sh
pm2 start dist/index.js --name ngetikin-selfbot
```
### Deploy via script (Termux)
```sh
chmod +x scripts/deploy-termux.sh
./scripts/deploy-termux.sh
```
Script akan install deps, build, lalu pm2 start + save.
Prereq Termux (script sudah melakukannya):
- `pkg update && pkg upgrade`
- `pkg install git nodejs-lts ffmpeg`
- `npm install -g pm2`
- corepack + pnpm
- PM2 log rotation: script set `pm2:logs/max_size 10M`
---
## 🔐 Warning
This project uses **selfbot techniques**, which are **against Discord TOS**.
Use only on **alt accounts** and at your own risk.
---
## 🧩 Technologies
- TypeScript
- discord.js-selfbot-v13
- @discordjs/voice
- node-cron
- cheerio / puppeteer (optional)
- PM2
- GitHub Actions
---
## 📜 License
Licensed under the MIT License.
See [LICENSE](./LICENSE) for details.