Skip to main content

Overview

Attach an emoji to a role, and anyone who reacts with it gets that role. Take the reaction off and the role comes back off — unless you make it persistent. Unlike button roles, these work on any message in your server, including ones confine didn’t send.
You need Manage Roles to run these commands, and confine needs it too.

Adding a reaction role

Confine adds the reaction to the message for you, so members have something to click straight away.

Pointing at the message

Persistent roles

Add $persistent and the role sticks even after the member removes their reaction.
This is what you want for verification. Members verify once and keep access even if they clear their reaction later.

Roles confine won’t accept

Self-assignable moderation power is a security hole, so any role carrying one of these is rejected:administrator, manage_guild, manage_channels, manage_messages, kick_members, ban_members, moderate_members, manage_roles, manage_threads, view_audit_log, manage_webhooks, manage_expressions, mention_everyone
Confine can’t hand out a role positioned higher than its own — drag confine’s role above it.
Unless you own the server, you can’t configure a role sitting at or above your highest one.
@everyone and roles tied to bots or integrations are off limits.

Removing reaction roles

One emoji

Every emoji on one message

Every reaction role in the server

This clears everything and can’t be undone.
Confine asks you to confirm with buttons first — only whoever ran the command can respond, and it expires after 30 seconds.

Viewing what’s configured

,reactionrole list pages through every reaction role with its message link, role, emoji, and whether it’s persistent.