BedrockGUI v2

BedrockGUI Complete Guide

A comprehensive guide to creating SIMPLE, MODAL, and CUSTOM forms with actions, conditions, and advanced features.

Form Types Overview

BedrockGUI supports three main form types:

  • SIMPLE: Button-based menus with multiple options

  • MODAL: Yes/No confirmation dialogs (exactly 2 buttons)

  • CUSTOM: Input forms with various components (text inputs, toggles, dropdowns, etc.)

General Overview

  • Provides Bedrock-style forms on Paper and Velocity; integrates with Floodgate for Bedrock detection

  • Unified action system with modern curly-brace syntax and placeholder support

  • Supports multi-action sequences, delays, random selection, and conditional logic

  • YAML-driven menus plus programmatic builders for dynamic forms

  • Admin command to reload and open forms

Action System

  • Syntax

    • Use: action_type { - "value1" - "value2" }

  • Placeholders: {player}, {player_level}, ${vault_eco_balance} and values derived from form results

Actions

command

  • Executes commands as the player

  • Examples

server

  • Executes commands as the server console

  • Examples

broadcast

  • Broadcasts messages globally or to targeted audiences (permission/world/radius)

  • Examples

message

  • Sends colorized chat messages; supports & and hex colors

  • Examples

sound

  • Plays sounds with optional volume and pitch

  • Examples

economy

  • Balance operations: add, remove, set, check, pay

  • Examples

title

  • Shows title/subtitle with timing fadeIn:stay:fadeOut

  • Examples

actionbar

  • Shows short messages above the hotbar

  • Examples

inventory

  • Item operations: give:item:amount, remove:item:amount, clear:all|item, check:item

  • Examples

open

  • Opens another form/menu

  • Examples

delay

  • Waits for milliseconds, then optionally runs a chained action

  • Examples

random

  • Selects and executes one action from a list; last colon may be weight

  • Examples

url

  • Sends HTTP(S) links to the player’s chat (clients render clickable)

  • Examples

conditional

  • Executes actions based on permission/placeholder checks

  • Examples

bungee

Form Types

Simple Form

  • Title, optional description, multiple buttons

  • Configuration

  • Two buttons (Yes/No-style), optional description

  • Configuration

Custom Form

  • Structured inputs and interactive components; optional global actions

  • Components

    • input: text, placeholder, default, optional action

    • slider: text, min, max, step, default, optional action

    • dropdown: text, options, default, optional action

    • toggle: text, default, optional action

  • Configuration

Conditional Buttons (Simple/Modal)

  • Show/hide or change text/image/onClick based on conditions

  • Keys: show_condition, alternative_text, alternative_image, alternative_onClick, conditions.*

  • Evaluated when the form is built

Tips

  • Use placeholders to personalize messages and actions (e.g., {player}, ${vault_eco_balance})

  • Combine actions for guided flows using multiple list items under a button’s onClick

  • Under forms.<menu_name>

    • type: SIMPLE | MODAL | CUSTOM

    • title: text (color codes supported)

    • description: optional (Simple/Modal)

    • permission: optional required permission

    • buttons: for Simple/Modal (with text, optional image, onClick list)

    • components: for Custom (with fields per type)

    • global_actions: actions run after Custom submit

  • Command binding example in config.yml

Placeholders

  • Built-ins: {player}, {player_level}, {player_gamemode}, {player_world}, ${vault_eco_balance}

  • Applied inside action handlers before execution; injected into ActionContext

Admin Command

  • Paper: /bedrockgui with bedrockgui.admin permission

  • Velocity: /bedrockgui reload, /bedrockgui open <menu> [player]

Composition Examples

  • Guided sequence

  • Server operations

Best Practices

1. Form Design

  • Keep titles concise and descriptive

  • Use color codes consistently

  • Provide clear descriptions

  • Use appropriate icons/images

2. Action Chaining

  • Use delays between actions for better UX

  • Provide feedback for every action

  • Handle error cases gracefully

  • Use sounds to enhance experience

3. Conditional Logic

  • Always provide fallback actions

  • Test edge cases thoroughly

  • Use clear error messages

  • Validate user permissions

4. Performance

  • Avoid excessive action chains

  • Use appropriate delay times

  • Limit form complexity

  • Cache frequently used data

5. User Experience

  • Provide confirmation for destructive actions

  • Use consistent navigation patterns

  • Offer help/tutorial options

  • Support different player types (new/experienced)

6. Security

  • Validate all user inputs

  • Check permissions thoroughly

  • Sanitize placeholder values

  • Limit resource-intensive operations


Placeholder Support

BedrockGUI supports various placeholder types:

Built-in Placeholders

  • {player} - Player name

  • {player_world} - Current world

  • {player_health} - Player health

  • {player_x}, {player_y}, {player_z} - Player coordinates

  • {server_online} - Online player count

  • {server_max} - Max player count

  • {balance} - Player balance (if economy enabled)

PlaceholderAPI Support

All PlaceholderAPI placeholders are supported when the plugin is installed:

  • %player_name% - Player name

  • %player_world% - Current world

  • %vault_eco_balance% - Economy balance

  • And thousands more from various plugins

Note: PlaceholderAPI placeholders work in all contexts including:

  • Action data (messages, commands, etc.)

  • Conditional action conditions and values

  • Form titles, descriptions, and button text

  • Show conditions for buttons and forms

Form Result Placeholders

Results from custom forms can be used as placeholders:

  • {component_name} - Value from form component

  • {input_field} - Text input value

  • {toggle_state} - Toggle true/false

  • {dropdown_selection} - Selected dropdown option


This guide covers all major features of BedrockGUI. For more advanced configurations and custom implementations, refer to the source code and example configurations provided with the plugin.

Last updated