Set up a Discord character roster for mains and alts

Updated · 4 min read

To list a member’s main and alts in Discord, enable Character Roster, choose the field labels your guild uses, and have members add their own entries. Anyone in that server can then use private slash-command lookups for an exact character name or a member’s roster; it is a self-reported roster, not a game-account verification service.

Start free

Start free. Pro is $9.99/month.

Before you start

  1. Enable the roster and choose its field labels

    Open your bot’s Modules tab, select Character Roster for the intended server, turn on Enable the roster, and save. Set field 1, field 2 and field 3 labels for the details members should supply. Leaving a label blank hides that field and rejects new values for it; it does not turn the roster into a game-data import.

    Set characters per member from 1 through 10 and characters per server from 1 through 1,000 if the defaults do not fit your guild. Lowering either cap preserves entries already saved, but blocks new additions over the new limit. Optionally select a Roster staff role; Manage Server can always remove an entry through the separate staff command.

  2. Add one main and one alt from the member account

    From a test member, run /characters add name:Sunstone field1:Mage field2:Healer field3:80 main:true. The name is required; the three fields are optional and use the labels you configured. Marking this entry as main automatically marks that member’s other entries as alts.

    Add an alt with /characters add name:Moonvale field1:Mage field2:DPS field3:80. Without the main option set to true, it is an alt. Names accept 1–64 characters and must be unique in this server after trimming spaces and ignoring case. Do not present the result as proof of ownership: members supply their own names and fields.

  3. Look up the character and the member roster

    Run /characters lookup name:Sunstone from any member account in the server. The lookup is exact apart from case and surrounding spaces and returns a private reply with the character’s member, main or alt marker, and any visible fields. A partial-name search is not available.

    Run /characters list member:@TestMember page:1 to see that member’s entries. Omitting member lists your own entries. Results are ordered main first and then by name, with five entries on each page; a second page is available only when the roster needs it.

  4. Let members edit or remove only their own entries

    A member can run /characters edit name:Sunstone field3:81 to change a supplied field, add the rename option to change the name, or set the main option to false to mark an entry as an alt. Enter a single hyphen as a field value to clear that value. An edit with no change is refused, and a member cannot edit another member’s entry.

    Use /characters remove name:Moonvale from the owning member account to remove a test alt. If a staff cleanup is necessary, a member with Manage Server or the configured roster staff role can use /characters staffremove name:Moonvale. Staff removal is deliberately separate; it does not grant staff the ability to edit someone else’s entry.

Frequently asked questions

Can a Discord member add a main and alts?

Yes. Members add their own entries and can mark one as main; marking a new main changes that member’s other entries to alts.

Can I search part of a character name?

No. Character lookup matches one exact name while ignoring case and surrounding spaces. Names are unique within the server.

Can staff edit someone else’s character?

No. Edit and ordinary remove enforce ownership. Authorized staff can use the separate staffremove command to delete an entry.

Are characters verified against a game account?

No. Character names and fields are self-reported text. The module does not use a game API, spreadsheet or account login.

Ready to configure your bot?

Start free

Start free. Pro is $9.99/month.

Verified sources

File and line references support the commands, settings and limits described.

  • server/lib/botGenerator.js:2758-2763
  • server/templates/modules/characters/settings.js:2-33
  • server/templates/modules/characters/index.js:16-72
  • server/templates/modules/characters/store.js:41-81