Show Dialog
Description
Shows the target player a dialog from the dialogs folder: a window with text, items, inputs and buttons. Needs 1.21.6 or newer. On Folia, it opens on the player's region thread.
In dialog text, <target.*> is the viewer and <caster.*> is this mechanic's caster. With no shown Buttons entry, nothing opens and an error is logged. The ExitButton does not count.
This is a Paper-Only mechanic!
This is a Premium-Only mechanic!
| Implemented Placeholders |
|---|
<dialog.button> |
<dialog.[key]> |
<dialog.page> |
<dialog.pages> |
Attributes
| Attribute | Aliases | Description | Default |
|---|---|---|---|
| dialog | d, name | Dialog name. Case-sensitive. Supports placeholders | default |
Response Variables
Button and clickable text skills get these values:
| Variable | Value |
|---|---|
dialog.button |
The clicked button's position among shown buttons, from 0. -1 for the ExitButton, -2 for clickable text |
dialog.[key] |
Each shown input, by its Key. Clickable text sends only its key=value arguments |
dialog.page, dialog.pages |
Page (from 1) and page count, set only by dialogs with PageSize |
Other dialog.* |
Every value the dialog opened with |
Input values are text:
text: the typed text. Tags,<skill>included, get a\in frontbool:trueorfalserange: a decimal such as5.0option: the option's key
In var= attributes, write skill.dialog.[key].
The skills keep this mechanic's caster. Mechanics without a targeter act on the clicking player. Clicks expire 10 minutes after the dialog opens.
Navigation
For Back or Refresh buttons, use showDialog with the previous or same dialog. The dialog.* values are kept, so entries stay filled in.
Examples
Shows WelcomeNotice to the triggering player.
Skills:
- showDialog{dialog=WelcomeNotice} @trigger
Shows CharacterSetup to every player within 10 blocks.
Skills:
- showDialog{d=CharacterSetup} @PlayersInRadius{r=10}
Shows PunishMenu to the caster, which must be a player, with the trigger's name as <dialog.target>.
Skills:
- setvariable{var=skill.dialog.target;type=STRING;value="<trigger.name>"}
- showDialog{dialog=PunishMenu} @self
Aliases
- openDialog
- dialog