Components & Interactions
addModalFileUpload
$addModalFileUpload[] — Modal File Upload
$addModalFileUpload[] adds a file upload component to the modal being built with $newModal[].
Syntax
$addModalFileUpload[label;description;customId;(minFiles);(maxFiles);(required)]
Parameters
| Parameter | Required | Default | Description |
|---|---|---|---|
label |
Yes | — | Text displayed above the field. |
description |
Yes | — | Description under the label. May be left empty (;;). |
customId |
Yes | — | Identifier of the field. |
minFiles |
No | 1 |
Minimum number of files (integer from 0 to 10, otherwise Expected an integer from 0 to 10.). |
maxFiles |
No | 1 |
Maximum number of files (integer from 1 to 10, otherwise Expected an integer from 1 to 10.). |
required |
No | yes |
yes/true or no/false (empty gives yes). |
Return value
Returns an empty string. The component is added to the current modal. After submission, $input[customId] returns the IDs of the uploaded files joined by commas (the SDK exposes them as a list of IDs).
Behavior
- The component is added to the modal being built with
$newModal[]. Without a prior$newModal[], the engine creates a default modal (IDmodal, titleModal), and a$newModal[]called after that fails withA modal is already being built.: always call$newModal[]first. - A boolean argument other than
yes/true/no/falseis an error (Expected yes or no, got "<value>".). An integer out of range is an error too. - The engine does not check the length of the label, description or placeholder when the function runs.
- The modal is sent when the script ends. It must hold 1 to 5 components (
A modal requires 1 to 5 inputs.;$addModalTextDisplay[]counts too), and the script must not also produce text, embeds or component rows (A modal cannot be combined with a message response.). It can only answer a slash-command or component interaction that has not been answered yet. - When the modal is submitted, the values are read with
$input[customId]and the modal ID with$customID.
Examples
Upload required
$newModal[apply_modal;Application]
$addModalTextDisplay[Please attach your CV in PDF format.]
$addModalTextInput[Cover letter;;motivation;paragraph;50;1000;yes]
$addModalFileUpload[Your CV (PDF);;cv;1;1;yes]
Optional upload with other fields
$newModal[report_modal;Report]
$addModalTextInput[Description of the problem;;description;paragraph;20;1000;yes]
$addModalFileUpload[Screenshot (optional);;screenshot;0;1;no]
Notes
$newModal[]takes the modal ID first, then its title.- This component is only used in modals.
Try it
Paste an example into the playground to preview its message (functions that act on Discord are not run), or build the same thing with blocks.