Staff application

In this guide you will learn how to make a form using discord modals.

Here's how it's going to look like: Video preview

1. Button sending

Let's send a button users will use to open up the form.

The button will be blurple, have a label Apply, and an id staff-app.

!!exec $button[Apply;blurple;staff-app]

Button preview

2. Button handling

Once we have our button ready, let's make a command to handle it.


It will have a button type, and a trigger staff-app (the ID we set in the previous step)Button trigger


The button is meant to send a modal upon clicking, so let's use $modal to deploy a form with three options:

  • Position
  • Reason
  • Pronouns
    {title=Staff application}
        {ph=What position would you like to apply for?}
        {ph=Why do you apply?}
        {ph=What pronouns do you use?}

3. Modal handling

As you may have noticed, after clicking the button modal appears, but submitting it doesn't do anything. We'll now create a command to catch all the submitted forms.


In order to detect submitted forms, we need to set the type to Modal, and trigger to staff-app (Which is our modal ID)Modal trigger


Once we catch a submitted form, we need to do a few things:

  1. Load user's answers
  2. Send a report to a different channel
  3. Confirm the submission with an interaction reply

// Save answers to different variables

// Send message to #staff-applications
    {title:Staff application}
    {description:$mention has submitted the staff application}
    // Attach pronouns section only if provided
        {footer:Pronouns\: $pronouns} // : has been escaped using a backslash

// Send an ephemeral interaction reply
$interactionReply[Thank you for your submission;yes]

Related pages

Here's a list of functions used and pages mentioned in this tutorial. We recommend you to continue reading about anything that seems unclear to you:

Page or functionDescription
$buttonsend a button
Button triggerdetect button clicks
$modaldeploy a modal
Modal triggercatch submitted modals
$letdefine a temporary variable
$getretrive a temporary variable
$modalAnswerget user's answer
$channelSendMessagesend a message elsewhere
$channelIDfind a channel by it's name
$ifconditional statement
Complete embedcreate an embed
$interactionReplysend interaction reply

🎉 Congratulations!

You've made a complete staff application system!