Installation & Setup

Installation & Setup

Complete step-by-step guide to installing the Minecraft Plugins plugin and enabling it for your game servers.


Prerequisites

  • Pelican Panel version 1.0.0+ installed and running
  • PHP 8.1, 8.2, or 8.3 on the Panel server
  • A Minecraft server managed by the Panel
  • Database user with CREATE TABLE privileges (the plugin creates minecraft_installed_plugins table)
  • storage/ and bootstrap/cache/ writable (permissions 0755, owner: web server user)

Step 1: Install the Plugin

  1. Download the latest minecraft-plugins plugin release
  2. Place it in your Pelican Panel's plugins/ directory:
    /var/www/pelican/plugins/minecraft-plugins/
    
  3. Verify the directory structure:
    plugins/minecraft-plugins/
    ├── src/
    ├── config/
    ├── resources/
    ├── database/
    └── plugin.json
    
  4. Clear the application cache:
    php artisan cache:clear
    php artisan config:clear
    php artisan view:clear
    
  5. Verify the plugin appears under Admin Panel → Plugins as "Minecraft Plugins"

The plugin creates the minecraft_installed_plugins database table automatically on first load.


Step 2: Enable for a Server

The plugin uses the plugins feature flag on Eggs.

  1. Go to Admin Panel → Eggs
  2. Edit your Minecraft server Egg (e.g., "Paper", "Spigot", "Purpur")
  3. Add plugins to the Features field:
    ["plugins"]
    
    If the Egg already has features:
    ["eula", "java_version", "plugins"]
    
  4. Click Save

Important: The feature flag must be exactly plugins (lowercase). Plugins, PLUGINS, or plugin will not work.

Note: The 403 error message is currently hardcoded in German: "Modpack Browser ist für diesen Server nicht verfügbar." — this is a known issue.


Step 3: Minecraft Version Detection

The plugin auto-detects your Minecraft version using 11 methods (identical to Game Mods):

Priority Method What's checked
1 variables.txt Panel-stored server variables
2 server.properties Version-related properties
3 version.json Mojang's version manifest
4 Fabric JAR Fabric server JAR filename
5 Forge JAR Forge server JAR filename
6 Forge libraries Library directory structure
7 Recursive search Scans 7 directories (depth 1-6). Skips: node_modules, cache, temp, logs, crash-reports, world dirs, mods, plugins. Max path: 250 chars
8 server.jar Generic server JAR analysis
9 Paper JAR PaperMC filename
10 Spigot JAR Spigot filename
11 Purpur JAR Purpur filename

Validation: Must start with 1., minor 0-50. Normalized to major.minor. 5 minutes cached.

Version-Agnostic Providers

GeyserMC and PaperMC/Hangar are version-agnostic — the MC version filter is hidden in the UI for these providers. No minecraftVersion parameter is sent to the API.


Step 4: First Launch

  1. Navigate to your server → click Plugin Browser in the sidebar
  2. The plugin detects game and version
  3. Provider tabs appear: SpigotMC, CurseForge, Modrinth, Hangar, GeyserMC
  4. Existing plugins in /plugins/ are scanned and registered as "Manual / Upload"
  5. Ready to browse and install!

Verification Checklist

Check Expected If failing
Plugin in Admin → Plugins "Minecraft Plugins" listed Wrong path or cache not cleared
"Plugin Browser" in sidebar Visible for servers with plugins feature Feature flag missing on Egg
Provider tabs SpigotMC, CurseForge, Modrinth, Hangar, GeyserMC JS/network error
Version detected "Detected: X.X.X" notification Server never started or no JAR
minecraft_installed_plugins table Exists in database Run php artisan migrate

Troubleshooting

Plugin not in Admin Panel

  • Ensure path is exactly plugins/minecraft-plugins/
  • Run php artisan cache:clear and reload
  • Check storage/logs/laravel.log for "Class not found" errors

"Plugin Browser" not in sidebar

  • Egg must have "plugins" in features
  • Save the Egg after editing
  • Clear config cache: php artisan config:clear

Version detection failed

  • Start the server once so JAR + version.json are generated
  • Rename custom JARs recognizably (server.jar, paper-1.21.4.jar)
  • Use manual dropdown as workaround

Database migration error

  • Grant CREATE TABLE: GRANT CREATE ON your_database.* TO 'user'@'localhost';
  • Run manually: php artisan migrate