K
Docs
API Reference→Pieces→Show Pop-up Form
🪟

Show Pop-up Form

ui.modalThe Control PanelControls

Opens a pop-up form built from the Add Form Field pieces before it. This has to be the very first thing a flow does — Discord won't show a form after the bot has already replied, so don't put a Reply, a Wait, or any slow piece ahead of it. Catch the answers with a Form Submitted trigger.

When to use this
  • →Put every Add Form Field piece before this one
  • →Nothing may reply before it — no Reply, no Embed, no Wait
  • →You can open a form from a button click too, not just a slash command

On the canvas

This is what Show Pop-up Form looks like when you place it on your flow. Each field below is something you configure in the inspector panel.

🪟
Show Pop-up Form
ui.modal
Controls
titlerequired
Apply to join
customIdrequired
apply — your Form Submitted trigger listens for this
output
error

Config fields

FieldTypeReqWhat it does
title
Apply to join
textyesForm title 🪟
customId
apply — your Form Submitted trigger listens for this
textyesCustom id 🏷️

Output ports

outputThe form is open on their screen
errorNo fields staged, or something already replied
📐

In TypeScript, this would be…

Not something you need to write — just a look at what Kitcord does for you.

TypeScript
const modal = new ModalBuilder()
  .setCustomId("apply")
  .setTitle("Apply to join")
  .addComponents(...fieldRows);

// Must be the FIRST response — you cannot show a modal after
// interaction.reply() or interaction.deferReply()
await interaction.showModal(modal);