-
Notifications
You must be signed in to change notification settings - Fork 7
Home
Refaltor77 edited this page Mar 29, 2026
·
5 revisions

Welcome to the EasyUIBuilder wiki — the complete reference for building Minecraft Bedrock Edition JSON UI with PHP.
EasyUIBuilder is a PHP 8.0+ library that generates Minecraft Bedrock Edition JSON UI files using a fluent builder pattern. Write clean PHP code, get valid resource packs.
git clone https://github.com/Refaltor77/EasyUIBuilder.git
cd EasyUIBuilder/
php start.phpOr via Composer:
composer require refaltor/easy-ui-builderCreate a file in tests/ (or wherever you like) implementing RootBuild:
<?php
namespace refaltor\roots;
use refaltor\ui\builders\Root;
use refaltor\ui\builders\RootBuild;
use refaltor\ui\elements\Label;
use refaltor\ui\colors\BasicColor;
class MyScreen implements RootBuild
{
public function root(): Root
{
$root = Root::create();
$root->addElement(
Label::create("title", "Hello World!")
->setFontSize(Label::FONT_EXTRA_LARGE)
->setShadow()
->setColor(BasicColor::yellow())
);
return $root;
}
public function getNamespace(): string { return "my_screen"; }
public function getPathName(): string { return "./resources/pack_example/"; }
public function titleCondition(): string { return "MY_SCREEN_TITLE"; }
}public function startingService(): void {
$this->register(new MyScreen());
}php start.phpThis creates 3 files:
-
ui/_ui_defs.json— Registry of all UI files -
ui/server_form.json— Server form with title conditions -
ui/custom_ui/my_screen.json— Your screen definition
Copy the generated resources/pack_example/ folder into your Bedrock resource pack. The screen becomes visible when #title_text matches your titleCondition().
- Element — Base class (anchors, size, offset, bindings, animations)
- Label — Text display
- Panel — Container / layout
- Button — Interactive button
- Image — Texture / graphics
- Grid — Dynamic grid layout
- Stack Panel — Auto-stacking layout
- Toggle — Checkbox / switch / radio
- Slider — Value cursor
- EditBox — Text input field
- ScrollView — Scrollable container
- Dropdown — Dropdown menu
- InputPanel — Input handling & focus
- Screen — Screen root element
- CustomRender — Native renderers
- CloseButton — Pre-built close button
- PlayerRender — Pre-built player skin viewer
- Binding — Data binding system
- Animation — UI animation system
- Variable — Conditional variable system
- BasicColor — Color utilities
- Root — Screen builder & JSON generation
- RootBuild — Screen interface
- OrientationHelper — StackPanel orientation constants