# IChestAPI > Main interface for interacting with the Chest loot table system. `gg.lode.chestapi.IChestAPI` --- ## Signature ```java public interface IChestAPI ``` --- ## Methods | Method | Return Type | Description | |--------|-------------|-------------| | `getLootTableManager()` | `ILootTableManager` | Returns the [[ILootTableManager]] instance. | | `getVersion()` | `String` | Returns the plugin version string. | | `reloadLootTables()` | `boolean` | Reloads all loot tables from disk. Returns `true` on success. | | `getAvailableLootTables()` | `Set<String>` | Returns all available loot table names. | | `lootTableExists(String name)` | `boolean` | Checks if a loot table exists. | | `populateInventory(String lootTableName, Inventory inventory)` | `boolean` | Populates an inventory using default item count (3–6). | | `populateInventoryFromMerged(List<String> names, Inventory inventory)` | `boolean` | Populates an inventory from multiple merged loot tables (3–6 items). | | `populateInventoryFromMerged(List<String> names, Inventory inventory, int min, int max)` | `boolean` | Populates an inventory from multiple merged loot tables with custom item count. | | `getRandomItem(String lootTableName)` | `ItemStack` | Returns a single random item, or `null` if the table doesn't exist. | | `getRandomItems(String lootTableName, int count)` | `List<ItemStack>` | Returns multiple random items from the specified loot table. | --- ## Usage ```java IChestAPI api = ChestAPI.getApi(); // Populate a chest inventory api.populateInventory("dungeon_loot", chestInventory); // Merge multiple tables api.populateInventoryFromMerged(List.of("common", "rare"), inventory, 2, 8); // Get a random item ItemStack item = api.getRandomItem("dungeon_loot"); ``` --- ## Related Pages - [[ChestAPI]] - [[ILootTableManager]] - [[ILootTable]] - [[ILootTableItem]]