Applications
The Applications module lets staff build application forms — staff applications, partner applications, whatever your server needs — post them as a panel, and let members apply through Discord's native modal forms. Submissions land in a review channel with Accept/Deny buttons.
Currently in testing
Applications is locked to a single test server right now and isn't available server-wide yet. Every command checks the guild server-side, so this can't accidentally activate anywhere else even if commands get re-deployed globally.
Creating an application
/application create name:<name> review_channel:<channel> [cooldown] [max_active] [required_role] [blocked_role] [accept_role] [deny_role] [reviewer_role]
| Option | Required | What it does |
|---|---|---|
name | Yes | Application name, up to 80 characters. Must be unique per server. |
review_channel | Yes | Where submissions get posted for staff review. NexaBot needs Send Messages and Embed Links there. |
cooldown | No | How long a user has to wait before reapplying — 30d, 7d, 12h, etc. Defaults to no cooldown. |
max_active | No | Max pending submissions per user for this application, 1–10. Defaults to 1. |
required_role | No | A role a user must have to apply. |
blocked_role | No | A role that blocks a user from applying. |
accept_role | No | Role granted automatically when a submission is accepted. |
deny_role | No | Role granted automatically when a submission is denied. |
reviewer_role | No | Role allowed to Accept/Deny this application, in addition to Admins. |
An application starts with no questions — add those next.
Adding and removing questions
/application addquestion application:<name> question:<text> [required] [max_length] [style]
| Option | What it does |
|---|---|
application | Which application to add the question to (autocompletes) |
question | The question text, up to 300 characters |
required | Whether the question is required. Defaults to true. |
max_length | Max answer length, 1–4000. Defaults to 500. |
style | Short (single line) or Paragraph. Defaults to Paragraph. |
An application can hold up to 25 questions. Duplicate question text (exact match, case-insensitive) is rejected.
/application removequestion application:<name> number:<n>
Removes a question by its number, as shown in /application view.
Posting a panel
/application panel title:<text> description:<text> channel:<channel> application_1:<name> [application_2] [application_3] [application_4] [application_5]
A panel can include up to 5 applications. It always posts as a dropdown ("Make a selection") in the target channel, even if you only add one application — the panel format doesn't change based on how many you're offering. Every application on the panel needs at least one question configured first, or the command rejects it.
Managing applications
| Command | What it does |
|---|---|
/application list | List every application on the server, with question count and enabled/disabled status |
/application view application:<name> | View an application's full config and question list |
/application toggle application:<name> enabled:<true/false> | Enable or disable an application |
/application delete application:<name> confirm:<true> | Permanently delete an application — confirm must be set to true |
Reviewer roles
/application reviewers application:<name> [role]
Sets which role can Accept/Deny submissions for a specific application.
Admins can always review, regardless of this setting — a reviewer
role adds to that, it never replaces it, so a deleted or misconfigured
role can't lock admins out of their own application. Leave role empty
to clear it back to admins-only.
How members apply
- A member clicks an application in the panel dropdown
- NexaBot checks eligibility: required role, blocked role, cooldown, and
whether they already have a pending submission at the
max_activelimit - If eligible, a modal opens with up to 5 questions at a time — if an application has more than 5 questions, answering a page shows a Continue button that opens the next modal
- On the final page, the submission is created and the member gets:
- An in-channel confirmation showing exactly what they answered
- A DM with a copy of the same answers (best-effort — this doesn't block submission if their DMs are closed)
Sessions expire
An in-progress application expires after 30 minutes of inactivity. Starting a new application while one is already in progress cancels the old session.
How staff review submissions
Each submission posts to the review channel as an embed with the applicant's answers and five buttons:
| Button | What it does |
|---|---|
| Accept | Accepts the submission immediately, no reason attached |
| Deny | Denies the submission immediately, no reason attached |
| Accept with reason | Opens a modal for a reason, then accepts |
| Deny with reason | Opens a modal for a reason, then denies |
| History | Shows the applicant's past submissions for this server |
Whichever reason is given (if any) is sent to the applicant by DM along
with the decision. The accept_role or deny_role configured on the
application, if any, is applied automatically — respecting role hierarchy,
so NexaBot won't try to grant a role positioned above its own.
Once a submission is decided, the review card's buttons are disabled and the embed updates to show who decided it. A submission can only be decided once — if two staff members click at the same time, only the first one goes through.
Limits
| Limit | Value |
|---|---|
| Questions per application | 25 |
| Max answer length | 4000 characters (Discord's modal cap) |
| Applications per panel | 5 |
| Session inactivity timeout | 30 minutes |