UIcore

UIcore

Create interactive world-space menus for Minecraft servers with YAML and Java API. Features custom buttons, dynamic elements, item displays, schematic previews, and more. No resource pack required.

34 downloads 0 followers

UIcore โ€” Build Interactive Menus Inside the Minecraft World

A world-space UI framework for Minecraft servers.

YAML Configuration ยท Public Java API ยท No Required Resource Pack ยท Paper & Folia Support


๐Ÿš€ Rethink Minecraft Server Interfaces

Why limit your server's interface to traditional chest inventories when menus can become part of the game world itself?

UIcore is a world-space user interface framework designed for Minecraft servers. Instead of opening a conventional inventory screen, UIcore places interactive menu elements around the player's camera, creating an interface that feels integrated into the Minecraft environment.

Text labels, buttons, item previews, player avatars, toggles, and input fields can become part of a unified interactive scene.

Players interact with these elements using a visual cursor, allowing them to navigate menus, hover over buttons, trigger actions, switch between screens, and enter text through Minecraft's chat system.

UIcore gives server owners and plugin developers greater flexibility when designing interfaces, making it possible to create experiences that go beyond conventional inventory-based menus.

โœจ Key Highlights

  • World-space interfaces: Display menu elements directly in the Minecraft world.
  • Interactive controls: Buttons, tooltips, hover feedback, click animations, and more.
  • YAML-based configuration: Create menus without developing a separate Java plugin.
  • Public Java API: Extend the framework with custom logic and components.
  • Dynamic elements: Change text, materials, and visibility based on individual player states.
  • Schematic previews: Display player-specific structures without modifying real blocks.
  • Optional integrations: Connect UIcore with other server plugins when needed.
  • No mandatory resource pack: The bundled examples use vanilla Minecraft items.

Whether you are building a simple navigation menu or a more complex interface system, UIcore provides the tools needed to create interactive experiences directly inside Minecraft.


๐Ÿงฉ Features

๐Ÿ–ฑ๏ธ 1. Interactive Screens and Navigation

Create complete menu screens using interactive elements positioned around the player's camera.

UIcore supports:

  • Text labels: Display information as part of your interface.
  • Interactive buttons: Let players trigger actions through menu elements.
  • Visual cursor navigation: Move between interactive elements using an in-game cursor.
  • Hover feedback: React when the player points at an element.
  • Cursor styles: Customize cursor behavior and appearance through supported styles.
  • Tooltips: Provide additional information about menu elements.
  • Click animations: Give players visual feedback when interacting.
  • Click cooldowns: Control how frequently actions can be triggered.
  • Screen transitions: Navigate between different menus and screens.

These features allow developers to build interactive layouts that feel more like a dedicated game interface than a traditional inventory menu.

๐Ÿ”„ 2. Dynamic Content, Input, and Player States

UIcore is not limited to static menu layouts.

Its state and condition systems allow interface elements to react to player actions and server-side logic.

Available functionality includes:

  • Chat-based text input: Receive user input through Minecraft chat.
  • Toggle controls: Build elements with multiple selectable states.
  • Permission checks: Restrict actions based on player permissions.
  • Click requirements: Define conditions that must be satisfied before an action executes.
  • Per-player element states: Maintain individual interface states for different players.
  • Dynamic text: Change displayed labels based on element state.
  • Dynamic materials: Update the item or material shown by an element.
  • Conditional visibility: Show or hide elements depending on their state.

For example, a settings screen can display different toggle states for individual players, while unavailable options can be hidden or presented differently according to configured conditions.

This makes UIcore suitable for interfaces that need to reflect player-specific information and server behavior.

๐ŸŽ’ 3. Item Displays, Player Avatars, and Galleries

Minecraft items can be used as visual components inside your custom interface.

UIcore provides functionality for:

  • Displaying Minecraft items.
  • Showing player avatars.
  • Creating item galleries.
  • Using reusable element templates.
  • Building slots with selectable contents.

These capabilities can be used to design item selectors, visual catalogs, profile screens, collections, and other interfaces where visual content plays an important role.

Instead of relying entirely on inventory slots, developers can organize items as part of a custom world-space layout.

๐Ÿ—๏ธ 4. Player-Specific Schematic Previews

Preview structures directly inside a menu without changing the actual Minecraft world.

UIcore supports up to four player-specific schematic previews using the Sponge .schem format, versions v2 and v3.

Key characteristics:

  • Display up to four schematic previews within a menu.
  • Send preview data only to the relevant player.
  • Keep the actual world blocks unchanged.
  • Use previews as part of building selectors, catalogs, or other custom interfaces.

This allows players to inspect a structure visually without requiring it to be physically placed in the world.

Current limitation: Schematic previews display block states but do not reproduce container or other block-entity contents, entities, or biomes.

๐Ÿ‘๏ธ 5. Player Visibility, Privacy, and Damage Settings

Different interfaces may require different levels of isolation from the surrounding game world.

UIcore provides per-menu settings that control how the player and interface interact with other players.

You can configure:

  • Whether nearby players can see a menu's display elements.
  • Whether the player who opened the menu is hidden from other players.
  • Whether other players are hidden from the menu user.
  • Whether damage from other players is allowed or blocked while the menu is open.

These settings are useful when designing interfaces for server hubs, game-mode selection, and other situations where the player's interaction with the surrounding world needs to be controlled.


๐Ÿ› ๏ธ Two Ways to Build: YAML and Java API

UIcore is designed for both server administrators and Java plugin developers.

You can configure menus using YAML or extend the framework through its public API.

๐Ÿ“ YAML Menu Configuration

Create and manage interfaces through YAML configuration files.

This approach allows server owners to define menus without having to write a separate Java plugin for every interface.

YAML is suitable for:

  • Server navigation menus.
  • Player profile screens.
  • Settings interfaces.
  • Game-mode selectors.
  • Item galleries.
  • Other configurable menu systems.

Menu files are stored in:

plugins/UIcore/menu/

After adding or modifying a menu, reload the configuration with:

/uicore reload

For configuration structure, supported elements, actions, and examples, refer to the Menu Authoring Guide.

โ˜• Public Java API

For more advanced development, UIcore exposes a public Java API.

Developers can extend the framework by registering:

  • Custom actions: Define additional behavior when players interact with elements.
  • Data providers: Supply information from external systems or your own plugins.
  • Conditions: Add custom requirements and interaction logic.
  • Custom components: Extend the available interface elements.

This makes UIcore useful not only as a configurable menu plugin but also as an interface foundation for other Minecraft server systems.

The API allows developers to connect UIcore interfaces to their own plugin functionality rather than building an entirely separate UI system.


๐ŸŽฎ What Can You Build with UIcore?

UIcore can serve as the interface layer for many different Minecraft server features.

๐Ÿ  Server Hub and Navigation

Build a central navigation interface that gives players access to different sections of your server.

Use buttons, labels, item displays, and screen transitions to organize navigation.

๐Ÿ‘ค Player Profiles

Create profile interfaces featuring player avatars, information, items, and interactive actions.

Dynamic states and data providers can be used to connect the interface to player-specific information.

โš™๏ธ Settings Menus

Build configurable settings screens using toggles, conditions, and individual player states.

Elements can update their appearance or visibility depending on the selected state.

๐Ÿ›’ Shops and Item Catalogs

Use item displays and galleries to create visual catalogs of available items.

Connect menu actions to your own purchasing or transaction logic.

๐ŸŒ Game-Mode Selection

Design selection screens for different game modes or server destinations.

Combine visual elements, navigation buttons, and player-specific conditions.

๐Ÿฐ Building and Structure Galleries

Let players preview schematic structures before choosing them.

Display supported Sponge schematic previews without modifying real world blocks.

๐Ÿ”Œ Custom Plugin Interfaces

Use the Java API to create interfaces for your own plugins, including custom actions, data sources, conditions, and components.

Note: These are examples of systems that can be built using UIcore's features. Application-specific logic, such as payment processing, persistence, or game-mode management, must be implemented or provided by the relevant server plugins.


๐Ÿ”— Integrations

UIcore supports integration with other Minecraft server plugins.

Built-in Optional Integrations

  • Vault
  • LuckPerms

Additional Optional Integrations

  • PlaceholderAPI
  • FancyNpcs
  • SkinsRestorer
  • CraftEngine

All listed integrations are optional.

UIcore can start without these plugins installed. However, features that depend on a particular integration require the corresponding plugin to be present.

This allows server owners to use the core framework without installing unrelated dependencies.


๐Ÿ“‹ Requirements and Compatibility

Before installing UIcore, make sure your server meets the following requirements.

Component Requirement
Minecraft 1.21.1 or newer
Server software Paper or a compatible server implementation
Folia Supported with regional constraints
PacketEvents 2.14.0 (required)
Java runtime Version required by the selected Minecraft and server build
UIcore plugin/API bytecode Java 17
Vault / LuckPerms Optional
PlaceholderAPI / FancyNpcs / SkinsRestorer / CraftEngine Optional

Folia Compatibility

UIcore declares support for Folia.

When running on Folia, all elements belonging to a menu scene must remain within the camera's region.

This restriction should be considered when designing and positioning world-space interfaces.

Java Compatibility

UIcore's plugin and public API are compiled using Java 17 bytecode.

However, this does not mean that every supported Minecraft server version can run on Java 17.

Always use the Java runtime required by your selected Minecraft version and server implementation.

For tested server builds and additional compatibility information, see the Compatibility Matrix.


๐Ÿš€ Quick Start

Getting started with UIcore only requires a few steps.

Step 1 โ€” Install the Plugins

Download UIcore and its required dependency, PacketEvents 2.14.0.

Place both plugin files in your server's plugins/ directory.

Step 2 โ€” Start Your Server

Start or restart the Minecraft server.

UIcore will generate its configuration files and three bundled example menus.

Step 3 โ€” Open the Demo Menu

Run the following command:

/uicore run demo_main

This opens the main demonstration menu.

To close the currently opened menu, use:

/uicore stop

Step 4 โ€” Create Your Own Menu

Add or modify YAML menu files in:

plugins/UIcore/menu/

Use the existing examples and the menu authoring documentation as a reference.

Step 5 โ€” Reload the Configuration

After making changes, execute:

/uicore reload

This loads your updated menu configuration.

Step 6 โ€” Explore the Documentation

For a more detailed setup and configuration walkthrough, use the following resources:


๐ŸŽฅ Video Demonstrations

See UIcore interfaces in action.

Bundled Menu Walkthrough

Explore the demonstration menus included with UIcore.

โ–ถ๏ธ Watch the bundled menu walkthrough

Custom Server Menu

See an example of a custom server interface created with the framework.

โ–ถ๏ธ Watch the custom server menu demonstration


โš ๏ธ Current Limitations and Important Notes

UIcore provides a flexible foundation for Minecraft world-space interfaces, but some features have technical limitations.

Schematic Preview Limitations

Schematic previews currently display block states.

They do not reproduce:

  • Container contents.
  • Other block-entity contents.
  • Entities.
  • Biome information.

These limitations should be considered when designing building preview systems.

Console Command Restrictions

Executing console commands from menus is disabled by default.

To enable specific console commands, an explicit allowlist must be configured.

This prevents menu configurations from automatically receiving unrestricted console command execution.

NoChatReports Compatibility

On certain client configurations, NoChatReports may interfere with signed chat behavior and text input used by UIcore menus.

Refer to the compatibility documentation for the observed issue and its documented workaround.

Folia Regional Restrictions

When using Folia, keep all elements of a menu scene within the camera's region.

Server Build Compatibility

Compatibility may vary depending on the selected Minecraft version, server implementation, and installed plugins.

Consult the published Compatibility Matrix before deploying UIcore to a production server.


๐Ÿ’ป Open Source and Licensing

UIcore is an open-source project distributed under the GNU Affero General Public License v3.0 (AGPL-3.0).

The source code is available for inspection, modification, and further development under the terms of the license.

Source Code: github.com/kekaop/UIcore

License: AGPL-3.0

Developer: Orven

Credits and Original Project

UIcore is based on CustomScreenMenu by wuhaoxian123.

The project is published with permission from the original developer.


๐ŸŒŸ UIcore โ€” Interfaces That Become Part of Your World

UIcore provides a different approach to Minecraft server interface design.

Instead of restricting players to conventional inventory screens, it enables developers to create interactive, camera-centered menus using familiar Minecraft elements.

With YAML configuration, a public Java API, dynamic states, schematic previews, and optional integrations, UIcore can serve as the foundation for a wide range of custom server interfaces.

Build menus that feel like part of Minecraft, not just another inventory window.

Explore UIcore on GitHub

No gallery available for this project.

Version Minecraft Loader Download

UIcore 1.0.0

1.0.0

1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2
folia, paper, purpur
Download