A highly customizable and interactive form submission system for Discord communities.
Features β’ Installation β’ Usage Guide β’ Contributing
Discord Form Bot transforms how you manage applications, support requests, and feedback in your server. Say goodbye to messy DMs and hello to a streamlined, fully in-Discord experience!
With an intuitive Control Panel, admins can create unlimited forms, review submissions with pre-configured templates, and even automatically invite approved applicants to private target servers.
- π― Multi-Form Support β Create an unlimited number of forms customized for different purposes.
- π Persistent Buttons β Provide users with interactive, always-on buttons to trigger forms.
- πΉοΈ Admin Control Panel β Manage everything directly in Discord (
/panel) using intuitive modals and dropdowns. - βοΈ Review System β Approve or reject with customized (or pre-configured) messages delivered directly to the user's DMs.
- π Auto-Invite Architecture β Automatically send unique, single-use invite links to target servers upon approval.
- π‘οΈ Spam Protection β Set submission limits to prevent spam (Once vs. Unlimited).
- π Smart Notifications β Tag specific roles or users when a new submission arrives.
- πΎ SQLite Database β Robust storage utilizing SQLite with automatic migrations.
- Node.js - JavaScript runtime environment.
- Discord.js (v14) - Powerful module to interact with the Discord API.
- Better-SQLite3 - The fastest and simplest SQLite3 library for Node.js.
Follow these instructions to get a copy of the bot up and running on your local machine or server.
- Node.js (v18.0.0 or higher)
- NPM or Yarn
- A Discord Bot Account with a token.
Note: The bot requires the
Guilds,Guild Messages, andDirect Messagesintents, along withSend Messages,Embed Links,Manage Messages, andCreate Instant Invitepermissions.
-
Clone the repository:
git clone https://github.com/89CF/discord-form-bot.git cd discord-form-bot -
Install dependencies:
npm install
-
Configure Environment Variables: Rename
.env.exampleto.envand fill in your details:DISCORD_TOKEN=your_bot_token_here CLIENT_ID=your_client_id_here DATABASE_PATH=./data/bot.db ALLOWED_GUILD_ID=your_server_id_here # Optional: Restrict bot to a specific server
-
Deploy Application (Slash) Commands:
npm run deploy
-
Start the Bot:
npm start
To access the core of the bot, type:
/panel
(Only users with Admin permissions can use this command.)
From the interactive dashboard, you can:
- β Create a New Form: Setup title, description, and up to 5 custom questions.
- π Manage Forms: Edit questions, set target Auto-Invite servers, configure default review messages.
- βοΈ Settings: Define the Admin Channel where submissions land, and configure ping notifications.
- Go to Manage Forms -> Edit -> Set Target Server.
- Input the Discord Server ID of the destination server (the bot must be in that server too).
- Every time you click Approve on a submission, the bot creates a temporary, single-use invite to that target server and DMs it to the user!
discord-form-bot/
βββ src/
β βββ commands/ # Slash command definitions
β βββ handlers/ # Event & Interaction routing
β βββ panels/ # UI builders for Discord Modals/Embeds
β βββ database/ # SQLite Queries & Migrations
β βββ utils/ # Helpers, Embed definitions, Validators
β βββ index.js # Main Entry Point
βββ data/
β βββ bot.db # Auto-generated SQLite Database
βββ config.json # Base configuration limits
βββ package.json
Contributions make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.