Skip to content

Modules

Tickets

Types, panels, transcripts, claims.

Channel/thread/DM tickets with modal questions, claim/close, transcripts.

Every ticket opens with a control row: Claim, Rename, Transcript, Close and Close with reason, which asks for the reason first and keeps it on the transcript and the log. Any of them can be pressed by ticket staff: admins, anybody with Manage Server or Manage Messages, or a support role named on the category. Extra buttons per category are added on the dashboard: ping a role, add a tag, post a message, or give the opener a role. That last one is the verify button: only staff can press it, the person who opened the ticket never can, and whoever opened the ticket gets the role. The Embed Builder has the same action, Give the ticket opener a role, for a design used as a category's opening card.

Or just tell the bot#

Say it in chat
set up tickets in #tickets with support, bug reports, staff app, partnership
set up tickets

Name the channel and the kinds in the first sentence, or leave them off and it asks. It then asks buttons or a dropdown, where transcripts go, who is staff, and for each application what the questions are: up to five through the button, or up to twenty five if it moves to DMs, which happens on its own past five questions. go writes the same categories and panel the dashboard writes and posts the panel. 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.

Questions first#

Every category can ask up to five questions in a popup before the ticket opens: a label, a hint, one line or a paragraph, required or not. The answers are the first thing in the ticket and are in the transcript. Set them on the category on the dashboard; a ticket button in the Embed Builder has the same editor.

Category settings#

Each category carries its own Discord category to open in, staff roles, who to ping, a name pattern, a welcome message, whether the opener's attachments and embeds are allowed, whether Claim is on, the open limit per person, a transcript channel, and what happens on close. Three more: Activity log channel, a line when a ticket opens and closes. Close when quiet, hours with no message before the bot closes it. Let the opener close, off means only staff close; reports, applications and verifications are always staff only. Before it makes a channel the bot checks the category exists, that it has the permissions and that the server has room, and says which one is missing instead of leaving half a ticket.

Panels#

A panel is the message members press to open a ticket. It has a title, a description, a picture, a thumbnail and a footer, or a saved Embed Builder design. In the description, type : for one of the server's own emojis, @ for a role and # for a channel and the bot posts the real thing. A picture link goes in the picture field, not the description: Discord shows a link in a description as a link. A Discord attachment link is fine there; the bot copies it to Dispresso's CDN when it posts, so the picture does not vanish when Discord's link expires.

Standing it up#

A type is the kind of ticket, a panel is the message that offers it. Make the types first, then hang a panel on them and post it where members will see it. All of it can be done on the dashboard instead.

Copy and paste
/ticket type create key:report label:"Report"     make a kind of ticket
/ticket type question-add                        add one of its up-to-five questions
/ticket type style                               its colour, picture and wording
/ticket type edit                                everything else, including who staffs it
/ticket type list / delete

/ticket panel create key:support title:"Support" the message members press
/ticket panel post key:support                   put it in this channel
/ticket panel list / delete

Members do not need a panel. /ticket open takes a category and opens one straight away, asking that category's questions first, which is the door to point somebody at when they are already in a different channel.

Verification tickets that read a screenshot#

A verification category can ask members to post a screenshot of their own Discord account settings. The bot reads two rows off it: the Username, which it compares with the handle of the person who opened the ticket, and the Age Group, Adult or Teen. It then pings staff with a card saying what the screenshot shows, with buttons to give the adult role, the teen role, or reject it. Staff can also just say it in the ticket: give them the adult role, they're a teen or reject it. When the username on the screenshot is not the member's, the card offers Reject and nothing else, however clearly the age reads, because the easiest trick is sending somebody else's screenshot.

Nothing is granted automatically. A screenshot can be edited, so the card says what the picture claims, not what the member is, and a staff member always makes the call. When a ticket opens it tells the member where to find the row on a phone and on desktop, and reminds them their email and phone number sit on the same screen so they can cover them up. This is separate from ID verification, which checks a government ID on the site.

Or just tell the bot#

Say it in chat
i want verification tickets in #verify
read age screenshots
the adult role is @18+
teens get @Teen
what does the screenshot verification do
stop reading age screenshots

The first line builds the verification category; the rest turn the reader on, name its two roles and turn it off. On the dashboard it is on the Tickets page, per category: a toggle, and the two role pickers once it is on. 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.

Bought from the shop#

A shop item can be set to deliver as a ticket rather than a role or a message. Buying one opens a ticket in a category called Purchases, made the first time it is needed alongside your other categories, so a purchase gets the same claim, transcript and close buttons as any other ticket.

Inside a ticket#

Copy and paste
/ticket claim          take it, so two staff do not answer at once
/ticket add @member    pull somebody else in
/ticket remove @member
/ticket rename <name>  rename the channel
/ticket close [reason] the reason goes on the transcript and the log
  • /ticket claim
    Claim this ticket. Server staff only.
  • /ticket close
    Close this ticket. Server staff only.
  • /ticket add
    Add a member to this ticket. Server staff only.
  • /ticket remove
    Remove a member from this ticket. Server staff only.
  • /ticket rename
    Rename this ticket channel. Server staff only.
  • /ticket panel create
    Create or update a ticket panel. Server staff only.
  • /ticket panel post
    Post a configured panel to this channel. Server staff only.
  • /ticket panel list
    List ticket panels in this server. Server staff only.
  • /ticket panel delete
    Delete a ticket panel. Server staff only.
  • /ticket type create
    Create a ticket type. Server staff only.
  • /ticket type edit
    Edit ticket type basics. Server staff only.
  • /ticket type style
    Edit a ticket type's embed style. Server staff only.
  • /ticket type question-add
    Add a modal question to a ticket type. Server staff only.
  • /ticket type question-remove
    Remove a question from a ticket type. Server staff only.
  • /ticket type list
    List ticket types in this server. Server staff only.
  • /ticket type delete
    Delete a ticket type. Server staff only.