show opens a dialog screen on the targeted players' clients.
/dialog only accepts players. The game rejects bare @e when the command is parsed, so add type=player if you target with @e.
The built-in list of links a server advertises (website, Discord, rules). Empty in singleplayer unless a datapack or server fills it.
Opens the dialog screen for every targeted player. Needs permission level 2 (an operator or a command block); works from 1.21.6 onward.
Every other dialog id is a custom dialog defined by a datapack (or a server resource). If a custom id does not open anything, the pack that defines it is not loaded in this world.
/dialog is Java Edition's command for the dialog system added in 1.21.6. It opens a dialog screen, a data-driven menu with text, items, inputs and clickable buttons, on any player's screen, or closes the one they have open. It is the backbone of modern server menus and map UI that used to be faked with books, signs and chat clicks.
The command has exactly two forms. /dialog show sends a dialog to one or more players: the screen opens immediately on their client, on top of whatever they were doing. /dialog clear closes the dialog the targeted players have open and removes any pause-screen additions a dialog created. Both forms require permission level 2, so they run from an operator's chat, a command block or a datapack function.
The dialog itself is referenced by a resource location. Vanilla ships three built-in dialogs: minecraft:server_links, minecraft:custom_options and minecraft:quick_actions. Everything else comes from datapacks, which can define entire menu trees with buttons that run further commands.
The syntax has not changed since the command was added in 1.21.6, so the same generated command works in every version from 1.21.6 to the current release.
Copy any of these as a starting point, or rebuild them in the generator above:
/dialog show @p minecraft:server_linksOpens the Server Links dialog for the nearest player./dialog show @a minecraft:quick_actionsShows the Quick Actions dialog to every online player./dialog show @a[team=red] mymap:welcomeOpens a custom datapack dialog (data/mymap/dialog/welcome.json) for everyone on the red team./dialog show @p[distance=..5] mymap:shop_menuOpens a custom shop dialog for the nearest player within 5 blocks, a typical command-block shop trigger./dialog clear @aCloses any open dialog and clears pause-screen dialog buttons for all players.A custom dialog is a JSON file in a datapack at data/<namespace>/dialog/<name>.json. When the pack is enabled, the file is registered under the id namespace:name and can be shown with this command. Dialogs choose one of several types: minecraft:notice (a message with one button), minecraft:confirmation (yes/no), minecraft:multi_action (a grid of buttons), minecraft:server_links and minecraft:dialog_list (a menu of other dialogs).
Inside a dialog you can show formatted text and items, collect input with text boxes, checkboxes, sliders and option pickers, and attach actions to buttons: run a command with the player's inputs substituted in, open a URL, copy text to the clipboard, or open another dialog. That is what makes /dialog the cleanest way to build shops, warp menus, quest prompts and settings screens without resource packs or mods.
Two practical notes: after editing a dialog file, run /reload so the game picks up the change, and remember the id only resolves in worlds where the pack is installed; on a fresh world the same command fails until the datapack is added.
The /dialog command, added to Java Edition in 1.21.6, opens a dialog screen on a player's client or closes the one they have open. Dialog screens are the data-driven menus used for server links, custom server settings and map-made UI: they can show text and items, take input, and run commands when the player clicks a button. /dialog show <targets> <dialog> opens a dialog for the targeted players, and /dialog clear <targets> closes it.
Vanilla ships three dialogs you can show without any datapack: minecraft:server_links (the list of links a server advertises), minecraft:custom_options (the dialog behind the Custom Options pause-screen button) and minecraft:quick_actions (the Quick Actions pause-screen dialog). Every other id refers to a custom dialog defined by a datapack.
Custom dialogs only exist while the datapack that defines them is loaded in the world. The game registers every JSON file under data/<namespace>/dialog/ in an enabled pack, and the dialog's id is the namespace plus the file path, so data/mymap/dialog/welcome.json becomes mymap:welcome. If the command rejects the id, check the pack is enabled with /datapack list and run /reload after editing the file.
Yes. /dialog requires permission level 2, the same as most game-master commands. In singleplayer that means cheats must be enabled; on a server you need to be an operator. Command blocks and datapack functions can run it too, which is how maps open dialogs for non-op players.
dialog show <targets> <dialog> opens the given dialog screen on each targeted player's client. dialog clear <targets> does the opposite: it closes whatever dialog the targeted players currently have open and removes any pause-screen additions a shown dialog created. clear takes no dialog id because it always clears everything dialog-related for those players.
No. Java's /dialog (1.21.6 and later) opens data-driven dialog screens defined in the dialog registry. Bedrock's /dialogue is an older, unrelated command that opens NPC dialogue boxes and has completely different syntax. Commands built on this page are for Java Edition only.
Pair dialogs with clickable chat, or browse more Minecraft tools: