Skip to main content

Dialog Panel Configuration

Dialog panels provide structured input interfaces using buttons, sliders, dropdowns, and other form-like elements. Unlike inventory panels, dialog panels are laid out as Minecraft style menus and are ideal for custom forms, menus, or user settings.

tip

When opening a Dialog Panel from an Inventory Panel, run the close command first. Otherwise, the Inventory Panel stays open in the background and will reopen when the Dialog Panel closes.


Overview

Dialog panels do not use inventory slot positions but instead arrange UI components in a linear or grid-style layout. Players can interact with text, options, input fields, buttons, and more.

Each dialog panel consists of two main sections:

  • layout: — defines the layout and sequence of components
  • items: — defines each UI element used in the panel

Key Features

  • Text & Info Blocks: Use rich text or hoverable tooltips to explain features.
  • User Inputs: Input fields, toggles, ranges, and dropdowns support structured data entry.
  • Buttons with Logic: Buttons can run server commands, open URLs, or trigger other panels.
  • Component Layout: Use layout: and items: to organize elements.
Dialog Rendering Order

Dialogs follow a three-phase layout:

  1. Text and item components are always rendered at the top
  2. Input components (like input, option, range, boolean) are placed in the middle
  3. Buttons appear at the bottom

Within each section, you can arrange components in any order you like using the layout: map — but they will always group by type in this top-middle-bottom structure.


Configuration Options

Type

Defines this panel as a dialog (form-based) GUI.

type: 'dialog'

Title

Sets the panel’s title.

title: 'Example Dialog Panel'

Command

This is the in-game command players use to open the panel. You can include arguments, and reference them using %commandpanels_session_<arg>% inside the panel. E.g. if the command is example player, using /example RockyHawk will open the panel and the placeholder %commandpanels_session_player% will return "RockyHawk".

command: 'ban player'

Aliases

This will define other commands that can be executed that will still open this panel. The arguments used in the command will also be used for these aliases too, so if you have command: 'ban player' defined, you can use /ban Player, /mute Player, /kick Player, or /warn Player they will all open the panel the same way.

aliases: ['mute','kick','warn']

Commands

A list of commands to be executed automatically when the panel is opened.

commands:
- '[msg] Panel has been opened'
- '[session] set player RockyHawk'

Floodgate

If the player is using Bedrock Edition (via GeyserMC), this option can redirect them to a compatible floodgate panel instead.

floodgate: 'floodgate_panel_example'

Has Exit Button

If set to true, the last button you have listed in the order will be moved to the bottom of the Dialog in the exit button location. If a user closes the Dialog by pressing the ESC key, the Command Actions from the exit button will also be triggered even if the button isn't pressed.

has-exit-button: false

Escapable

If true, players can exit the dialog using ESC or form cancel methods.

escapable: true

Columns

Sets the number of columns the dialog should span across.

columns: 1

Order Layout

The layout: section determines the display sequence of components.

Each entry follows the format:

layout:
0:
- '<component-name>'
- '<component-name>'

The panel processes the display by iterating over sorted order keys and rendering listed components. If multiple components are listed under the same order number, conditions will be parsed and the first component that meets conditions will be used.

Note: Components do not render in the same order as declared in items: — the order list controls display sequence.