{"id":92161,"date":"2026-06-05T09:27:12","date_gmt":"2026-06-05T06:27:12","guid":{"rendered":"https:\/\/vpesports.com\/minecraft\/mods\/layout\/"},"modified":"2026-06-05T09:27:12","modified_gmt":"2026-06-05T06:27:12","slug":"layout","status":"publish","type":"mod","link":"https:\/\/vpesports.com\/minecraft\/mods\/layout\/","title":{"rendered":"layout"},"content":{"rendered":"<p># layout<\/p>\n<p>&#8212;<\/p>\n<p align=\"center\">\n  <a href=\"license\"><br \/>\n    <img decoding=\"async\" src=\"https:\/\/img.shields.io\/badge\/License-MIT-yellow.svg\" alt=\"License\"\/><br \/>\n  <\/a><\/p>\n<p>    <img decoding=\"async\" src=\"https:\/\/img.shields.io\/discord\/1350369915521204276?label=Discord&#038;color=7289DA&#038;logo=discord&#038;logoColor=white\" alt=\"Discord\"\/><\/p>\n<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&#8217;s behavior, allowing you to build GUIs quickly and efficiently.<\/p>\n<p>&#8212;<\/p>\n<p><\/p>\n<p align=\"center\">\n<p>        <img decoding=\"async\" src=\"https:\/\/imgur.com\/DvyC4jL.png\" width=\"600\" alt=\"nothing\"><\/p>\n<p>\n    <i>If you need help, join the discord server.<\/i>\n<\/p>\n<p><\/p>\n<p>## Key Features<\/p>\n<p>### Sized and Fixed Inventories<br \/>\nCreate inventories of variable size (like chests) or fixed size (like crafting tables and anvils), adapting to your project&#8217;s needs.<\/p>\n<p>### Full Customization<br \/>\nControl every aspect of your menus:<\/p>\n<p>* **Interactive Items**: Define items with custom click logic for click events (left, right, middle).<br \/>\n* **Inventory Behaviors**: Assign actions for events like opening, closing, or general clicks within the inventory.<br \/>\n* **Flexible Patterns**: Design complex menus using character-based patterns to visually organize your items.<\/p>\n<p>### Modular Design<br \/>\nThe library is divided into modules that facilitate organization and scalability:<\/p>\n<p>* **`layout`**: Contains the core logic for inventory construction and management.<br \/>\n* **`item`**: Handles the creation and manipulation of items used in inventories.<br \/>\n* **`plugin`**: Includes code examples that demonstrate the library&#8217;s practical use. This module is ideal for learning the syntax and seeing how different concepts are applied.<\/p>\n<p>&#8212;<\/p>\n<p>## Developer Benefits<\/p>\n<p>* **Rapid Development**: Drastically simplifies the menu creation process, allowing you to focus on your plugin&#8217;s functionality.<br \/>\n* **Clean Code**: The fluid syntax results in more readable and maintainable code.<br \/>\n* **Great Potential**: Supports multiple inventory types and behaviors, making it a robust solution for a wide range of plugins.<\/p>\n<p>## Example usage<br \/>\nClick here for more usage examples and documentation.<\/p>\n<p>&#8220;`java<br \/>\nfinal LayoutSizedInventory layoutSizedInventory = Layout.sized()<br \/>\n        .title(Component.text(&#8220;This is a sized example menu!&#8221;, NamedTextColor.BLACK))<br \/>\n        .size(5)<\/p>\n<p>        \/\/ Add a clickable item with multiple click handlers<br \/>\n        .item(22, ClickableItemLayout.builder()<br \/>\n                .material(Material.NETHERITE_PICKAXE)<br \/>\n                .displayName(Component.text(&#8220;Netherite Pickaxe&#8221;, NamedTextColor.GREEN))<br \/>\n                .lore(<br \/>\n                        Component.text(&#8220;Line 1&#8221;, NamedTextColor.GREEN),<br \/>\n                        Component.text(&#8220;Line 2&#8221;, NamedTextColor.LIGHT_PURPLE)<br \/>\n                )<br \/>\n                .onLeftClick(clickContext -> clickContext.player().sendMessage(&#8220;Left click!&#8221;))<br \/>\n                .onRightClick(clickContext -> clickContext.player().sendMessage(&#8220;Right click!&#8221;))<br \/>\n                .onMiddleClick(clickContext -> clickContext.player().sendMessage(&#8220;Middle click!&#8221;))<br \/>\n                .build()<br \/>\n        )<\/p>\n<p>        \/\/ Fill specific rows and columns with items<br \/>\n        .row(1, ItemLayout.display(Material.RED_STAINED_GLASS_PANE))<br \/>\n        .row(3, ItemLayout.display(Material.GREEN_STAINED_GLASS_PANE))<br \/>\n        .column(2, ItemLayout.display(Material.LIME_STAINED_GLASS_PANE).buil)<br \/>\n        .column(6, ItemLayout.display(Material.LIGHT_BLUE_STAINED_GLASS_PANE))<\/p>\n<p>        \/\/ Define inventory behavior<br \/>\n        .behavior(layoutBehaviorBuilder -> layoutBehaviorBuilder<br \/>\n                .cancelAllClicks(false)<br \/>\n                .cancelLayoutClicks(true)<br \/>\n                .allowPlayerInventoryClicks(true)<br \/>\n                .ignoreEmptySlots(true)<br \/>\n                .onClick(context -> context.player().sendMessage(&#8220;Clicked on inventory!&#8221;))<br \/>\n                .onOpen(openContext -> openContext.player().sendMessage(&#8220;Inventory opened!&#8221;))<br \/>\n                .onClose(closeContext -> closeContext.player().sendMessage(&#8220;Inventory closed!&#8221;))<br \/>\n        )<\/p>\n<p>        .build();<\/p>\n<p>layoutSizedInventory.open(player);<br \/>\n&#8220;`<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A simple and powerful library for creating customizable inventories on the Bukkit API.<\/p>\n","protected":false},"featured_media":92162,"template":"","meta":{"_minecraft_slug":"layout","_minecraft_project_id":"tyBlgeLY","_minecraft_author":"iAmForyy_","_minecraft_license":"MIT","_minecraft_downloads":75,"_minecraft_follows":0,"_minecraft_client_side":"unsupported","_minecraft_server_side":"required","_minecraft_storage_type":"zip","_minecraft_archive_name":"layout.zip","_minecraft_size_bytes":80870,"_minecraft_version_count":2,"_minecraft_updated_at":"2026-05-15T20:19:40.992877Z","_minecraft_date_created":"2025-09-12T03:04:25.015849Z","_minecraft_date_modified":"2025-09-12T04:04:58.474691Z","_minecraft_project_url":"https:\/\/modrinth.com\/mod\/layout","_minecraft_icon_attachment_id":92162,"_minecraft_imported_at":"2026-06-05T06:27:13+00:00","_minecraft_import_hash":"dd8043d80d67567e1c5865a25436e0bc","_minecraft_versions":"","_minecraft_links":"","_minecraft_gallery":"","_minecraft_api_metadata":""},"mod_category":[873,127],"mod_loader":[132],"minecraft_version":[54,55,56,57,58,59,36,60,93,94,101,102,62,37,40,41,73,74,38,78,79,80,81,82],"class_list":["post-92161","mod","type-mod","status-publish","has-post-thumbnail","hentry","mod_category-library","mod_category-paper","mod_loader-paper","minecraft_version-1-19","minecraft_version-1-19-1","minecraft_version-1-19-2","minecraft_version-1-19-3","minecraft_version-1-19-4","minecraft_version-1-20","minecraft_version-1-20-1","minecraft_version-1-20-2","minecraft_version-1-20-3","minecraft_version-1-20-4","minecraft_version-1-20-5","minecraft_version-1-20-6","minecraft_version-1-21","minecraft_version-1-21-1","minecraft_version-1-21-10","minecraft_version-1-21-11","minecraft_version-1-21-2","minecraft_version-1-21-3","minecraft_version-1-21-4","minecraft_version-1-21-5","minecraft_version-1-21-6","minecraft_version-1-21-7","minecraft_version-1-21-8","minecraft_version-1-21-9"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.6 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>layout - Minecraft<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/vpesports.com\/minecraft\/mods\/layout\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"layout - Minecraft\" \/>\n<meta property=\"og:description\" content=\"A simple and powerful library for creating customizable inventories on the Bukkit API.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/vpesports.com\/minecraft\/mods\/layout\/\" \/>\n<meta property=\"og:site_name\" content=\"Minecraft\" \/>\n<meta property=\"og:image\" content=\"https:\/\/img.shields.io\/badge\/License-MIT-yellow.svg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/layout\\\/\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/layout\\\/\",\"name\":\"layout - Minecraft\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/layout\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/layout\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/layout-icon-626ed395abc13c2471aa45a55c402c2777d64ae1_96.webp\",\"datePublished\":\"2026-06-05T06:27:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/layout\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/layout\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/layout\\\/#primaryimage\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/layout-icon-626ed395abc13c2471aa45a55c402c2777d64ae1_96.webp\",\"contentUrl\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/layout-icon-626ed395abc13c2471aa45a55c402c2777d64ae1_96.webp\",\"width\":96,\"height\":96},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/layout\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mods\",\"item\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/mods\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"layout\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/#website\",\"url\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/\",\"name\":\"Minecraft\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/vpesports.com\\\/minecraft\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"layout - Minecraft","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/vpesports.com\/minecraft\/mods\/layout\/","og_locale":"en_US","og_type":"article","og_title":"layout - Minecraft","og_description":"A simple and powerful library for creating customizable inventories on the Bukkit API.","og_url":"https:\/\/vpesports.com\/minecraft\/mods\/layout\/","og_site_name":"Minecraft","og_image":[{"url":"https:\/\/img.shields.io\/badge\/License-MIT-yellow.svg","type":"","width":"","height":""}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/vpesports.com\/minecraft\/mods\/layout\/","url":"https:\/\/vpesports.com\/minecraft\/mods\/layout\/","name":"layout - Minecraft","isPartOf":{"@id":"https:\/\/vpesports.com\/minecraft\/#website"},"primaryImageOfPage":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/layout\/#primaryimage"},"image":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/layout\/#primaryimage"},"thumbnailUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/layout-icon-626ed395abc13c2471aa45a55c402c2777d64ae1_96.webp","datePublished":"2026-06-05T06:27:12+00:00","breadcrumb":{"@id":"https:\/\/vpesports.com\/minecraft\/mods\/layout\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/vpesports.com\/minecraft\/mods\/layout\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/vpesports.com\/minecraft\/mods\/layout\/#primaryimage","url":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/layout-icon-626ed395abc13c2471aa45a55c402c2777d64ae1_96.webp","contentUrl":"https:\/\/vpesports.com\/minecraft\/wp-content\/uploads\/2026\/06\/layout-icon-626ed395abc13c2471aa45a55c402c2777d64ae1_96.webp","width":96,"height":96},{"@type":"BreadcrumbList","@id":"https:\/\/vpesports.com\/minecraft\/mods\/layout\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/vpesports.com\/minecraft\/"},{"@type":"ListItem","position":2,"name":"Mods","item":"https:\/\/vpesports.com\/minecraft\/mods\/"},{"@type":"ListItem","position":3,"name":"layout"}]},{"@type":"WebSite","@id":"https:\/\/vpesports.com\/minecraft\/#website","url":"https:\/\/vpesports.com\/minecraft\/","name":"Minecraft","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/vpesports.com\/minecraft\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod\/92161","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod"}],"about":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/types\/mod"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media\/92162"}],"wp:attachment":[{"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/media?parent=92161"}],"wp:term":[{"taxonomy":"mod_category","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_category?post=92161"},{"taxonomy":"mod_loader","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/mod_loader?post=92161"},{"taxonomy":"minecraft_version","embeddable":true,"href":"https:\/\/vpesports.com\/minecraft\/wp-json\/wp\/v2\/minecraft_version?post=92161"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}