Discord.js 14 bot made to handle whitelisting to a server with a form.
Version Française juste ici: https://github.com/DooubleTap/Gatekeeper/blob/main/README_FR.md
I was using a website like Gather.sh to handle whitelisting of players on my discord server. It was really useful, because we are a strict roleplay server on Fivem and we like to validate players coming in the community with a small resumé of their experience on other servers. Then Gather.sh stopped being supported, was getting ultra laggy and sometimes just broken.. I figured that using a website, for something that could be done directly in discord would be so much better and would reduce the usage of 3rd party software that is often not free.
This bot, can be started from your own pc, or from a windows/linux VPS or Dedi. (Usually people with FiveM servers will have a server hosted somewhere, i suggest a OVH Game-1 or 2 Dedi as it comes with a Mitigation that is pretty amazing (anti-ddos))
Here is a guide to install this bot.
Make sure you have this installed on your pc or server first.
- Node.js installed (v18+ recommended): https://nodejs.org/
- Git (optional if cloning from GitHub): https://git-scm.com/
- VSCode (to edit and run the bot): https://code.visualstudio.com/
- A Discord account with admin access to your server.
- If i may suggest, setup a second windows account and run your bot there. This way your VSCode will not become annoying to use.
This will make it that you need to start your bot everytime the windows instance reboots.
- Download the bot from here.
- Make sure you use discord.js 14
npm install discord.js@14 - Go on https://discord.com/developers/applications and setup your bot there.
- In your application, go to Installation, uncheck
User Install. In Default Install Settings, scopes areapplication.commandsandbot(Grab the Install Link and paste it in your discord)
- In OAuth2 add this redirect:
http://localhost:8080/callbackand save
- In Bot make is like this

- Then edit the .env.example file with all the keys and ids required, then rename it to: .env
- Edit the config.json file.
Screenshots: (Sorry, our community is french, so everything is french, but it is easy to just translate the text to your prefered languages. :) )
This screenshot is what the player see before clicking to open the form. 
When the form opens (Discord modal) 
When a user sends a form, he will receive this confirmation. (Completely editable by you) 
This is the form with the buttons you will receive in your staff only channel: 
When its rejected or approved, you see the form edited with this information at the bottom: 
This is the modal you see when you reject a application: 
This is what the user receives when his form has been rejected (With the reason): 
This is what the user receives when his form is approved (Editable): 
This is what the user receives when they are requested for a vocal meeting: 