layout
🟠 Updated over a year ago🖼️ Gallery (3 images)
🔍 Analysis
- 🏆 #13 of 25 library mods in this game by downloads
📋 About This Mod
# layout --- <p align="center"> <a href="license"> <img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License"/> </a> <a href="https://discord.com/invite/3K9yrZQRmS"> <img src="https://img.shields.io/discord/1350369915521204276?label=Discord&color=7289DA&logo=discord&logoColor=white" alt="Discord"/> </a> </p> **Layout** is a modern, modular library designed to simplify the creation and management of interactive inventories in Minecraft using the Bukkit API. It provides a fluid syntax and complete control over your menu's behavior, allowing you to build GUIs quickly and efficiently. --- <br> <p align="center"> <a href="https://discord.com/invite/3K9yrZQRmS"> <img src="https://imgur.com/DvyC4jL.png" width="600" alt="nothing"> </a> <br/> <i>If you need help, join the discord server.</i> </p> <br> ## Key Features ### Sized and Fixed Inventories Create inventories of variable size (like chests) or fixed size (like crafting tables and anvils), adapting to your project's needs. ### Full Customization Control every aspect of your menus: * **Interactive Items**: Define items with custom click logic for click events (left, right, middle). * **Inventory Behaviors**: Assign actions for events like opening, closing, or general clicks within the inventory. * **Flexible Patterns**: Design complex menus using character-based patterns to visually organize your items. ### Modular Design The library is divided into modules that facilitate organization and scalability: * **`layout`**: Contains the core logic for inventory construction and management. * **`item`**: Handles the creation and manipulation of items used in inventories. * **`plugin`**: Includes code examples that demonstrate the library's practical use. This module is ideal for learning the syntax and seeing how different concepts are applied. --- ## Developer Benefits * **Rapid Development**: Drastically simplifies the menu creation process, allowing you to focus on your plugin's functionality. * **Clean Code**: The fluid syntax results in more readable and maintainable code. * **Great Potential**: Supports multiple inventory types and behaviors, making it a robust solution for a wide range of plugins. ## Example usage (https://github.com/Bytephoria/layout/blob/main/docs/layout-usage.md) ```java final LayoutSizedInventory layoutSizedInventory = Layout.sized() .title(Component.text("This is a sized example menu!", NamedTextColor.BLACK)) .size(5) // Add a clickable item with multiple click handlers .item(22, ClickableItemLayout.builder() .material(Material.NETHERITE_PICKAXE) .displayName(Component.text("Netherite Pickaxe", NamedTextColor.GREEN)) .lore( Component.text("Line 1", NamedTextColor.GREEN), Component.text("Line 2", NamedTextColor.LIGHT_PURPLE) ) .onLeftClick(clickContext -> clickContext.player().sendMessage("Left click!")) .onRightClick(clickContext -> clickContext.player().sendMessage("Right click!")) .onMiddleClick(clickContext -> clickContext.player().sendMessage("Middle click!")) .build() ) // Fill specific rows and columns with items .row(1, ItemLayout.display(Material.RED_STAINED_GLASS_PANE)) .row(3, ItemLayout.display(Material.GREEN_STAINED_GLASS_PANE)) .column(2, ItemLayout.display(Material.LIME_STAINED_GLASS_PANE).buil) .column(6, ItemLayout.display(Material.LIGHT_BLUE_STAINED_GLASS_PANE)) // Define inventory behavior .behavior(layoutBehaviorBuilder -> layoutBehaviorBuilder .cancelAllClicks(false) .cancelLayoutClicks(true) .allowPlayerInventoryClicks(true) .ignoreEmptySlots(true) .onClick(context -> context.player().sendMessage("Clicked on inventory!")) .onOpen(openContext -> openContext.player().sendMessage("Inventory opened!")) .onClose(closeContext -> closeContext.player().sendMessage("Inventory closed!")) ) .build(); layoutSizedInventory.open(player); ```
Layout is a modern, modular library designed to simplify the creation and management of interactive inventories in Minecraft using the Bukkit API. It provides a fluid syntax and complete control over your menu's behavior, allowing you to build GUIs quickly and efficiently.
If you need help, join the discord server.
## Key Features
### Sized and Fixed Inventories Create inventories of variable size (like chests) or fixed size (like crafting tables and anvils), adapting to your project's needs.
### Full Customization Control every aspect of your menus:
Interactive Items: Define items with custom click logic for click events (left, right, middle). Inventory Behaviors: Assign actions for events like opening, closing, or general clicks within the inventory. Flexible Patterns: Design complex menus using character-based patterns to visually organize your items.
### Modular Design The library is divided into modules that facilitate organization and scalability:
`layout`: Contains the core logic for inventory construction and management. `item`: Handles the creation and manipulation of items used in inventories. `plugin`: Includes code examples that demonstrate the library's practical use. This module is ideal for learning the syntax and seeing how different concepts are applied.
## Developer Benefits
Rapid Development: Drastically simplifies the menu creation process, allowing you to focus on your plugin's functionality. Clean Code: The fluid syntax results in more readable and maintainable code. * Great Potential: Supports multiple inventory types and behaviors, making it a robust solution for a wide range of plugins.
## Example usage (https://github.com/Bytephoria/layout/blob/main/docs/layout-usage.md)
```java final LayoutSizedInventory layoutSizedInventory = Layout.sized() .title(Component.text("This is a sized example menu!", NamedTextColor. BLACK)) .size(5)
// Add a clickable item with multiple click handlers .item(22, ClickableItemLayout.builder() .material(Material. NETHERITE_PICKAXE) .displayName(Component.text("Netherite Pickaxe", NamedTextColor. GREEN)) .lore( Component.text("Line 1", NamedTextColor. GREEN), Component.text("Line 2", NamedTextColor. LIGHT_PURPLE) ) .onLeftClick(clickContext -> clickContext.player().sendMessage("Left click!")) .onRightClick(clickContext -> clickContext.player().sendMessage("Right click!")) .onMiddleClick(clickContext -> clickContext.player().sendMessage("Middle click!")) .build() )
// Fill specific rows and columns with items .row(1, ItemLayout.display(Material. RED_STAINED_GLASS_PANE)) .row(3, ItemLayout.display(Material. GREEN_STAINED_GLASS_PANE)) .column(2, ItemLayout.display(Material. LIME_STAINED_GLASS_PANE).buil) .column(6, ItemLayout.display(Material. LIGHT_BLUE_STAINED_GLASS_PANE))
// Define inventory behavior .behavior(layoutBehaviorBuilder -> layoutBehaviorBuilder .cancelAllClicks(false) .cancelLayoutClicks(true) .allowPlayerInventoryClicks(true) .ignoreEmptySlots(true) .onClick(context -> context.player().sendMessage("Clicked on inventory!")) .onOpen(openContext -> openContext.player().sendMessage("Inventory opened!")) .onClose(closeContext -> closeContext.player().sendMessage("Inventory closed!")) )
layoutSizedInventory.open(player); ```
📊 Mod Details
- Game
- Minecraft Plugins
- Author
- iAmForyy_
- Version
- 2.0.0
- Downloads
- 100
- Endorsements
- 0
- Category
- library
- Created
- 9/12/2025
- Updated
- 9/12/2025
- Game Versions
- 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4
- Tags
- library
🔧 How to Install Minecraft Plugins Mods
Download from Modrinth. Use Prism Launcher or drop into your mods folder.
📖 Full step-by-step install guide for Minecraft Plugins →
Visit the official mod page for specific installation instructions for this mod.
🎮 Need cheat codes or console commands? Check ur gaming wiki for Minecraft Plugins commands, item IDs, and more.
❓ Frequently Asked Questions
Which Minecraft Plugins versions does layout support?
The author lists 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20. Other versions may work but are untested by the author.
What is the latest version of layout?
Version 2.0.0, published 2025-09-12 with 100 downloads recorded at the source.
Keep browsing — more Minecraft Plugins mods await


