NewCraftRank SitesA free website and storeMake yours ›
AshlarFree server software built on Paper, with DDoS and backdoor protection See Ashlar ›Security RadarA free check of your server's login, anti-bot and proxy settings, only with your OK See how it works ›CommunityAsk questions, share builds and find people to play with Join the forum ›
Resources / Plugins / Vista Dialogs

Vista Dialogs

Menus built on Minecraft's native dialog screens instead of chest GUIs, you can also create a dialog that shows on the escape menu, easy to configure.

PluginsFree1.21 – 26.x
by Pizzalopa · listed from Modrinth
Download ›

Direct download from Modrinth · 11 downloads

Vista Dialogs screenshot 1

What it does

Vista Dialogs is a plugin for Paper / Spigot servers, made by Pizzalopa. Menus built on Minecraft's native dialog screens instead of chest GUIs, you can also create a dialog that shows on the escape menu, easy to configure.

It supports Minecraft 1.21 – 26.x. It has been downloaded 11 times on Modrinth. That puts it at #123 of the 165 economy and shop plugins listed here. The last update came out on Sep 24, 2026.

Supported versions

26.x1.21

Release history

The newest is 1.0.0, released on Sep 24, 2026. It is made for Minecraft 1.21.7 – 26.3. It runs on Folia, Paper and Purpur. The download is 137 KB.

VersionReleasedMinecraftType
1.0.0Sep 24, 20261.21.7 – 26.3Release

Commands

The commands named on the Modrinth page of Vista Dialogs:

/keys/thatname/vista
Description from the author on Modrinth

Vista

Server menus built on Minecraft's own dialog screens

No chest inventories. No filler panes. No item names pretending to be labels.
One YAML file per screen, rendered for each player who opens it.

Why this one?

With other dialog plugins a button runs one command, and that is the whole feature. Vista adds
everything a real menu needs, put price: 1000 on a button and it is a shop that checks their
balance, confirms, takes the money and if they're short, it tells them how short they are; buttons can be hidden from, the wrong ranks, locked behind a level, or marked Owned once bought; players get on/off settings, and player lookup; and the G key and the Escape-menu button work from the first start, with no datapack and no second restart.


Things to build with it

A server hub. The G key opens it, every feature is one press away, and staff-only entries
appear with a show-if on a permission.


A profile. One file, lookup: true, and a search box for anyone else's numbers.


Leaderboards. Body lines of placeholders with `` drawn beside each one.


Kits, warps, crates. A list screen, one button each, click-if for the requirement and
deny for the reason.


Rules and guides. Body text, a button per section, no plugin dependency at all.


Settings. type: toggle buttons that flip on and off in place, remember themselves per
player, and run a command on each side.

The possibilities are nearly endless. If you can imagine a menu, Vista gives you the tools to build it.


The G keybind and the pause button, from first start

Vista automatically adds its G key Quick Actions and Escape menu integration. Just drop the plugin in, start your server, and it works. No datapacks, reloads, or extra setup required.

quick-actions:
enabled: true
dialog: menu
label: 'Menu'

pause-screen:
enabled: true
dialog: menu
label: 'Menu'

Point both at the same dialog and editing that one file changes both.


Wiki

The dialog format

Every key is optional except title and buttons.

Screen

title: 'Crate Keys' # window title. Placeholders work.
external-title: 'Keys' # the label when opened from the pause menu
command: 'keys' # registers /keys
aliases: ['k', 'crates'] # extra names for it
overwrite: true # take /keys even if another plugin has it
permission: 'server.keys' # required to open at all
back: 'shop' # where Back goes when there is no history
columns: 2 # buttons per row
escape: true # can Esc close it
close-button: 'Close' # bottom-right button that closes; omit for none
back-button: 'Back' # or one that goes back; omit for none
currency: 'coins' # what price: is counted in
prefix: 'SHOP ▶ ' # chat prefix for messages this screen causes
lookup: false # resolve placeholders for a searched player
open-if: # conditions checked before it opens

  • '%player_level% >= 5'

Key · Meaning
title · Window title. Placeholders resolve per viewer
external-title · Label used when this screen is the pause-menu button
command · Registers /thatname, live — no restart
aliases · Extra names for that command
overwrite · Whether command and aliases take a name another plugin already uses. Default true
permission · Node required to open the screen
back · Dialog the Back button falls back to
columns · Buttons per row. 1 is a tall list, 2 suits a hub
escape · Whether Esc closes it. Default true
close-button · Text of a bottom-right button that closes. Omit it for none
back-button · Text of a bottom-right button that goes back. Omit it for none
currency · Which currency price: means here
prefix · Chat prefix for messages this screen causes
lookup · Resolve placeholders for a searched player instead of the viewer
open-if · Conditions, all of which must pass

Body

Lines of text above the buttons. An empty string is a blank line.

body:

  • 'Keys go straight into your inventory.'
  • 'Choose one below'
  • ''
  • 'Balance: %economy_balance%'

Buttons

Each key under buttons: names one button. The name is yours and shows up in /vista list.

buttons:
vote-key:
label: 'Vote Key'
tooltip:

  • 'Vote Key'
  • ''
  • 'Opens the Vote Crate.'

width: 150
slot: 1
priority: 0
permission: 'server.keys.vote'
show-if:

  • '%player_level% >= 10'

click-if:

  • '%player_world% == survival'

deny:

  • '[message] Only in the survival world.'

price: 100
owned: 'server.perk.fly'
url: 'example.com';
run:

  • '[console] crates give %player_name% vote %amount%'

Key · Meaning
label · The button text
| tooltip | A list of lines, or one string using `
` |
width · Pixels, 1–1024. Default 150
slot · Draw order. Buttons sharing one are resolved by priority
priority · Lower wins the slot. Default 0
permission · Node required to see and press it
show-if · Conditions; failing hides the button
click-if · Conditions; failing blocks the press and runs deny
deny · Actions run when click-if fails
price · Cost in the screen's currency
amounts · Quantity-to-price map, for anything sold in sizes
owned · Permission meaning "already bought"
url · Opens a link instead of running anything
with-permission · Permissions the player holds only while this button's actions run
type: toggle · Makes it a switch over a setting named after the button
for-each: items · Repeats the button once per item in the game — see [Item lists](#item-lists)
search · With for-each, the input whose text narrows the list
run · The actions, in order

Inputs

Text fields, drawn above the buttons and written like buttons: a name, then what it is. A button
reads one back as $(name).

inputs:
player:
label: 'Look up a player'
max-length: 16
initial: '%player_name%'
width: 200

search:
label: 'Search'
run:

  • '[player] find $(player)'

$(name) works in conditions too, so a click-if can check what was typed before anything runs,
and in an input's own initial: — initial: '$(search)' keeps the text in the box when the
screen redraws. Opening a screen starts its inputs empty.

What was typed can be tidied on the way in:

Written · " My Home " becomes
$(name\ · trim) · My Home — outer and doubled spaces dropped
$(name\ · lower) / $(name\ · upper) · my home / MY HOME
$(name\ · slug) · my_home — one safe word, for ids and commands

They chain, left to right: $(name|trim|upper).


Actions

run: is a list, carried out in order. A chain stops at the first step that refuses.

Action · Does
[player] · Runs the command as the player
[console] · Runs it as the console
[message] · Sends the player a message
[broadcast] · Sends it to everyone
[log] · Writes a console line
[sound] [volume] [pitch] · Plays a sound
[open] · Opens another dialog
[server] · Sends the player to that server through the proxy
[back] · Goes back one screen
[close] · Closes the screen
[refresh] · Redraws it in place
[lookup] · Makes the next screen describe that player
[set] · Remembers text for this player — see [Variables](#variables)
[unset] · Forgets it
[givepermission] · Grants a permission
[takepermission] · Removes one

An untagged line is treated as [message].

A step can also be a choice, made when the chain reaches it:

run:

  • if: '$(name|slug) != %vista_var_home%'

run:

  • '[player] essentials:renamehome %vista_var_home% $(name|slug)'

else:

  • '[message] Same home, new spelling.'
  • '[open] homes-manage'

if: takes any [condition](#conditions) line, or a list of them. else: is optional.

[server] is how a server selector works. /server belongs to the proxy, not to the server the
player is standing on, so running it as them does nothing; [server] survival asks the proxy
directly over the BungeeCord plugin channel, which Velocity answers as well. Nothing to install
or configure on either side.

There is no click-sound setting, on purpose: the client plays its own click when a dialog button
is pressed, so a second from the server doubles it up. A button that wants a particular noise
asks with [sound].


Conditions

show-if hides a button. click-if lets it be seen but blocks the press. Both are lists, and
every line must pass. A leading ! inverts one.

show-if:

  • '%player_level% >= 30'
  • '%player_world% == survival'
  • 'has permission server.vip'
  • '!has permission server.banned'
  • 'has any permission server.vip server.mvp'
  • '%player_prefix% contains Gold'
  • '$(name) matches [A-Za-z0-9_]{1,16}'

Operator · Compares
| > >= `


Shops

The whole of it

Define a currency once:

currencies:
coins:
name: 'Coins'
balance: '%economy_balance%'
take: 'eco take %player_name% %amount%'
format: '

Written by Pizzalopa. Read it with pictures on Modrinth.

How to install Vista Dialogs

  1. Make sure your server runs Paper and Spigot on Minecraft 1.21 – 26.x.

  2. Download the .jar file from Modrinth and put it in the plugins folder of your server.

  3. Restart the server. Avoid /reload, many plugins do not handle it well.

  4. Type /plugins in the console: Vista Dialogs should be listed in green. Its config files are created in the plugins folder on the first start.

Full guide: How to install plugins on a Minecraft server

Compatibility

Minecraft versions
26.x, 1.21
Runs on
Paper, Spigot
Edition
Java
Needs
Nothing else
License
Free to use
Price
Free
Upkeep
Actively updated (Nov 14, 2026)

Vista Dialogs compared with similar ones Compare all alternatives

ResourceDownloadsVersionsLast updatePrice
Vista Dialogsthe one you looked at111.21 – 26.xSep 24, 2026Free
HyroCoreikoya.341.20 – 1.21Sep 27, 2026Free
CommandPanelsRockyHawk4,4071.8 – 26.xOct 2, 2026Free
Chorus TradeControll3r24926.x10 days agoFree

Questions

Does Vista Dialogs work on Minecraft 26.x?

Yes. Vista Dialogs supports Minecraft 26.x. All supported versions: 26.x, 1.21.

Is Vista Dialogs free?

Yes. Vista Dialogs is free to download from Modrinth.

Which server software does Vista Dialogs run on?

Vista Dialogs runs on Paper and Spigot servers.

Is Vista Dialogs still updated?

Yes. The last update came out in the past day.

What are the best alternatives to Vista Dialogs?

The closest ones are HyroCore, CommandPanels and Chorus Trade. Compare all alternatives

Alternatives to Vista Dialogs

HyroCorePlugins · 1.20 – 1.21

Comprehensive Paper & Purpur core plugin providing server bank savings, daily reward streaks, deluxe GUI menus, marketplace mailbox, and website account…

Free34 downloads
Chorus TradePlugins · 26.x

Secure, fully customizable player-to-player trading for Paper 26.2: dupe-proof GUI, money trades via Vault, hex colors, every message and menu editable…

Free9 downloads
Compare all alternatives ›

Reviews

–★★★★★
0 reviews
50
40
30
20
10

Log in to leave a review.