inv_gui is a Minecraft Java Edition datapack library for building inventory-based GUI menus. It is a fully renamed and restructured fork of Sketch.
Maintainer: runtoolkit
Version: 1.0.0
Minecraft: 1.20.2 – 1.20.4 (pack_format 26)
License: CC0-1.0
Note: 1.21+ support will be added via overlay system in future commits.
- 27-slot GUI menus using Chest Minecart or Ender Chest
- Button, normal item, and variable item types
- Click & drop event detection
- Callback system (listener-based)
- Swap active menu mid-session with
set_menu util/mapandutil/arrayhelper modules
The following datapacks must be loaded alongside inv_gui:data
| Datapack | License | Link |
|---|---|---|
| Oh! My Dat! | MIT | Ai-Akaishi/OhMyDat |
| Close Detector | MIT | Ai-Akaishi/CloseDetector |
| Player Item Tuner | MIT | Ai-Akaishi/PlayerItemTuner |
execute in minecraft:overworld run function inv_gui:api/setupRun once per dimension. See docs/installation.md for details.
# Register a filler button (key "f")
item replace block 10000 0 10000 container.0 with minecraft:gray_stained_glass_pane
data modify storage inv_gui:data in.key set value "f"
function inv_gui:api/register_item/button
# Register a clickable gold block (key "G", listener "give_gold")
item replace block 10000 0 10000 container.0 with minecraft:gold_block
data modify storage inv_gui:data in.key set value "G"
data modify storage inv_gui:data in.listener set value "give_gold"
function inv_gui:api/register_item/button
# Define the menu layout (3 rows x 9 columns)
data modify storage inv_gui:data in.contents append value [f, f, f, f, f, f, f, f, f]
data modify storage inv_gui:data in.contents append value [f, -, -, -, G, -, -, -, f]
data modify storage inv_gui:data in.contents append value [f, f, f, f, f, f, f, f, f]
data modify storage inv_gui:data in.id set value "main_menu"
function inv_gui:api/build/autoFull API reference: docs/api.md
inv_gui:data Main input/output storage (API parameters)
in.key Short key of the item to register
in.listener Click listener name
in.contents Menu layout (3 rows × 9 columns)
in.id Menu identifier
callback.* Return data after a click event
inv_gui:core Internal persistent data (CurrentMenuType etc.)
inv_gui:temp Temporary operation data
inv_gui:util Helper module data
| Objective | Type | Description |
|---|---|---|
InvGui |
dummy | General state score |
InvGui.Id |
dummy | Minecart menu ID index |
InvGui.Drop |
minecraft.used:carrot_on_a_stick | Drop detection |
See CHANGELOG.md