Best Way to Create Discord User Installable Apps (Discord.js + Robo.js)

Best Way to Create Discord User Installable Apps (Discord.js + Robo.js)

Discord launched a new feature called User Installable Apps in March that allows users to install your bots directly to their account, letting them use your Discord bot anywhere, even in DMS and servers your bot is not in!

This feature is currently in preview, but you can start using it today.

They’re Just Like Discord Bots

You can use Discord.js to create your Discord bot and Robo.js to make things easier. We’ll be creating Slash Commands and Context Commands and making them user installable.

Ready to start your adventure? Run the following in your terminal:

npx create-robo <projectName> -k bot

This will spawn a new Discord.js project ready to use as a Discord Bot, made easier with the Robo.js framework. For this guide, we’ll be opting out of TypeScript to keep things simple.

Creating Commands

Let’s create a slash command that responds with “Hello, World!” when used. Create a new file in the /src/commands folder called hello.js:

export const config = {
description: Say hello to the world!
}

export default (interaction) => {
interaction.reply(Hello, World!)
}

Because we’re using Robo.js, just having the file in the /src/commands folder is enough. It will automatically load and register commands.

Next, let’s create a context menu command that responds with “Hello, ${user}!” when used. Create a new file in the /src/context/user folder called Hello.js:

export default (interaction, user) => {
interaction.reply(`Hello, ${user.username}!`)
}

That’s it! Now let’s make these commands user installable.

Making The App User-Installable

User installable apps are new, so let’s enable this feature in our project’s configuration. Open the robo.mjs file in the config folder and add the following:

export default {
// … rest of config
experimental: {
userInstall: true
}
}

This will tell Robo.js to register all commands as user installable.

Next, enable the “User Install” authorization method for this app in the Discord Developer Portal and give it the application.commands scope. You can share the Discord Provided Link to let users install this app. Also, make sure the “Public Bot” setting is enabled there.

Try It Out

Now that we’ve got a user installable app, let’s try it out!

Use the Discord Provided Link to install the app to your account then run your project in development mode:

npm run dev

You can now use the /hello slash command in any server or DM, and the context menu command when right-clicking on a user. You may need to reload Discord to see the changes.

Wasn’t That Easy?

User Installable Apps are just Discord Bots you can install and creating them is a breeze with Robo.js. It handles all the heavy lifting for you, so you can focus on building your app and making it awesome.

What’s more, you can use the built-in Flashcore Database to persist data easily or Robo.js Plugins to add new features with one command, such as AI Chatbot Features or Web Servers. You can even use it to build Discord Activities in seconds!

Don’t forget to join our Discord server to chat with other developers, ask questions, and share your projects. We’re here to help you build amazing apps with Robo.js! 🚀

🚀 Community: Join our Discord Server

Our very own Robo, Sage, is there to answer any questions about Robo.js, Discord.js, and more

Leave a Reply

Your email address will not be published. Required fields are marked *