LDLib2
A modern Minecraft modding library for UI, rendering, synchronization, persistence, and in-game editors.
Documentation | Java Integration | UI Guide | Discord | CurseForge | Modrinth
LDLib2 is a complete rewrite of the original LDLib, redesigned around modern Minecraft and NeoForge development. It gives mod authors a higher-level foundation for building UI, in-game tools, renderer-backed content, synchronized data, and persistent runtime systems without rebuilding the same infrastructure in every project.
Feature Highlights
| LDLib2 UI Build Minecraft screens with Taffy-powered layout, LSS stylesheets, reusable components, XML definitions, data bindings, RPC events, and HUD overlays. |
@Persisted, @DescSynced, and RPC helpers to generate NBT IO, codecs, dirty-field sync, and packet flow with minimal boilerplate.
|
Node Graph Toolkit
Create in-game graph editors with nodes, ports, wires, variables, subgraphs, blackboards, undoable commands, and resource-backed graph assets.
|
In-game Editor Framework
Build Unity-, Blender-, or Blockbench-style tools with dockable views, project files, resource browsers, inspectors, history, settings, and custom editor panels.
|
Configurable
Turn annotated Java objects into inspector-ready property panels, including ranges, selectors, lists, resource locations, search fields, undo history, and persistence.
|
Rendering and Integrations
Use LDLib2's shader, texture, model rendering, scene, and editor utilities together with common modding workflows such as JEI, REI, EMI, KubeJS, and Java plugin entry points.
|
For a full walkthrough, see the UI Getting Started guide.
Links
- Documentation
- GitHub repository
- CurseForge project
- Modrinth project
- Discord community
- Original LDLib
License
LDLib2 is licensed under the LGPL-3.0 license.
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 | ||||
| 11h ago | 1 |
- Added popping an editor window out into its own OS window
- Added global search and using a folder as a resource provider in the asset browser, and search and sort in resource grids
- Added project types deciding how their files open and adding their own entries to the asset browser's menu
- Added dropping another view's drag payload on an asset browser folder, for an editor to write it there as a file
- Added undo and redo for adding, removing, pasting and moving elements in the UI editor
- Added debugging a running UI editor simulation with the UI debugger, by F12 inside it or from the target picker
- Added Ctrl+A to select all in the graph view
- Added window dialogs remembering the size they are resized to, and fitting themselves to the screen
- Added translating an enum's selector entries by
<enum class>.<CONSTANT>keys - Added configurators remembering the field they edit, taking menu entries from the groups around them, and drawing a value as overridden
- Improved the file dialog with a path to jump to and the system folder picker (thanks @spawner1145)
- Improved shortcut commands to bubble from the focused element up to the view that handles them, so copy, paste and undo still reach a view whose child has the focus (thanks @spawner1145)
- Improved the gizmo so a right-click cancels a drag, and the trackball no longer turns as soon as it is pressed
- Improved the asset browser to stop rebuilding for other folders' providers or twice per change, and to find a resource's entry without reading every one listed before it
- Improved UI test runs to play in a game directory of their own, emptied first, so a developer's run/ neither affects them nor collects what they leave behind
- Fixed a disabled panel, such as a read-only inspector, still letting its fields, pickers, dialogs, paste and reordering change values, while foldouts, scrolling and selection keep working
- Fixed renaming a resource to a name its provider cannot store deleting the resource, and a removed file resource being read back when one was made again under its path
- Fixed the asset browser losing track of a folder spelled differently from its root, of providers added or removed elsewhere, and of the path of a resource dragged out of a folder with no provider
- Fixed graph and UI editor tabs showing the file's type suffix and not following a rename made elsewhere or undone
- Fixed a node defined inside another node's definition taking the outer node's later ports and options
- Fixed an option that changes a node's ports or options leaving the inspector with the old ones
- Fixed a graph's own variable declaration type being discarded when its variables were read back
- Fixed menus staying 120 wide, with longer entries cut off or spilling out
- Fixed lines drawn into a scene smaller than the window coming out thinner than their width
- Fixed pasting into a text field taking only text copied inside the game, not from other applications
- Added popping an editor window out into its own OS window
- Added global search and using a folder as a resource provider in the asset browser, and search and sort in resource grids
- Added project types deciding how their files open and adding their own entries to the asset browser's menu
- Added dropping another view's drag payload on an asset browser folder, for an editor to write it there as a file
- Added undo and redo for adding, removing, pasting and moving elements in the UI editor
- Added debugging a running UI editor simulation with the UI debugger, by F12 inside it or from the target picker
- Added Ctrl+A to select all in the graph view
- Added window dialogs remembering the size they are resized to, and fitting themselves to the screen
- Added translating an enum's selector entries by
<enum class>.<CONSTANT>keys - Added configurators remembering the field they edit, taking menu entries from the groups around them, and drawing a value as overridden
- Improved the file dialog with a path to jump to and the system folder picker (thanks @spawner1145)
- Improved shortcut commands to bubble from the focused element up to the view that handles them, so copy, paste and undo still reach a view whose child has the focus (thanks @spawner1145)
- Improved the gizmo so a right-click cancels a drag, and the trackball no longer turns as soon as it is pressed
- Improved the asset browser to stop rebuilding for other folders' providers or twice per change, and to find a resource's entry without reading every one listed before it
- Improved UI test runs to play in a game directory of their own, emptied first, so a developer's run/ neither affects them nor collects what they leave behind
- Fixed a disabled panel, such as a read-only inspector, still letting its fields, pickers, dialogs, paste and reordering change values, while foldouts, scrolling and selection keep working
- Fixed renaming a resource to a name its provider cannot store deleting the resource, and a removed file resource being read back when one was made again under its path
- Fixed the asset browser losing track of a folder spelled differently from its root, of providers added or removed elsewhere, and of the path of a resource dragged out of a folder with no provider
- Fixed graph and UI editor tabs showing the file's type suffix and not following a rename made elsewhere or undone
- Fixed a node defined inside another node's definition taking the outer node's later ports and options
- Fixed an option that changes a node's ports or options leaving the inspector with the old ones
- Fixed a graph's own variable declaration type being discarded when its variables were read back
- Fixed menus staying 120 wide, with longer entries cut off or spilling out
- Fixed pasting into a text field taking only text copied inside the game, not from other applications
- Added popping an editor window out into its own OS window
- Added global search and using a folder as a resource provider in the asset browser, and search and sort in resource grids
- Added project types deciding how their files open and adding their own entries to the asset browser's menu
- Added dropping another view's drag payload on an asset browser folder, for an editor to write it there as a file
- Added undo and redo for adding, removing, pasting and moving elements in the UI editor
- Added debugging a running UI editor simulation with the UI debugger, by F3 inside it or from the target picker
- Added Ctrl+A to select all in the graph view
- Added window dialogs remembering the size they are resized to, and fitting themselves to the screen
- Added translating an enum's selector entries by
<enum class>.<CONSTANT>keys - Added configurators remembering the field they edit, taking menu entries from the groups around them, and drawing a value as overridden
- Improved the file dialog with a path to jump to and the system folder picker (thanks @spawner1145)
- Improved shortcut commands to bubble from the focused element up to the view that handles them, so copy, paste and undo still reach a view whose child has the focus (thanks @spawner1145)
- Improved the gizmo so a right-click cancels a drag, and the trackball no longer turns as soon as it is pressed
- Improved the asset browser to stop rebuilding for other folders' providers or twice per change, and to find a resource's entry without reading every one listed before it
- Fixed the mod jar bundling a pre-release Kotlin standard library instead of the one it is built against
- Fixed a disabled panel, such as a read-only inspector, still letting its fields, pickers, dialogs, paste and reordering change values, while foldouts, scrolling and selection keep working
- Fixed renaming a resource to a name its provider cannot store deleting the resource, and a removed file resource being read back when one was made again under its path
- Fixed the asset browser losing track of a folder spelled differently from its root, of providers added or removed elsewhere, and of the path of a resource dragged out of a folder with no provider
- Fixed graph and UI editor tabs showing the file's type suffix and not following a rename made elsewhere or undone
- Fixed a node defined inside another node's definition taking the outer node's later ports and options
- Fixed an option that changes a node's ports or options leaving the inspector with the old ones
- Fixed a graph's own variable declaration type being discarded when its variables were read back
- Fixed menus staying 120 wide, with longer entries cut off or spilling out
- Fixed lines drawn into a smaller viewport coming out thinner than their width
- Hello 26.3
- Fixed OBJ Model with model state
- Making Scene PIP copiable
- Added a configurable keymap framework for the editor, with rebindable chords, key contexts and a settings page
- Added auto layout to the graph's contextual menu, with layered, grid and force-directed algorithms, and placemats arranged either as one box or from the inside out
- Added selectable wire route styles — curved, octilinear, orthogonal and straight
- Added a Get/Set choice when a variable is dropped on a graph that can write one
- Added canAuthorLiteral, so the item library defaults to the supported types a literal can be authored of
- Added authored tooltips to port builders, matching option builders
- Added a node option API for keeping an option out of the inspector, the opposite of showInInspectorOnly
- Added an lss sprite wrap mode, kebab-case enum values and rect corner segments
- Improved graph snapping to take a node by whichever of its four edges is nearest, and to line it up with the edges and centres of nearby elements behind a guide
- Improved the graph view to remember its snapping and wire style per graph type
- Improved the resource view's tab strip to be resizable, wrapping, reorderable by drag and placeable on any of the four sides, remembered per editor
- Improved the graph toolbar tooltips to show the chord each action is bound to
- Improved a read-only graph to still offer the wire style picker, which decides how the graph is drawn rather than what it holds
- Fixed the game crashing when a UI element was clipped away to nothing, which 26.2's render pass rejects where the old one drew nothing
- Fixed a contextual menu with two separators losing the one in its middle
- Fixed a code editor letting the keys it acts on bubble on to the container's shortcuts, and swallowing Ctrl+Tab to type an indent
- Fixed a client being unable to join a server that does not have LDLib (thanks @TcatHeBlueCreper)
- Fixed dragging several elements at once changing the spacing between them
- Fixed a ResourceProvider crash
- Fixed the item stack configurator crashing on a null stack, which the block state one already survives
- Fixed minimizing an editor window without an id crashing the game
- Fixed every editor sharing one recent projects list instead of keeping its own project types
- Fixed a search box offering only the value already chosen until a character was typed
- Fixed a focused text field letting the keys it types bubble on to the container's shortcuts
- Fixed a loaded constant keeping the type it was saved under instead of following its pin's declared type
- Fixed a freshly opened graph drawing its wires at the layer's old offset until a node was dragged
- Fixed the headless test harness disabling the early window on machines that have a display
- Added a configurable keymap framework for the editor, with rebindable chords, key contexts and a settings page
- Added auto layout to the graph's contextual menu, with layered, grid and force-directed algorithms, and placemats arranged either as one box or from the inside out
- Added selectable wire route styles — curved, octilinear, orthogonal and straight
- Added a Get/Set choice when a variable is dropped on a graph that can write one
- Added canAuthorLiteral, so the item library defaults to the supported types a literal can be authored of
- Added authored tooltips to port builders, matching option builders
- Added a node option API for keeping an option out of the inspector, the opposite of showInInspectorOnly
- Added an lss sprite wrap mode, kebab-case enum values and rect corner segments
- Improved graph snapping to take a node by whichever of its four edges is nearest, and to line it up with the edges and centres of nearby elements behind a guide
- Improved the graph view to remember its snapping and wire style per graph type
- Improved the resource view's tab strip to be resizable, wrapping, reorderable by drag and placeable on any of the four sides, remembered per editor
- Improved the graph toolbar tooltips to show the chord each action is bound to
- Fixed a client being unable to join a server that does not have LDLib (thanks @TcatHeBlueCreper)
- Fixed dragging several elements at once changing the spacing between them
- Fixed a ResourceProvider crash
- Fixed the item stack configurator crashing on a null stack, which the block state one already survives
- Fixed minimizing an editor window without an id crashing the game
- Fixed every editor sharing one recent projects list instead of keeping its own project types
- Fixed a search box offering only the value already chosen until a character was typed
- Fixed a focused text field letting the keys it types bubble on to the container's shortcuts
- Fixed a loaded constant keeping the type it was saved under instead of following its pin's declared type
- Fixed a freshly opened graph drawing its wires at the layer's old offset until a node was dragged
- Fixed the headless test harness disabling the early window on machines that have a display
- Added auto layout to the graph's contextual menu, with layered, grid and force-directed algorithms, and placemats arranged either as one box or from the inside out
- Added selectable wire route styles — curved, octilinear, orthogonal and straight
- Added a Get/Set choice when a variable is dropped on a graph that can write one
- Added canAuthorLiteral, so the item library defaults to the supported types a literal can be authored of
- Added authored tooltips to port builders, matching option builders
- Added an lss sprite wrap mode, kebab-case enum values and rect corner segments
- Improved graph snapping to take a node by whichever of its four edges is nearest, and to line it up with the edges and centres of nearby elements behind a guide
- Improved the graph view to remember its snapping and wire style per graph type
- Improved the resource view's tab strip to be resizable, wrapping, reorderable by drag and placeable on any of the four sides, remembered per editor
- Fixed a client being unable to join a server that does not have LDLib (thanks @TcatHeBlueCreper)
- Fixed dragging several elements at once changing the spacing between them
- Fixed a ResourceProvider crash
- Fixed the item stack configurator crashing on a n**u**ll stack, which the block state one already survives
- Added a configurable keymap framework for the editor, with rebindable chords, key contexts and a settings page
- Added a node option API for keeping an option out of the inspector, the opposite of showInInspectorOnly
- Improved the graph toolbar tooltips to show the chord each action is bound to
- Fixed minimizing an editor window without an id crashing the game
- Fixed every editor sharing one recent projects list instead of keeping its own project types
- Fixed a search box offering only the value already chosen until a character was typed
- Fixed a focused text field letting the keys it types bubble on to the container's shortcuts
- Fixed a loaded constant keeping the type it was saved under instead of following its pin's declared type
- Fixed a freshly opened graph drawing its wires at the layer's old offset until a node was dragged
- Fixed the headless test harness disabling the early window on machines that have a display
- Added javac
-parametersfor kjs
- Added javac
-parametersfor kjs
- Added six themes — dusk, carbon, mint, plum, paper and latte — one design over four dark palettes and two light
- Added moving the UI debugger into its own window, and inspecting any window from it
- Added parallel UI test runs across several client processes
- Added headless UI test runs
- Added free movement and uniform scaling from the transform gizmo's centre box
- Added planar scale handles that scale the two axes they span
- Added read-only graph viewing and a copy-to-provider dialog
- Added a reusable ItemLibraryPanel split out of the node graph's item library
- Added ITransform so the scene gizmo can drive anything with a transform
- Added more builtin lss
- Improved the JEI integration to use only JEI's public API, so a JEI update no longer breaks it
- Improved the rotation gizmo with screen and trackball handles, and rings that are easier to grab
- Improved the rotation gizmo to draw only the near half of each ring, over a faint ball outline
- Improved the planar handles by moving them further out from the centre
- Improved OS-level windows with always-on-top and remembered bounds
- Improved the item library to recommend same type ports first
- Improved the two-way ScrollerView to swap the scroll wheel's axes with shift
- Improved the parallel and multi-process test runs to come up on the backend
-PgraphicsBackendpinned - Fixed a UI in its own window being clipped to the game window's size
- Fixed a UI test run stopping at NeoForge's mod loading warning screen, which any mod in the runtime can raise
- Fixed the transform gizmo's size and picking under an orthographic camera
- Fixed a scene click being broadcast to every interactable instead of the nearest one
- Fixed an option being invisible in the inspector
- Fixed a recipe slot always reporting itself to JEI as render-only, ignoring its IngredientIO
- Fixed a tooltip in a floating window being kept inside the game window
- Fixed builtin UI resources not being openable
- Fixed JEI leaking into the published pom as a runtime dependency
- Fixed datagen crashing because it reached for a Minecraft instance it never has
- Fixed a class-path failure reporting the previous run's result as a pass
- Fixed a test selection that matched nothing reporting a passing run
- Added six themes — dusk, carbon, mint, plum, paper and latte — one design over four dark palettes and two light
- Added free movement and uniform scaling from the transform gizmo's centre box
- Added planar scale handles that scale the two axes they span
- Added headless UI test runs
- Added more builtin lss
- Improved the rotation gizmo to draw only the near half of each ring, over a faint ball outline
- Improved the planar handles by moving them further out from the centre
- Fixed the transform gizmo's size and picking under an orthographic camera
- Fixed a scene click being broadcast to every interactable instead of the nearest one
- Fixed an option being invisible in the inspector
- Fixed JEI leaking into the published pom as a runtime dependency
- Fixed datagen crashing because it reached for a Minecraft instance it never has
- Fixed a class-path failure reporting the previous run's result as a pass
- Added six themes — dusk, carbon, mint, plum, paper and latte — one design over four dark palettes and two light
- Added free movement and uniform scaling from the transform gizmo's centre box
- Added planar scale handles that scale the two axes they span
- Added headless UI test runs
- Added more builtin lss
- Improved the rotation gizmo to draw only the near half of each ring, over a faint ball outline
- Improved the planar handles by moving them further out from the centre
- Fixed the transform gizmo's size and picking under an orthographic camera
- Fixed a scene click being broadcast to every interactable instead of the nearest one
- Fixed an option being invisible in the inspector
- Fixed JEI leaking into the published pom as a runtime dependency
- Fixed parallel test shards each running everything, and sizing scenarios differently from a serial run
- Fixed a class-path failure reporting the previous run's result as a pass
- Added six themes — dusk, carbon, mint, plum, paper and latte — one design over four dark palettes and two light
- Added free movement and uniform scaling from the transform gizmo's centre box
- Added planar scale handles that scale the two axes they span
- Added headless UI test runs
- Added more builtin lss
- Improved the rotation gizmo to draw only the near half of each ring, over a faint ball outline
- Improved the planar handles by moving them further out from the centre
- Fixed the transform gizmo's size and picking under an orthographic camera
- Fixed a scene click being broadcast to every interactable instead of the nearest one
- Fixed an option being invisible in the inspector
- Fixed JEI leaking into the published pom as a runtime dependency
- Fixed parallel test shards each running everything, and sizing scenarios differently from a serial run
- Fixed a class-path failure reporting the previous run's result as a pass
- Added JEI latest APIs support
- Added moving the UI debugger into its own window, and inspecting any window from it
- Added parallel UI test runs across several client processes
- Added read-only graph viewing and a copy-to-provider dialog
- Added a reusable ItemLibraryPanel split out of the node graph's item library
- Added ITransform so the scene gizmo can drive anything with a transform
- Improved the JEI integration to use only JEI's public API, so a JEI update no longer breaks it
- Improved the rotation gizmo with screen and trackball handles, and rings that are easier to grab
- Improved OS-level windows with always-on-top and remembered bounds
- Improved the item library to recommend same type ports first
- Improved the two-way ScrollerView to swap the scroll wheel's axes with shift
- Updated JEI to 29.34.0.90 and NeoForge to 26.1.2.100
- Fixed a recipe slot always reporting itself to JEI as render-only, ignoring its IngredientIO
- Fixed a tooltip in a floating window being kept inside the game window
- Fixed builtin UI resources not being openable
- Fixed a test selection that matched nothing reporting a passing run
- Added moving the UI debugger into its own window, and inspecting any window from it
- Added parallel UI test runs across several client processes
- Added read-only graph viewing and a copy-to-provider dialog
- Added a reusable ItemLibraryPanel split out of the node graph's item library
- Added ITransform so the scene gizmo can drive anything with a transform
- Improved the rotation gizmo with screen and trackball handles, and rings that are easier to grab
- Improved OS-level windows with always-on-top and remembered bounds
- Improved the item library to recommend same type ports first
- Improved the two-way ScrollerView to swap the scroll wheel's axes with shift
- Fixed a tooltip in a floating window being kept inside the game window
- Fixed builtin UI resources not being openable
- Fixed a test selection that matched nothing reporting a passing run
- Fixed the resource selector dialog resetting the GUI scale to auto
- Added wire reroute points to the node graph toolkit
- Added MultiPlayer test for dedicated server + clients.
- Fixed cross modular animations
- Improved editor asset browser qol
- Fixed the resource selector dialog resetting the GUI scale to auto
- Added wire reroute points to the node graph toolkit
- Added MultiPlayer test for dedicated server + clients.
- Fixed cross modular animations
- Improved editor asset browser qol
- Fixed the resource selector dialog resetting the GUI scale to auto
- Added wire reroute points to the node graph toolkit
- Added MultiPlayer test for dedicated server + clients.
- Fixed cross modular animations
- Improved editor asset browser qol
- Fixed APIs compatibility
- Fixed missing update packet
- Moved JEI calls to use APIs
- Improved view container APIs
- Fixed missing update packet
- Moved JEI calls to use APIs
- Improved view container APIs
- Fixed missing update packet
- Moved JEI calls to use APIs
- Improved view container APIs
- Improved Auto Tests in the background without taking focus or the physical mouse
- Added DataBindingBuilder hooks
- Improved graphview api
- Routed UIElement modifier checks through a swappable key state source
- Added level of detail and an adaptive grid to the graph view
- Added an in-client UI test harness
- Added hosting a ModularUI in its own OS-level window
- Added dock pane maximize, tab context menus and floating editor views
- Added UI test scenarios for pane maximize and floating windows
- Cached directory listings and made the file tree follow the file system
- Moved the asset browser grid onto the single-pass directory listing
- Rendered scenes into the surface being drawn on rather than the game window
- Added capturing a floating window's own framebuffer in the UI test harness
- Added project icon
- Improved Clipped UI elements against the render target's pixel
- Fixed Closed the gui renderers a floating window and a visual layer leaked
- Improved Clipped UI elements against the render target's pixel
- Fixed Closed the gui renderers a floating window and a visual layer leaked
- Improved Auto Tests in the background without taking focus or the physical mouse
- Added DataBindingBuilder hooks
- Improved graphview api
- Routed UIElement modifier checks through a swappable key state source
- Added level of detail and an adaptive grid to the graph view
- Added an in-client UI test harness
- Added hosting a ModularUI in its own OS-level window
- Added dock pane maximize, tab context menus and floating editor views
- Added UI test scenarios for pane maximize and floating windows
- Cached directory listings and made the file tree follow the file system
- Moved the asset browser grid onto the single-pass directory listing
- Rendered scenes into the surface being drawn on rather than the game window
- Added capturing a floating window's own framebuffer in the UI test harness
- Added project icon
- Improved Auto Tests in the background without taking focus or the physical mouse
- Added DataBindingBuilder hooks
- Improved graphview api
- Routed UIElement modifier checks through a swappable key state source
- Added level of detail and an adaptive grid to the graph view
- Added an in-client UI test harness
- Added hosting a ModularUI in its own OS-level window
- Added dock pane maximize, tab context menus and floating editor views
- Added UI test scenarios for pane maximize and floating windows
- Cached directory listings and made the file tree follow the file system
- Moved the asset browser grid onto the single-pass directory listing
- Rendered scenes into the surface being drawn on rather than the game window
- Added capturing a floating window's own framebuffer in the UI test harness
- Added project icon



