
CraftUI
A framework for integrating Dear ImGui into Minecraft
Over recent years, I've noticed an increasing number of utility modifications like Flashback starting to use ImGui. However, due to technical limitations, these addons are incompatible with each other - and when compatibility does occur, it works extremely unstable.
CraftUI provides a solution to this problem. Being a specialized wrapper for Dear ImGui in Minecraft, the system handles connecting and rendering native ImGui code, provides cross-mod compatibility, and includes a set of additional tools specifically adapted for the game.
Note: The framework is in active development, so the public API may change. Also, not all Minecraft versions are currently supported.
System Capabilities
CraftUI is built on ImGui Java and inherits all its functions. Additionally, it offers:
-
Font loading through resource packs - allows using custom fonts
-
Customizable themes - also work through resource packs
-
Game window resizing - implemented through the dock-space system
-
Access to native file browser - convenient file management
-
Various utility tools - additional utilities for developers
Quick Start
Before using, it's recommended to learn the basic principles of working with Dear ImGui and specifically ImGui Java. Questions regarding ImGui itself will be redirected to the relevant documentation.
To install, add to the repositories
section of your build script:
repositories {
// ...
maven { url = 'https://jitpack.io' }
}
Then in the dependencies
section specify (replacing [version]
with the desired version):
dependencies {
// ...
modImplementation 'com.github.Igrium:CraftUI:[version]'
}
Don't forget to add the dependency in fabric.mod.json
!
After installation and building, you can create a new UI application by inheriting from CraftApp
:
public class ExampleApp extends CraftApp {
@Override
protected void render(MinecraftClient client) {
// ImGui rendering code goes here
}
}
To open the interface, call:
AppManager.openApp(new ExampleApp());
The application will display over the game until closed with exampleApp.close()
. A more detailed example can be found in testmod
.
Important Notes
- Due to the large size of included native libraries, it's not recommended to bundle the framework itself with your mod
- The package
com.igrium.craftui.impl
is not part of the public API and may change without warning!