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_pluginstable) storage/andbootstrap/cache/writable (permissions0755, owner: web server user)
Step 1: Install the Plugin
- Download the latest
minecraft-pluginsplugin release - Place it in your Pelican Panel's
plugins/directory:/var/www/pelican/plugins/minecraft-plugins/ - Verify the directory structure:
plugins/minecraft-plugins/ ├── src/ ├── config/ ├── resources/ ├── database/ └── plugin.json - Clear the application cache:
php artisan cache:clear php artisan config:clear php artisan view:clear - 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.
- Go to Admin Panel → Eggs
- Edit your Minecraft server Egg (e.g., "Paper", "Spigot", "Purpur")
- Add
pluginsto the Features field:
If the Egg already has features:["plugins"]["eula", "java_version", "plugins"] - Click Save
Important: The feature flag must be exactly
plugins(lowercase).Plugins,PLUGINS, orpluginwill 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
- Navigate to your server → click Plugin Browser in the sidebar
- The plugin detects game and version
- Provider tabs appear: SpigotMC, CurseForge, Modrinth, Hangar, GeyserMC
- Existing plugins in
/plugins/are scanned and registered as "Manual / Upload" - 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:clearand reload - Check
storage/logs/laravel.logfor "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.jsonare 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