Ledger Discord Bot

Ledger Discord Bot banner

Project Overview

Ledger is a modular Discord bot focused on practical server utilities and lightweight interaction. It is built with Python using the discord.py library and relies exclusively on modern slash commands for clarity and ease of use.

The bot uses a persistent SQLite database to store server-specific configuration and content, such as saved quotes and timezone preferences. Its modular architecture allows new functionality to be added cleanly without impacting existing features.

Key Features

  • Persistent Server Storage: Server-specific data such as quotes and timezone settings are stored reliably using SQLite.
  • Quote Management System: Save, retrieve, search, and list memorable server quotes using intuitive slash commands.
  • Advanced Timezone Handling: Server-configurable timezone support with automatic daylight saving handling and a global time overview.
  • Utility & Fun Commands: Includes practical utilities (ping, uptime, server info) alongside lightweight fun commands.
  • Modern Slash Command Interface: Fully implemented using Discord application commands for discoverability and structured usage.

Command Reference

Command Description Output
/quote_add [quote] Saves a new quote to the server database. Quote saved confirmation
/quote_random Returns a random quote stored for the server. Random quote text
/quote_list Displays the most recently added quotes. Numbered list of quotes
/quote_search [text] Searches quotes containing specific keywords. Filtered quote list

Command Description Output
/timezone_set [timezone] Sets the server's primary timezone. Supports autocomplete and common abbreviations (e.g. CET, UTC). Confirmation message
/timezone Displays the current server time along with a curated list of important global timezones. Formatted multi-timezone overview

Command Description
/ping Checks the bot's current latency.
/uptime Displays how long the bot has been running.
/serverinfo Shows basic information about the current server.
/userinfo [user] Displays account and server information about a user.
/roll [NdM] Rolls dice using NdM notation (e.g. 2d6, 1d20).
/coinflip Flips a virtual coin.
/choose [options] Lets the bot choose randomly from multiple options.
/rate [thing] Rates something or someone on a scale from 1 to 10.
/8ball [question] Returns a randomized Magic 8-Ball response.

Technologies Used

Python discord.py SQLite python-dotenv ZoneInfo
Back to Projects