Modules
Rosters
One message the bot keeps up to date: ranks that follow real Discord roles, or your own sections as a team sheet.
A roster is one message the bot keeps up to date, not a command that prints a list. Pin it and it stays right, because every change redraws it in place.
Or just tell the bot#
set up the roster
make the roster go to #roster
add this guy to the unit roster (as a reply)
put @Dom on the roster as Weekend shift
take @Dom off the roster
dispresso promote @Dom
dispresso move @Dom up the roster
dispresso who is on the rosterPromote, demote, move up or down and who is on it all run the same !roster verbs. Giving somebody one of the roster's rank roles by hand puts them on it at that rank, and taking their last rank role off takes them off, with no sentence at all. 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.
Setup#
!roster setup #staff posts it. Open Rosters in /botdashboard or on the dashboard to set the rank ladder, the colour, and how each line reads. The rank ladder can only be set there: !roster ranks shows it and nothing in Discord writes it.
Ranks, or sections#
With no sections named, a roster groups people by their rank roles, and the ladder is your Discord role order rather than a list you keep by hand. Promoting somebody moves the role and the line together. Name sections instead, with !roster sections Captain | Players | Subs, and the same board becomes a team sheet whose headings are your own words and where nothing grants anything. Clearing the sections turns it back, and nobody comes off the roster either way.
Start from a template#
You do not have to decide five things before anything appears. Open Rosters on the dashboard and pick a shape: Staff Roster, Rank Ladder, Clan Roster, Esports Roster, Organisation Roster, Community Board, Content Team or Unit Roster. A template sets the title, the colour, the headings and the line format in one go, and it never touches your channel or your roles, so you can try another one without losing anybody.
How it looks#
Three formats, and they stack. Set a title, a colour, a rank heading style and a line format with {member}, {label}, {rank} and {section}. Shape a whole rank block with {rank} and {members}. Or draw the roster inside one of your saved Embed Builder embeds with !roster embed, putting {roster} in its description to choose where the names go. The embed is referenced rather than copied, so editing the design changes the roster next time it redraws.
The line and rank block formats are set on the Rosters page of the dashboard, with a live preview, or from Discord: !roster format shows both as they stand with an Edit button that opens the editor, and saving redraws the roster in its channel, which is the preview. A rank block format without {members} is refused rather than saved. !roster format reset puts the original look back. Both places write the same setting.
A roster too long for one message continues into more, in every format. A custom embed carries its design on the first page only, so a banner is not repeated five times down the channel.
More than one#
!roster new team-1 #team-1 Team 1 starts another. Commands act on the roster whose channel you type them in, so !roster add @member in #team-1 adds to that team sheet. !all lists every roster this server runs and the channel each one lives in, which is the way back when you have forgotten where one is.
Commands#
Every one of these has a /roster twin with the same verb.
!roster setup [#channel] post the living roster
!roster add @member [label] put somebody on it
!roster remove @member take them off. Their roles are untouched
!roster promote / demote one rank up or down, role and line together
!roster move @member up|down reorder somebody inside their own rank
!roster list who is on it, printed here, without redrawing the board
!roster ranks the rank ladder as the bot reads it, lowest first
!roster sections <names> your own headings instead of rank roles
!roster title <title> rename the embed
!roster format [reset] the line and rank block templates
!roster embed [name] draw it inside a saved Embed Builder design
!roster refresh redraw it, and re-post it if the message was deleted
!roster new <name> <#channel> [title] a second roster
!roster delete <name> remove a roster and clear its message
!roster boards every roster here and where it is. Also !allTwo of those are worth keeping apart. !roster remove takes somebody off the board and leaves every role they have alone; !roster delete takes away the whole board. !roster refresh is the fix when somebody has deleted the message a roster lives in: it puts it back rather than needing a fresh setup.
- !roster setupalso /roster setup`!roster setup #staff` posts the living roster in a channel.
- !roster addalso /roster add`!roster add @member Weekend shift` puts somebody on the roster. `!roster remove` takes them off and leaves their roles alone.
- !roster promotealso /roster promoteMoves somebody one rank up, role and roster together. `!roster demote` goes the other way.
- !roster ranksalso /roster ranksThe rank ladder, lowest first, as the bot reads it. The ladder itself is set on the dashboard.
- !roster sectionsalso /roster sections`!roster sections Captain | Players | Subs` turns a rank ladder into a team sheet.
- !roster titlealso /roster titleRenames the board. Its colour, line format and rank block template are on the dashboard.
- !roster embedalso /roster embed`!roster embed Team Sheet` draws the roster inside one of your saved Embed Builder embeds.
- !roster newalso /roster new`!roster new team-1 #team-1 Team 1` starts another one. `!roster boards` lists them, `!roster delete` removes one.
- !roster listalso /roster listWho is on it, without touching the board. `!roster move @member up` reorders within a rank.
- !roster refreshalso /roster refreshRedraws it, and re-posts it if somebody deleted the message.