Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/devjhoan/absolet/llms.txt

Use this file to discover all available pages before exploring further.

Getting Absolet running is a straightforward process: clone the repository, fill in a handful of values in config/config.yml, and start the process. Slash commands register automatically on first boot, and a single /setup command walks you through enabling each feature inside your server.

Prerequisites

Make sure the following are in place before you begin:
  • Node.js 18+ or Bun (Bun is recommended — all run scripts use it directly)
  • A MongoDB instance — either a local MongoDB server or a free MongoDB Atlas cluster
  • A Discord bot application created in the Discord Developer Portal with a bot token

Required Discord Gateway Intents

Absolet requires the following Gateway Intents to be enabled on your bot application in the Developer Portal. Navigate to your application → BotPrivileged Gateway Intents and enable all three privileged intents:
  • MessageContent (privileged)
  • GuildMessages
  • GuildMessageReactions
  • GuildIntegrations
  • GuildMembers (privileged)
  • GuildWebhooks
  • Guilds
  • GuildModeration
  • GuildInvites
  • GuildPresences (privileged)
  • GuildScheduledEvents
  • GuildVoiceStates
Failing to enable the three privileged intents (MessageContent, GuildMembers, GuildPresences) will cause the bot to fail on startup with a missing intents error.

Setup

1

Clone the repository and install dependencies

Clone the Absolet repository and install all dependencies using Bun:
git clone https://github.com/devjhoan/absolet.git
cd absolet
bun install
Bun reads package.json and installs all runtime and dev dependencies, including discord.js, DisTube, Mongoose, and the canvas library.
2

Configure config/config.yml

Open config/config.yml and replace the placeholder values with your own:
config/config.yml
GeneralSettings:
  Token: "YOUR_BOT_TOKEN_HERE"
  LicenseKey: "YOUR_LICENSE_KEY_HERE"
  EmbedColor: "#E74C3C"

DatabaseSettings:
  Uri: "mongodb+srv://<user>:<password>@<cluster>.mongodb.net/Absolet3"

ActivitySettings:
  Enabled: true
  Activities:
    - ["Watching", "my community", "dnd"]
    - ["Playing", "play.example.net", "dnd"]
  Interval: "1m"
The required fields are:
FieldDescription
GeneralSettings.TokenYour Discord bot token from the Developer Portal
GeneralSettings.LicenseKeyYour Absolet license key
GeneralSettings.EmbedColorHex color used in all bot embeds (default #E74C3C)
DatabaseSettings.UriMongoDB connection string (local or Atlas)
Your bot token is sensitive — never commit config/config.yml to a public repository. The file is already listed in .gitignore by default.
3

Optionally configure config/commands.yml

config/commands.yml controls which commands are active and who can use them. Every command entry has at least two fields:
config/commands.yml
# Enable for everyone
Help:
  Enabled: true
  Permissions:
    - "@everyone"

# Restrict to staff roles
Ban:
  Enabled: true
  Permissions:
    - "Staff"
    - "Owner"

# Disable a command entirely
Eval:
  Enabled: false
  Permissions:
    - "Owner"
Commands with Enabled: false are never loaded and will not appear in Discord’s slash command menu. See the Configuration reference for the full list of available commands and their default permissions.
4

Start the bot

Start Absolet with Bun:
# Production — run once
bun run start

# Development — restart on file changes
bun run dev
On a successful start you will see log lines for the database connection, loaded events, loaded commands, and finally confirmation that slash commands have been registered with Discord.
5

Run /setup in your server

Once the bot is online, use the /setup command inside your Discord server to configure individual features — tickets, levels, economy, verification, and more. Each module has its own setup flow that stores configuration in your MongoDB database.
The /setup command requires the Staff or Owner role by default (as configured in commands.yml). Make sure you have one of those roles before running it.

Resetting Slash Commands

If you need to wipe all registered slash commands and re-register from scratch — for example after changing which commands are enabled — pass the --reset-commands flag:
bun run start -- --reset-commands
This clears all guild-level and global application commands, then exits. Start the bot normally afterwards to re-register the current set of enabled commands.

Bot Activity Configuration

The cycling status messages shown on your bot’s profile are driven by the ActivitySettings block in config/config.yml:
config/config.yml
ActivitySettings:
  Enabled: true          # Set to false to keep a static "Online" status
  Activities:
    - ["Watching", "strider.top", "dnd"]   # [type, text, status]
    - ["Playing", "play.example.net", "dnd"]
  Interval: "1m"         # How long each activity is shown before rotating
Each entry in Activities is a three-element array:
IndexFieldAccepted Values
0Activity typeWatching, Playing, Listening
1Activity textAny string
2Online statusonline, dnd, idle
The bot rotates through the list on the cadence set by Interval, which accepts any duration string understood by the ms library (e.g. "30s", "1m", "2h").

Build docs developers (and LLMs) love