Logo
MINECRAFTBIBLE
Items
Items

All game items

Blocks
Blocks

Building blocks

Mobs
Mobs

Creatures & monsters

Biomes
Biomes

World biomes

Structures
Structures

Generated structures

Recipes
Recipes

Crafting guides

Advancements
Advancements

Achievements

Loot Tables
Loot Tables

Drop rates

Tags
Tags

Item groupings

All Versions
View all data →
Capes
Cape ArchiveNEW

Browse rare Minecon capes, OptiFine capes, and custom capes from players worldwide

Browse

Player Database
Player DatabasePopular

Search any player

Skin Browser
Skin Browser

Browse & download skins

Cape Gallery
Cape GalleryNEW

Minecon & OptiFine capes

Seed Vault
Seed Vault

Curated seeds

Learn

Guides
GuidesNew

Tutorials & tips

Blog
Blog

News & updates

Community

Community Hub
Community HubHub

Posts, discussions & more

All Versions
View community →
Seed Analyzer
Seed Analyzer

World seed analysis

Loot Explorer
Loot Explorer

Drop rates

Crafting Calculator
Crafting Calculator

Material planning

Enchant Calculator
Enchant Calculator

Probability math

Redstone Lab
Redstone Lab

Signal timing

Trading Profit
Trading Profit

Villager ROI

All Versions
View all tools →
Mods
Mods

Browse all mods

Plugins
Plugins

Server plugins

Resource Packs
Resource Packs

Textures & sounds

Shaders
Shaders

Visual enhancements

Datapacks
Datapacks

World logic

Scanner
Mod Intelligence

Scan & analyze any mod

All Versions
View all mods →
Loading...
IntroductionIntroductionVersion HistoryVersion HistoryGuidesGuidesBlog & NewsBlog & News
ItemsItemsBlocksBlocksMobsMobsRecipesRecipesBiomesBiomesStructuresStructuresAdvancementsAdvancementsLoot TablesLoot TablesTagsTags
ModsModsPluginsPluginsResource PacksResource PacksShadersShadersDatapacksDatapacks

MinecraftBible

The Ultimate Wiki

Logo
MINECRAFTBIBLE

The ultimate Minecraft reference. Every item, block, mob, and recipe documented with precision.

Community

  • Skin Browser
  • Cape Gallery
  • Seed Vault
  • Blog
  • Guides

Database

  • Items
  • Blocks
  • Mobs
  • Recipes
  • Biomes
  • Structures

Tools

  • Seed Analyzer
  • Mod Intelligence
  • Crafting Calculator
  • Enchant Calculator

Mods & Packs

  • Mods
  • Plugins
  • Resource Packs
  • Shaders
  • Datapacks

Site & Legal

  • About
  • Authors
  • Editorial Policy
  • Corrections
  • Contact
  • Privacy Policy
  • Terms of Service
  • DMCA
  • Sitemap

© 2026 MinecraftBible. Not affiliated with Mojang or Microsoft.

PrivacyTermsContact
layout
PluginMIT

layout

A simple and powerful library for creating customizable inventories on the Bukkit API.

57
Downloads
0
Followers
10 months ago
Updated
📦
2
Versions
librarypaper
Download Latestv2.0.0View on Modrinth

📖About layout

layout


License Discord

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.



nothing
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

Click here for more usage examples and documentation.

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);

👥 Team & Contributors

No authors recorded.

⚙️ Compatibility

Environment
🖥️ Server-side
Loaders
paper
Minecraft Versions
1.191.19.11.19.21.19.31.19.41.201.20.11.20.2+13 more

🔗 Links

Modrinth Page