# VorqulBOT

VorqulBOT (Vorqul DS BOT) is a modular all-in-one Discord bot written in TypeScript on discord.js 14. Version 3.0 is a rebuild of a project I wrote years ago and brought back: 82 slash commands with roughly 180 subcommands, 44 toggleable modules in 6 groups, 9 languages. It runs on your own Linux server or VPS, or on Pterodactyl with the included egg, and stores data in JSON files or MySQL/MariaDB. An optional Next.js dashboard configures every server the bot is on from a single login, and the Server Health Score turns activity, retention and onboarding into one number. Releases are downloadable from GitHub.

VorqulBOT was born from a practical frustration: gluing together one bot for moderation, another for levels, a third for tickets. This one does all of it - self-hosted, modular, no paywall on the basics.

## Facts

- Type: Discord bot
- Version: 3.0
- Language: TypeScript
- Library: discord.js 14
- Runtime: Node.js 18+, 22 LTS recommended
- Deployment: Linux server, VPS or Pterodactyl
- Commands: 82 slash commands
- Modules: 44 toggleable
- Interface languages: 9
- Launchers: Node, Python, Pterodactyl egg
- Dashboard: Next.js, multi-server, optional
- Storage: JSON files, MySQL/MariaDB
- Price: Free

## Background

This bot is not new. I wrote the first version years ago for my own gaming communities, then let it rot the way side projects do - broken dependencies, a dashboard that no longer built, half the commands failing silently.

In 2026 I went back, tore out what was dead, rewrote the rest in TypeScript on discord.js 14, and put a proper Next.js dashboard on top. Version 3.0 is that rebuild: 82 slash commands, 44 toggleable modules and nine languages, all of it working.

## Where it runs

It runs on your machine, not on somebody else's service. Two ways to do that, and both are boring on purpose.

- **Linux server or VPS** - Clone it, copy .env.example to .env, fill in the token, run npm start. Node.js 18 or newer, 22 LTS recommended. A systemd unit keeps it up.
- **Pterodactyl** - Import the included egg, upload the files over SFTP, put your token in the Startup variables and press start. The first boot installs dependencies and compiles on its own. Node or Python launcher, whichever your egg uses.
- **Your choice of storage** - JSON files need no setup at all and are the default; MySQL or MariaDB for a big server. Change one line in .env.

## Download

Releases are published on GitHub. Grab the latest one, follow INSTALL.md, and you have your own instance running in about ten minutes. Free to run on your own infrastructure; you may not resell it or host it for other people.

- Releases: https://github.com/Yamiru/Vorqul-DS-BOT/releases/

## Server Health Score

Most bots show you statistics. This one tells you what they mean. The Server Health Score condenses activity, retention and newcomer onboarding into one number - so you know if your community is growing, flatlining or quietly bleeding out, before it becomes obvious the hard way.

## Modules

### Security

Seven modules: moderation, automod, antinuke, antiRaid, logs, appeals, verification.

- moderation - ban, kick, softban, tempban, warn, timeout, mute, jail, shadow-mute, voicemute, massnick, massrole, timedrole, clear, cleanup, slowmode, lock, lockdown
- moderation - numbered case history, moderator notes, altcheck, permcheck, word filter
- automod - spam, duplicates, links, caps, invites, mass mentions, phishing, fake nitro and custom regex, each with its own action and threshold
- antinuke - protection against a compromised admin deleting channels and roles
- antiRaid - join-rate threshold with automatic lockdown for a set duration
- logs - messages, members, roles, channels and moderator actions, routed per channel
- appeals - structured ban appeals plus the whywasibanned self-service lookup
- verification - an unverified role applied on join, lifted once the member passes the check

### Members

Seven modules: welcome, goodbye, joinRoles, reactionroles, persist, invites, namehistory.

- welcome and goodbye - image cards with a live preview in the dashboard
- joinRoles - roles handed out automatically on join, with an optional delay and a separate list for bots
- reactionroles - buttons and select menus, plus saved role menus
- persist - roles remembered and restored when a member rejoins
- invites - who invited whom, with counts and reward roles at invite thresholds
- namehistory - name and nickname history for members and users

### Engagement

Nine modules: leveling, starboard, suggestions, reputation, counting, birthday, confessions, afk, polls.

- leveling - XP per message with a cooldown, rank cards, role rewards per level
- leaderboard, msgtop and vctop rankings
- starboard - messages promoted by reactions
- suggestions - posts with voting
- reputation - member-given rep
- counting - a channel that has to be counted in correctly
- birthday - stored dates with a scheduler that announces them
- confessions - anonymous posts with their own interaction handler
- afk - a status that answers for you while you are away
- polls - button-driven, with a scheduler for timed closing

### Economy and games

Five modules: economy, games, giveaways, quests, streaks.

- economy - balance, bank, daily, work, pay, shop, market, casino, lootbox, spin, rob, heist
- games - tictactoe, connect4, trivia, rps, dice, coinflip, 8ball, matchmaking, gamestats
- giveaways - requirements and multiple winners
- quests - daily and weekly objectives
- streaks - an activity streak per member with milestone targets, alongside a referral command

### Content

Eight modules: tickets, applications, autoResponse, sticky, tags, feeds, socials, reminders.

- tickets - with transcripts
- applications - recruitment and application forms
- autoResponse - automatic answers to recurring questions
- sticky - a message that stays pinned to the bottom of a channel
- tags - saved responses callable by name
- feeds - RSS
- socials - YouTube, Twitch and Reddit notifications
- reminders - per user, with limits on count and duration

### Tools

Eight modules: tempChannels, voiceStats, messageStats, serverStatus, crypto, backup, webhooks, prefixCommands.

- tempChannels - temporary voice channels created on demand
- voiceStats and messageStats - activity counters that feed the rankings
- serverStatus - a Minecraft server status embed, Java or Bedrock, kept updated in a channel by a scheduler
- crypto - prices, alerts, the Fear and Greed index, plus stock and NFT lookups
- backup - backups of the server structure
- webhooks - four member events (join, leave, ban, unban) posted to a URL of your own, signed with HMAC-SHA256 when a secret is set
- prefixCommands - old text commands like !daily still work next to slash commands
- tools - wiki search, mcstatus, links, say, announce, schedule, avatar, membercount, serverinfo, userinfo, ping
- Nine of the 44 modules are on out of the box: moderation, leveling, afk, polls, economy, games, giveaways, reminders and prefixCommands. Everything else starts off.

### Platform

The parts underneath that decide how well everything else ages.

- 82 slash commands with roughly 180 subcommands, kept under the Discord limit of 100 top-level commands by a priority list
- 44 toggleable modules in one shared registry read by both the bot and the dashboard
- Web dashboard on Next.js with Discord OAuth2 login and an email allowlist
- Server picker: one login configures every server the bot is on
- Embed builder, welcome card designer, analytics, audit log, API keys
- Per-channel command scope, so a command can be limited to chosen channels or categories
- Per-server bot nickname
- Premium tiers (free, premium, pro) that raise the limits on sticky messages, reaction roles, auto-responses, scheduled messages and webhooks
- Plugin system: a manifest.json and a JavaScript entry file, loaded at startup, no core changes
- Settings schema with migrations, so an upgrade does not lose configuration
- 9 interface languages: en, sk, cs, de, pl, ru, es, ja, tr
- 2 database backends: JSON files (default) and MySQL/MariaDB
- Pterodactyl egg with automatic install on first boot, plus Node and Python launchers

## Dashboard

A web dashboard with Discord login, where you pick a server from a dropdown and configure it. One dashboard handles all the servers you have the bot on - switch between them without logging out. Toggle modules, set up AutoMod, design welcome cards with a live preview, build embeds, read analytics and the audit log, manage API keys and backups. It is optional; everything can also be done from Discord. Interface in nine languages.

## Why this one

- **All-in-one, self-hosted** - No monthly fees to third parties, no paywall, full control over your data.
- **Truly modular** - One shared module registry drives both bot and dashboard - a toggle in the UI cannot exist without the bot honoring it. Turn off anything your server does not need.
- **Plugin system** - Drop-in plugins with their own commands and events, hot-loadable, no core changes. A manifest.json and an index.js is all it takes.
- **Flexible storage** - JSON for zero setup, MySQL/MariaDB for large deployments.
- **Easy deployment** - Pterodactyl egg with auto-install on first boot, classic npm on a VPS, or the Python launcher.
- **Backwards compatible** - Old text commands like !daily still work through the prefix bridge, alongside slash commands.

## Reference pages

- Moderation: https://vorqul.com/vorqulbot/moderation
- AutoMod: https://vorqul.com/vorqulbot/automod
- Anti-Raid: https://vorqul.com/vorqulbot/anti-raid
- Server Health Score: https://vorqul.com/vorqulbot/server-health
- Tickets: https://vorqul.com/vorqulbot/tickets
- Leveling: https://vorqul.com/vorqulbot/leveling
- Economy: https://vorqul.com/vorqulbot/economy
- Plugins: https://vorqul.com/vorqulbot/plugins

## FAQ

**Is the bot free to run?**

Yes - you self-host it and there is no paywall on core features. The license allows running it, but not redistributing or re-hosting it for others.

**What is the Server Health Score?**

A single number computed from activity, retention and newcomer onboarding that tells you whether your community is growing, stagnating or shrinking.

**Do I need the dashboard?**

No - it is optional. Everything can be configured from Discord. The dashboard adds live previews, analytics and an embed builder on top.

**Which databases are supported?**

JSON files (zero setup, the default) or MySQL/MariaDB for larger deployments.

## Links

- Page: https://vorqul.com/vorqulbot
- Repository: https://github.com/Yamiru/Vorqul-DS-BOT
- Releases (download): https://github.com/Yamiru/Vorqul-DS-BOT/releases/
