Modules
Self Roles
Reaction, button, dropdown and colour role menus, plus a numbered colour list members pick from with !color.
Self Roles are menus your members use to give themselves roles, without asking staff. There are four kinds and they differ only in how a member picks.
Or just tell the bot#
dispresso make a role menu called pings
dispresso add @Announcements to the pings menu
dispresso post the pings menu in #roles
dispresso make the pings menu exclusive
dispresso add @Red to the colour list
dispresso remove the pastel pack
dispresso what role menus do we have
set up these reaction roles that are here
turn on self rolesA menu's roles, whether it posts one at a time, and the colour list (adding a role, removing a colour, or deleting a whole pack) are all set this way. Moving from another bot: say the reaction-roles sentence in the channel where the old posts are. The bot reads the recent posts, pairs every reaction with the role written next to it (in the text or inside the embed), asks about each one it cannot pair (skip drops it), shows you the whole list, and posts them back as its own menus. A colour word in the title or channel makes the menu one at a time. The old posts are left alone. Start with dispresso or mention it. It asks for anything it still needs, writes the same settings the dashboard writes, and the whole list of sentences is on Talk to Dispresso.
The four kinds#
Reaction menus put emoji under a message. Adding the reaction takes the role, removing it gives the role back. Every role needs an emoji, because the emoji is the only thing a member can press.
Button menus give each role its own button. Pressing it toggles that role, so the same button takes it and gives it back.
Dropdown menus put every role in one list. A dropdown reports the whole selection, so anything a member leaves unticked comes off. That is what makes it the right pick for "choose all that apply".
Colour menus are a dropdown that is always one at a time. Two colours at once means whichever role sits higher wins, and the member cannot tell which one they picked, so the menu will not let that happen.
Building one#
!rolemenucreate button #5865F2 Pick your pings
!rolemenuadd 3 @Announcements 🔔 Announcements
!rolemenuadd 3 @Events
!rolemenupost 3 #rolesThe emoji is optional on every kind except reaction, and anything after it becomes the label. With no label the role's own name is used.
Or build it on the site: Dashboard, your server, Self Roles. Start a menu, pick its kind, add the roles with their labels and emoji, and save. It is the same menu the bot reads, so it shows up in !rolemenus straight away and goes into a channel with !rolemenupost the same as one built by hand. Posting always happens from Discord, because that is where the channel is.
Managing them#
!rolemenus list this server's menus
!rolemenuexclusive 3 on one at a time
!rolemenuremove 3 @Events take a role off
!rolemenudelete 3 forget the menuTurning a menu exclusive means picking a new role drops whichever one from that menu the member already had. Re-post the menu after changing it so the controls match.
The colour list#
A colour menu also comes with a numbered list, for members who would rather type than press a dropdown. !colors posts a picture of every colour the server offers as a numbered swatch, with the same numbered list under it, and !color 3 takes number three. !colorclear takes it off again.
!colors the numbered swatches, as a picture
!color 3 take colour number 3
!colorclear take your colour off
!coloradd @Red put a role on the list (staff)
!colorremove 3 take colour 3 off the list (staff)The list and the dropdown are the same rows. Adding a colour with !coloradd puts it on the posted menu too, so the two cannot drift apart and tell members different things. !colorremove takes a colour off the list and leaves the role itself alone.
Colours are one at a time whatever else the server does. Two colour roles at once means whichever one sits higher wins and the member cannot tell which they picked, so taking a new colour drops the old one.
Colour packs#
You do not have to make twenty colour roles by hand. A pack is a ready made set of twenty, and building one creates the roles and puts them on the colour list in one confirmation. !colorpacks lists the ten: classic, pastel, neon, candy, earth, jewel, vapor, mono, and two gradient packs (gradient, duotone) that need a server with Discord's gradient role feature. !colorpack pastel shows a picture of the twenty colours it would make, numbered as they will land on your list, before it makes anything. A colour whose role name already exists on the server is skipped and left alone.
!colorpacks the ten packs, with the ones built here marked
!colorpack pastel preview the pack, then confirm to build it (staff)
!colorpackremove pastel delete the roles that pack created (staff)Build as many as you like: the colour list holds 125, so six packs of twenty fit with room left for colours of your own. !colors shows every one, 25 to a card, numbered straight through, and a posted colour menu gets one dropdown per 25. Each pack is removed by name; with only one built the name can be left off.
The roles are created with no permissions, unhoisted, at the bottom of your role list. Discord shows a member's highest coloured role, so a picked colour only shows on members whose other roles are uncoloured or sit below it; if staff colours should lose to a picked colour, drag the block up in Server Settings once. !colorpackremove only ever deletes roles a pack made; a role you added with !coloradd is never touched by it.
On the site the colour list lives on your server's Self Roles page (Dashboard, your server, Self Roles), as a menu of kind Colour. It shows the same numbered swatches!colors draws, in the order members pick them, and you add or reorder colours there the same way as any other menu. The colour is always the role's own, so recolouring the role in Discord recolours the swatch.
Two things worth knowing#
Dispresso can only hand out roles below its own. If a role sits above the Dispresso role in your server settings, Discord refuses it, so move Dispresso above the roles you want it to manage. Roles managed by another integration cannot be self assigned at all.
Deleting a menu does not delete its message. The message stays in the channel and stops doing anything, so delete it too.
Setup#
Use /botdashboard and open Self Roles to switch the module on and to cap how many roles a member may take from one menu. The cap counts roles per menu rather than in total, so a pronoun menu and a pings menu do not fight each other.