Welcome to Collections, a versatile Minecraft plugin that turns item gathering into an exciting adventure! Whether you’re a server owner looking to engage players with unique challenges or a player hunting for treasures, Collections offers a robust, customizable system to track and display collectibles in-game. Built with flexibility and user experience in mind, this plugin is perfect for survival or RPG servers
✨ Key Features
Dynamic Collection Tracking
Instant Updates: Collect items like emeralds, tools, or custom items, and see them logged in real-time as you pick them up—no delays!
Unique Item IDs: Uses composite keys (e.g., gems.emerald) to ensure every collectible is distinct across categories, avoiding conflicts.
️ Customizable GUIs
Flexible Sizes: Adjust the main and category GUI sizes (9, 18, 27, 36, 45, 54 slots) to fit your server’s style, with the last row always reserved for pagination.
Personalized Titles: Configure GUI titles with placeholders like {player} and {category} (e.g., "Steve’s Treasures" or "Gems for Steve") using MiniMessage formatting for vibrant text.
Intuitive Navigation: Pagination buttons ("Previous" and "Next") stay consistent in the last row, dynamically adjusting to your chosen GUI size.
Dual Database Support
SQLite by Default: No setup needed—data saves locally to collections.db for easy deployment.
Optional MySQL: Toggle to MySQL with a simple use-mysql: true in the config, perfect for multi-server setups or larger networks.
PlaceholderAPI Integration
Dynamic Placeholders: Use %collections_<category>_amount% to show items collected (e.g., "2" for 2/3 gems) and %collections_<category>_completed% for true/false completion status in chat, scoreboards, or GUIs.
⚙️ User-Friendly Configuration
Detailed Config: Comes with a well-commented config.yml explaining every option, complete with example categories ("Gems" and "Tools") to get you started.
Slot Management: Easily place categories and items in specific slots, with validation to keep content above the pagination row.
Completion Rewards
Custom Commands: Run commands when a category is completed.
Celebratory Messages: Send personalized messages to collection completion
Screenshots (Add your own screenshots here! Suggested shots: Main GUI with categories, a category GUI with items, a completion message in chat.)
Code (YAML):
# Collections Plugin Configuration
# This file controls the database, GUI placeholders, pagination, and collectible categories. # All sections are optional unless specified otherwise.
# GUI Titles # Customize the titles of the GUIs. Supports MiniMessage formatting (https://docs.adventure.kyori.net/minimessage). # Placeholders: {player} = player's name, {category} = category display name (category GUI only). gui-titles:
main: "Collections"# Title for the main GUI showing all categories. category: "{player}'s {category}"# Title for individual category GUIs.
# Database Configuration # Controls how player collection data is stored. database: # Set to true to use MySQL, false to use SQLite (default). # If true, fill in the details below. If false, data saves to 'collections.db' in the plugin folder. use-mysql: false
# MySQL connection details (only used if use-mysql is true). host: "localhost"# MySQL server address (e.g., "localhost" or "192.168.1.100"). port: 3306
# MySQL server port (default is 3306). database: "minecraft"# Name of the MySQL database. username: "root"# MySQL username. password: ""# MySQL password (leave empty if none).
# Placeholder Settings # Defines the appearance of uncollected items in the GUI. placeholder:
material: GRAY_DYE
# Material for uncollected item slots (e.g., GRAY_DYE, STONE). display-name: "<gray>Not Collected"# Name shown in the GUI (supports MiniMessage formatting). lore: # Description lines for uncollected items. -
"<gray>Find this item!" custom-model-data: 0
# Custom model data for resource packs (0 = default).
# Pagination Settings # Controls the Previous/Next buttons in the GUI. pagination:
previous:
material: ARROW
# Material for the Previous Page button. display-name: "<green>Previous Page"# Button name. lore: # Button description. -
"<gray>Go to the previous page" custom-model-data: 0
# Custom model data. slot: 27
# Slot in the GUI (0-35, as inventory size is 36). next:
material: ARROW
# Material for the Next Page button. display-name: "<green>Next Page"# Button name. lore: # Button description. -
"<gray>Go to the next page" custom-model-data: 0
# Custom model data. slot: 35
# Slot in the GUI (0-35).
# Categories # Define collections of items for players to gather. # Each category appears in the main GUI and can have multiple items across pages. categories: # Example Category: Gems gems:
display-name: "<blue>Gems"# Name shown in the main GUI. icon: EMERALD
# Material for the category icon in the main GUI. custom-model-data: 0
# Custom model data for the icon. size: 18
# Inventory size for this category’s GUI (9, 18, 27, 36, 45, 54). title: "{player}'s Gems"# Title of the category GUI ({player} is replaced with the player’s name). slot: 12
# Slot in the main GUI (0-26, pages calculated as slot / 27). items:
emerald:
material: EMERALD
# Material of the collectible item. display-name: "<green>Emerald"# Name shown when collected. lore: # Description when collected. - "<gray>Collected: <white>
{amount
}" custom-model-data: 0 # Custom model data. slot: 4 # Slot in the category GUI (0-26). page: 0 # Page in the category GUI (0-based). diamond: material: DIAMOND display-name: "<aqua>Diamond
" lore: - "<gray>A shiny treasure!
" custom-model-data: 0 slot: 5 page: 0 complete-command: "give
{player
} emerald 10
" # Command to run when all items are collected ({player} is the player’s name). complete-message: "<green>Congratulations,
{player
}! You've completed the Gems collection!
" # Message sent on completion.