MinigamesAPI v0.5.3-SNAPSHOT

About A powerful and flexible Minecraft plugin API/framework designed for creating custom minigames.
badge.svg
gpa.svg
badge

🎮 What is MinigamesAPI?

MinigamesAPI serves as a robust foundation for building custom Minecraft minigames. Instead of reinventing the wheel for every new minigame project, developers can leverage this API to handle common minigame functionality such as:
  • Game state management (waiting, playing, ending phases)
  • Team system with automatic player distribution
  • World management with SlimeWorldManager integration
  • Player data persistence with database support (MySQL/MongoDB)
  • Scoreboard system for real-time game information
  • Custom inventory management with snapshot support
  • Event-driven game phases with custom listeners
  • GUI system for interactive menus
  • Custom item framework for special game items
This allows you to focus on creating unique gameplay mechanics rather than spending time on boilerplate code.

✨ Key Features
  • Clean, well-documented API with extensive JavaDocs
  • Type-safe method signatures preventing common errors
  • Builder patterns for complex object creation
  • Event-driven architecture for maximum flexibility
  • Comprehensive logging for debugging

🚀 Performance Optimized
  • Lightweight architecture that minimizes server overhead
  • Efficient memory management with optimized data structures
  • Asynchronous world loading to prevent server lag
  • Thread-safe operations for multi-threaded environments

🛠️ Developer Friendly
  • Intuitive API design with clear method naming and documentation
  • Null-safe implementation preventing common NPE issues
  • Extensive type safety using Java generics
  • Flexible configuration system with YAML support
  • Modular architecture allowing you to use only what you need


🎯 Use Cases
MinigamesAPI is perfect for creating:
  • Arena-based PvP games (Skywars, Bedwars, UHC)
  • Team games (Capture the Flag, Team Deathmatch)
  • Survival challenges (Hunger Games, Battle Royale)
  • Competitive minigames (TNT Run, Spleef, Parkour)
  • Custom game modes with unique mechanics

🔧 Requirements
  • Minecraft Version: 1.8.8 (Spigot/Paper)
  • Java Version: 17+

💾 Database Support
  • MySQL/MariaDB - Recommended for production
  • MongoDB - Alternative NoSQL option
  • Automatic schema management - Tables/collections created automatically
  • Version migration system - Seamless database updates

🌍 World Storage
  • SlimeWorldManager format - Efficient world serialization
  • MySQL storage - Store worlds in your database
  • MongoDB storage - Alternative cloud storage
  • Zstd compression - Reduced storage footprint

📥 Installation & Setup
  1. Download the plugin JAR file
  2. Install ClassModifier (required agent):
  3. Add -javaagent:MinigamesAPI-CLASSMODIFIER-VERSION.jar to your server startup parameters
  4. Configure database in your minigame plugin's config
  5. Restart server and enjoy!


Maven Integration:
XML:
<repositories>
    <repository>
      <id>CodeMC</id>
      <url>https://repo.codemc.io/repository/xfedet/</url>
    </repository>
</repositories>

<dependency>
  <groupId>it.fedet.minigames.api</groupId>
  <artifactId>MinigameAPI</artifactId>
  <version>VERSION</version> <!-- Replace "VERSION" with the version you choose -->
</dependency>


Gradle Integration:
Code:
repositories {
    maven { url 'https://repo.codemc.io/repository/xfedet/' }
}

dependencies {
    compileOnly 'it.fedet.minigames.api:MinigameAPI:VERSION' //Replace "VERSION" with the version you choose
}

🎓 Quick Start Example
Java:
public class YourMinigame extends JavaPlugin implements Minigame<YourMinigame> {
 
    private MinigamesAPI api;
 
    @Override
    public void onEnable() {
        // Get API instance
        api = MinigamesProvider.get();
 
        // Register your minigame
        api.registerMinigame(this);
    }
 
    @Override
    public List<MinigameConfig> registerConfigs() {
        // Register your config files
        return List.of(new YourConfig());
    }
 
    @Override
    public Map<Class<? extends GameGui<YourMinigame>>, GameGui<YourMinigame>> registerGuis() {
        // Register your custom GUIs
        return Map.of();
    }
 
    @Override
    public Map<Class<? extends GameInventory>, GameInventory> registerInventorys() {
        // Register game inventories (lobby items, game kits, etc.)
        return Map.of();
    }
 
    @Override
    public Map<Class<? extends GameCommand>, GameCommand> registerCommands() {
        // Register your commands
        return Map.of();
    }
 
    @Override
    public TeamProvider registerTeamProvider() {
        // Define how teams are created and managed
        return new YourTeamProvider();
    }
 
    @Override
    public MinigamesAPI getMinigamesAPI() {
        return api;
    }
}

Creating a Game Phase:
Java:
public class WaitingPhase extends MinigamePhase<YourMinigame> {
 
    public WaitingPhase(Game<YourMinigame> game) {
        super(game);
    }
 
    @Override
    public MinigamePhase<YourMinigame> nextPhase() {
        return new PlayingPhase(game);
    }
 
    @Override
    public void tick() {
        // Called every server tick
        // Check if ready to start game
    }
 
    @Override
    public GameBoard getScoreboard(Player player) {
        // Return scoreboard for this phase
        return new WaitingScoreboard(game);
    }
 
    @Override
    public GameListener<?>[] registerListeners() {
        // Register phase-specific event listeners
        return new GameListener<?>[] {
            new PlayerJoinListener(),
            new PlayerQuitListener()
        };
    }
}

🏆 Why Choose MinigamesAPI?
✅ Save Development Time - Don't waste hours on boilerplate code
✅ Production Ready - Used on live servers with hundreds of players
✅ Actively Maintained - Regular updates and bug fixes
✅ Performance Focused - Optimized for high-player-count environments
✅ Flexible Design - Adapt it to your specific needs
✅ Open Source - MIT licensed, modify as needed
✅ Great Support - Active developer ready to help
EULA: Free EULA
558 Views
11 Downloads
Jan 9, 2026 Published
N/A Updated
Not yet rated
73.8 MB File size
Open source
  1. Yes
DRM-free
  1. Yes
Unobfuscated
  1. Yes
Type
  1. Gameplay
  1. Minigame
  1. Library
Game mode
  1. Minigame
  1. Bedwars
  1. Skywars
Supported software
  1. Bukkit
  1. Spigot
  1. Paper
  1. Purpur
Supported versions
  1. 1.8
Supported languages
  1. This product doesn't contain text
Creator
Owner
Struggling to cover the costs of your server? Set up your own webstore with Tebex in under 30 seconds.
Lag-free, customizable servers ready in minutes.
Host your adventure today!
Recommended for you
PizzaSorter is a plugin that allows you to create matchmaking for your plugins and create queues
Not yet rated
3 purchases
#1 BuiltByBit Plugin ~ Protects your server from crash packet exploits ~ Folia Support
5.00 star(s) 140 ratings
4,162 purchases
Create items, blocks, mobs, emojis, and more with automatic resourcepack generation!
5.00 star(s) 52 ratings
3,077 purchases
Protect your server from crash/dupe/packet exploits with the ultimate security fix plugin.
5.00 star(s) 44 ratings
3,019 purchases
High Performance | Customizable | Cross-Version | GeyserMC | Folia Support
4.50 star(s) 72 ratings
2,797 purchases
558 Views
11 Downloads
Jan 9, 2026 Published
N/A Updated
Not yet rated
73.8 MB File size
Open source
  1. Yes
DRM-free
  1. Yes
Unobfuscated
  1. Yes
Type
  1. Gameplay
  1. Minigame
  1. Library
Game mode
  1. Minigame
  1. Bedwars
  1. Skywars
Supported software
  1. Bukkit
  1. Spigot
  1. Paper
  1. Purpur
Supported versions
  1. 1.8
Supported languages
  1. This product doesn't contain text
Creator
Owner
Struggling to cover the costs of your server? Set up your own webstore with Tebex in under 30 seconds.
Lag-free, customizable servers ready in minutes.
Host your adventure today!
Recommended for you
PizzaSorter is a plugin that allows you to create matchmaking for your plugins and create queues
Not yet rated
3 purchases
#1 BuiltByBit Plugin ~ Protects your server from crash packet exploits ~ Folia Support
5.00 star(s) 140 ratings
4,162 purchases
Create items, blocks, mobs, emojis, and more with automatic resourcepack generation!
5.00 star(s) 52 ratings
3,077 purchases
Protect your server from crash/dupe/packet exploits with the ultimate security fix plugin.
5.00 star(s) 44 ratings
3,019 purchases
High Performance | Customizable | Cross-Version | GeyserMC | Folia Support
4.50 star(s) 72 ratings
2,797 purchases
Top