Friend Time
How to self-host Friend Time.


  1. 1.
    Node.js v15 or newer.
  2. 2.
    A MySQL or MariaDB database.


  1. 1.
    Copy example config files.
    • Navigate to the config folder of this project.
    • Copy all files ending in .example.json and remove the .example from the copied file names.
      • Ex: config.example.json should be copied and renamed as config.json.
  2. 2.
    Obtain a bot token.
  3. 3.
    Modify the config file.
    • Open the config/config.json file.
    • You'll need to edit the following values:
      • - Your discord bot's user ID.
      • client.token - Your discord bot's token.
      • The ip address that your database is running on (or localhost)
      • database.database - The name of the database to use.
      • database.username - The username to use when accessing the database.
      • database.password - The password of the user accessing the database.
  4. 4.
    Install packages.
    • Navigate into the downloaded source files and type npm install.
  5. 5.
    Register commands.
    • In order to use slash commands, they first have to be registered.
    • Type npm run register to register the bot's commands.
      • Run this script any time you change a command name, structure, or add/remove commands.
      • This is so Discord knows what your commands look like.
      • It may take up to an hour for command changes to appear.


You can run Friend Time in 4 different modes:
  1. 1.
    Normal Mode
    • Type npm start.
    • This runs the bot directly with Node and without shards.
    • Use this mode if you don't need sharding.
  2. 2.
    Dev Mode
    • Type npm start:dev.
    • This runs the bot with ts-node-dev.
    • Use this mode for general development.
    • TypeScript files are compiled automatically as they are changed.
  3. 3.
    Shard Mode
    • Type npm run start:shard.
    • This runs the bot directly with Node and with sharding enabled.
    • Use this mode if you need sharding.
  4. 4.
    PM2 Mode
    • Run by typing npm run start:pm2.
    • This runs the bot using the process manager PM2.
    • Use this mode if you require the bot to always be online.
Last modified 1mo ago
Copy link