Skip to content

KuchikiRenji/Submission-Bot

Repository files navigation

Discord Submission Bot – Image & Picture Submissions via DM

A Node.js Discord bot that lets users submit images and descriptions through direct messages (DM). Use slash commands or a "Submit" button to collect pictures and post them as embeds to a channel—ideal for art servers, photo contests, and anonymous submissions. Built with discord.js and i18n (English & German).


Table of contents


Features

  • DM-based submission flow – Users submit images and descriptions via private messages; no clutter in public channels.
  • Slash commands/submit to start a submission, /createbutton (admin) to spawn a "Submit a picture" button.
  • Rich embeds – Submissions are posted as Discord embeds with image, description, and author.
  • Multi-language – English and German out of the box; easy to add more locales.
  • One submission at a time – Prevents duplicate or overlapping submissions per user.
  • Node.js & discord.js – Modern JavaScript (ES modules), runs on Node.js with discord.js v13.

How it works

  1. A user runs /submit or clicks the "Submit a picture" button.
  2. The bot replies in-channel and opens a DM conversation.
  3. The bot asks for an image, then a short description in DMs.
  4. The submission is posted as an embed to your configured channel (with optional star reaction).
  5. The user gets a success message in DMs.

If the user’s DMs are closed, the bot tells them to enable DMs and try again.


Requirements

  • Node.js 16.9.0 or newer (for discord.js v13)
  • A Discord Bot token (Discord Developer Portal)
  • Bot intents: Guilds, Direct Messages

Installation

1. Clone the repository

git clone https://github.com/your-username/Submission-Bot.git
cd Submission-Bot

2. Install dependencies

npm install

3. Create your config

Copy the template and fill in your values:

cp config.template.js config.js

Edit config.js with your bot token, guild ID, channel ID, admin user ID, activity text, and language (see Configuration).

4. Start the bot

npm start

For production, you can use PM2 with the included pm2.config.json.


Configuration

Option Description
token Your Discord bot token
activity Bot "Playing" status text
guild Your Discord server (guild) ID
admin User ID of the admin (only they can use /createbutton)
send_to_channel Channel ID where submissions are posted
language Locale: "en" or "de" (see i18n)

How to get IDs: Enable Developer Mode in Discord (Settings → App Settings → Advanced → Developer Mode), then right-click the server or channel and choose "Copy ID".


Usage

  • Submit an image: Use /submit or click the "Submit a picture" button (if an admin created it).
  • Create the button (admin only): Use /createbutton in the channel where you want the button. The bot will send a message with a "Submit a picture" button.

Users complete the flow in DMs: send the image, then the description. They can type "stop" to cancel.


Commands

Command Description Who can use
/submit Start a new image submission via DM Everyone
/createbutton Post a "Submit a picture" button Admin only

Internationalization (i18n)

The bot uses i18n-light with locale files in locales/. Supported locales:

  • English (en) – default
  • German (de)

Set language in config.js to "en" or "de". To add a language, create a new JSON file in locales/ (e.g. fr.json) following the structure of en.json.


FAQ

How do I invite the Discord submission bot to my server?

Create an application in the Discord Developer Portal, create a bot, copy the token into config.js, and use the OAuth2 URL generator to invite the bot with the applications.commands and bot scopes and the permissions you need (e.g. Send Messages, Embed Links, Read Message History).

Can submissions be anonymous?

The embed shows the submitter’s username and avatar. For a more anonymous setup, you’d need to modify the bot (e.g. not setting author or using a generic label).

Why does the bot say "Check your DMs" and nothing happens?

The user must have DMs from server members enabled (Privacy settings). The bot will tell them to enable DMs if it can’t send a message.

What image formats are supported?

Any format Discord supports in DMs (e.g. PNG, JPEG, GIF, WebP). The bot forwards the first image the user sends in the submission flow.

Does this work with Discord.js v14?

This project targets discord.js v13. Migrating to v14 would require dependency and possibly code updates (e.g. embed and component APIs).


License

This project is licensed under the MIT License – see the LICENSE file for details.


Keywords: Discord bot, image submission, picture submission, Discord DM bot, slash commands, Node.js, discord.js, submission bot, art submission, photo contest, anonymous submission, i18n

About

A Node.js Discord bot that lets users submit images and descriptions through direct messages (DM).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors