All versions
0.2.14b
Beta
Vitraux 0.2.14b2 months ago 111
Compatibility
Minecraft: Java Edition
1.21–1.21.1
Platform
Fabric
Supported environments
Client and server
Changes
[0.2.14b] — 2026-06-20
Added
vitraux:blank_template— craftable item (8 sticks + 1 paper) required to create a template at the Glazier's Bench; consumed on use instead of templates being freevitraux:blueprint— reusable, non-consumable item that permanently stores a canvas design; lets you reproduce a design without redrawing it- Save Design button at the bench captures the current canvas into a new Blueprint
- Inserting a filled Blueprint into its slot auto-loads its design into the canvas (no button hunting required); a manual Reload button is also available to revert after further edits
- Inserting a named Blueprint pre-fills the Template/Blueprint name field with its name; removing it resets the field back to "Template"
- Player inventory access in the Glazier's Bench — full 36-slot inventory + hotbar added to the GUI so items can actually be moved in and out
- Two-stage Glazier's Bench GUI — opening the bench now shows only the input slots + inventory until a blank template or blueprint is inserted; the canvas/editor/palette tools unlock once something is loaded
- Dynamic item icons — Template and Blueprint items render their actual saved design directly on the item (inventory, hand, ground) via a custom builtin item renderer, instead of a static placeholder texture
- Template: design + dashed gray frame ("sketch" look)
- Blueprint: design + solid frame ("finished" look)
- Tooltip canvas size — Template/Blueprint tooltips show a "W x H cells" line so designs stay distinguishable even when sharing a name
Fixed
- Typing in the name field moved the player / closed the GUI —
W/A/S/D/Eleaked through to movement and inventory-toggle keybindings while the text field was focused; all key events are now fully captured while it has focus - No tooltip when hovering items/slots inside the Glazier's Bench GUI —
HandledScreennever callsdrawMouseoverTooltip()on its own; the screen now triggers it explicitly afterrender() - Blueprint reload showed a shifted/cut-off design —
setPixel()indexed the canvas buffer using the active canvas width instead of the buffer's fixed stride, corrupting any saved design narrower than the max canvas size with 2+ rows
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:jbhGe1Li:HPCqwoEM"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:jbhGe1Li:HPCqwoEM"
}

