EliteDialogs lets you create dialogs players can interact with as a GUI with a professional look
EliteDialogs - The First Impression Your Server Deserves.
When a player joins… you have only seconds.
Seconds to inspire them.
To guide them.
To make them stay.
EliteDialogs is your voice in those moments.
Not an inventory GUI.
Not a boring chat message.
A true in-game experience that feels like your server is alive.
Create Moments Players Remember
Whether it’s:

Every interaction becomes intentional.
Clean.
Beautiful.
Player-friendly.
Why Choose EliteDialogs
Because it doesn't just show menus…
It builds connection.
✔ Real pop-ups, not chests
✔ Players feel guided, not lost
✔ Smooth navigation: next, back, save, confirm
✔ Input fields that actually belong in a UI
✔ Support placeholder api to check for conditions


Your server becomes a place, not just a game.
Discord Support Server
Commands:
/elitedialog <dialog-name> - Opens a dialog - Required Permission: elitedialogs.use
config.yml:
# MAKE SURE ALL DIALOG KEYS ARE UNIQUE, WITHOUT SPACES AND UNDERCASED.
dialogs:
welcome: # This will not be shown automatically, every dialog still needs to be triggered by a command.
title: "<green>Welcome to the Server!"
type: confirmation # notice | confirmation | multi_action
can-close-with-esc: true
body:
- type: text
text: "<gray>Do you want to claim your starter kit?"
inputs: [] # optional
buttons:
yes:
text: "<green>Yes!"
tooltip: "<gray>Click to claim."
action: "command:player:kit starter"
require: can_claim_starter
no:
text: "<red>No thanks"
close: true
profile-edit:
title: "<aqua>Edit Profile"
type: multi_action
can-close-with-esc: false
body:
- type: item
material: DIAMOND_HELMET
name: "<aqua>Change skin"
inputs:
- key: nickname
type: text
label: "<green>Nickname:"
default: "Player"
width: 200
max-length: 32
- key: pvp
type: boolean
label: "<red>Enable PvP?"
default: false
buttons:
save:
text: "<green>Save"
action: "command:player:apply_profile {input:nickname} {input:pvp}" # This command will not actually work; it's just an example.
cancel:
text: "<red>Cancel"
close: true
notice-example:
title: "<yellow>Information"
type: notice
can-close-with-esc: true
body:
- type: text
text: "<gray>This is a simple notice dialog."
- type: text
text: "<white>Click OK to continue."
- type: item
material: BOOK
name: "<aqua>Helpful Info"
buttons:
ok:
text: "<green>OK"
close: true
select-category:
title: "<blue>Select a Category"
type: multi_action
can-close-with-esc: true
body:
- type: text
text: "<gray>Pick a category to explore."
buttons:
combat:
text: "<red>Combat"
action: "dialog:combat-settings"
visuals:
text: "<aqua>Visuals"
action: "dialog:visual-settings"
close:
text: "<gray>Exit"
close: true
combat-settings:
title: "<red>Combat Settings"
type: multi_action
can-close-with-esc: true
body:
- type: text
text: "<gray>Adjust experience sliders."
inputs:
- key: strength
type: number_range
label: "<red>Strength:"
min: 0
max: 10
step: 1
default: 5
width: 250
buttons:
apply:
text: "<green>Apply"
action: "command:player:set_strength {input:strength}"
back:
text: "<yellow>Back"
action: "dialog:select-category"
exit:
text: "<gray>Close"
close: true
visual-settings:
title: "<aqua>Visual Settings"
type: multi_action
can-close-with-esc: true
body:
- type: text
text: "<gray>Choose your view distance preset."
inputs:
- key: view
type: single_option
label: "<blue>View Distance:"
width: 200
options:
- "8:Low"
- "16:Medium"
- "32:High"
buttons:
save:
text: "<green>Save"
action: "message:<gray>You selected <aqua>{input:view}<gray>!"
back:
text: "<yellow>Back"
action: "dialog:select-category"
close:
text: "<gray>Close"
close: true
rules-accept:
title: "<light_purple>Server Rules"
type: confirmation
can-close-with-esc: false
body:
- type: text
text: "<red>Server Rules:</red>"
- type: text
text: "<white>1. Be respectful to others.</white>"
- type: text
text: "<white>2. No griefing or stealing.</white>"
- type: text
text: "<white>Do you accept the server rules?"
buttons:
yes:
text: "<green>I Accept"
action: "command:player:accept_rules"
no:
text: "<red>I Disagree"
action: "command:console:kick {player} You must accept the rules to play on this server."
verification-check:
title: "<gold>Verification Status"
type: notice
can-close-with-esc: true
body:
- type: text
text: "<gray>This dialog checks if you are verified."
- type: text
text: "{condition:verified_status}"
buttons:
ok:
text: "<green>OK"
close: true
conditions:
can_claim_starter:
join: AND
checks:
- placeholder: "%vault_eco_balance%"
operator: GREATER_EQUAL
value: "100"
- placeholder: "%player_level%"
operator: GREATER_EQUAL
value: "3"
fail:
message: "<red>You must be at least level 3 and have $100 to claim the starter kit." # This is displayed when the condition with require fails in a button or opening a dialog.
verified_status:
join: OR
checks:
- placeholder: "%player_has_rank%"
operator: EQUALS
display: # These are the texts displayed based on the condition result, which can be used in dialogs with the placeholder {condition:condition_name}
true: "<green>You are verified!"
false: "<red>You are not verified."