I'm not sure how the "reaction menu" operation model came to be in the first
place, but it's quite common in the Discord environment.
The large number of
standardized emoji characters
provides a rich but fairly simple graphic way to express what someone
thought of a message, without sending a whole 'nother message.
Sometimes it works appropriately, sometimes it doesn't.
Anyway, the way reactions work in Discord includes a counter function, to
indicate how many people agreed with a particular reaction rather than
adding a new one.
It can thus also be used for informal polling or voting.
The key piece here is that either of clicking an existing emoji to bump
its count or adding a new one are both "server events", which bots can
pick up in the event stream from a channel.
At some point, the idea of using those to trigger bot actions, specifically
to assign or deassign extra roles, became popular and many bots now
support it.
So it is possible to post a message, and then set up a bot to pay attention to all the reactions to it and assign them special meaning to add roles to any user who clicks them. If this sounds like a potential security hole, it is, if misconfigured! Most of the roles are simply tags and carry no special privilege; the idea as far as a convention participant is similar to ribbons pasted onto a real-life badge. The problem on Discord is that a user's icon must be clicked to display a little pop-up with all of these listed, so none of this is immediately visible just by viewing the main screen. |