Skip to main content

Dialogue

FioMenu Java Dialogue

FioMenu's dialogue files are separate from normal inventory menus. They use type: "DIALOGUE" and define layout entries inside a layouts: section rather than a chest-style items: structure.

Core dialogue definition​

The bundled dialogue_main.yml uses:

menu:
type: "DIALOGUE"
dialogue:

Important dialogue behavior fields shown by the source:

  • contain-exit
  • escapeable
  • columns

These fields control whether the dialogue has an exit option, whether escape closes it, and how many columns the item buttons should use.

Entry ordering​

Dialogue files use a priority: list to decide which layouts appear first.

That means the visual order is not inferred from YAML declaration order alone. The priority list is the actual arrangement guide.

Layout types​

The source example contains:

  • text layouts
  • item layouts
  • conditional text layouts
  • conditional item layouts

Text layouts​

A basic text layout uses:

layouts:
"basic_text":
type: "text"
width: 200
text:

This is used for explanatory paragraphs or static dialogue lines.

Interactive rich text placeholders​

The advanced text example uses placeholder blocks such as {thething}, {anotherone}, and {clicktocopy}. Each placeholder can define:

  • text
  • hover
  • type
  • value

The documented interaction types in the source example are:

  • OPEN_URL
  • RUN_COMMAND
  • SUGGEST_COMMAND
  • COPY_TO_CLIPBOARD
  • NONE

Conditional text​

dialogue_main.yml also shows a conditional text block under condition.rules0 and condition.rules1.

That allows one dialogue line to render different text depending on a runtime rule such as:

type: "string"
value: "%essentials_msg_ignore% == no"

Item layouts​

Item entries inside dialogue are not chest menu slots. They are dialogue item blocks with fields such as:

  • material
  • name
  • lore
  • player
  • texture

This is useful when you want dialogue menus to still display item-like visuals without switching back to a full inventory menu.

When to use dialogue​

Use dialogue when the interaction should read like a guided panel or native dialog rather than a persistent chest grid. The bundled example is especially useful as a reference for text-heavy menus with clickable inline interactions.