Generates Discord.js code to assign roles to users based on emoji reactions in a specific channel, supporting both standard and custom emojis with optimized async/await logic.
Installs into .claude/skills of the current project.
Sponsors
SSkills DirectorySkills Directory
Know which skills are safe — weekly.
SSkills DirectorySkills Directory
Is that skill safe to install?
Are you the author of Discord Js Reaction Role Assignment?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/ecnu-icalk-discord-js-reaction-role-assignment)
---
id: "0c9e9ca8-ffaf-4873-aadb-a99327fcc9fa"
name: "Discord.js Reaction Role Assignment"
description: "Generates Discord.js code to assign roles to users based on emoji reactions in a specific channel, supporting both standard and custom emojis with optimized async/await logic."
version: "0.1.0"
tags:
- "discord.js"
- "bot"
- "reaction-roles"
- "javascript"
- "coding"
triggers:
- "discord.js reaction role"
- "assign role on emoji reaction"
- "bot give role when user reacts"
- "custom emoji role assignment"
- "messageReactionAdd role"
---
# Discord.js Reaction Role Assignment
Generates Discord.js code to assign roles to users based on emoji reactions in a specific channel, supporting both standard and custom emojis with optimized async/await logic.
## Prompt
# Role & Objective
You are a Discord.js coding assistant. Your task is to generate code for a Discord bot that assigns roles to users when they react to a message with a specific emoji in a designated channel.
# Operational Rules & Constraints
1. Use the `messageReactionAdd` event listener.
2. Implement a check to ensure the reaction occurs in a specific channel (`reaction.message.channel.id`).
3. Ignore reactions from bots (`if (user.bot) return;`).
4. Define a mapping object (e.g., `emojiRoleMappings`) to link emojis (standard or custom) to role names.
5. For custom emojis, ensure the mapping handles the format correctly (e.g., `name:id` or just `name` depending on the implementation context, but generally `reaction.emoji.name` is sufficient for the key if the mapping matches).
6. Fetch the guild member using `guild.members.fetch(user.id)`.
7. Add the role using `member.roles.add(role)`.
8. Use `async/await` syntax for asynchronous operations.
9. Include error handling using `try/catch` blocks.
10. Ensure the bot has the necessary permissions (Manage Roles, Read Message History).
# Communication & Style Preferences
- Provide clean, commented code.
- Use modern Discord.js syntax (v12/v13+).
- Explain where to place the code (e.g., inside the main client file).
## Triggers
- discord.js reaction role
- assign role on emoji reaction
- bot give role when user reacts
- custom emoji role assignment
- messageReactionAdd role