CloudLoader is a modular plugin loader for PocketMine-MP 5 that lets you organize plugins in a custom folder structure and load them automatically with dependency-aware ordering.
- Recursive module scanning inside a configurable directory
- Loads plugins from nested folders (groups/categories)
- Dependency-aware enable order:
dependsoftdependloadbefore(handled as an ordering constraint when both modules are present)
- Staging system (symlink/copy) to make PocketMine load modules correctly
- Configurable logging
/cloudloader reloadcommand
- PocketMine-MP 5.0+
- DevTools
- CloudLoader uses DevTools FolderPluginLoader to read plugin descriptions from plugin folders.
-
Install DevTools:
- Put
DevTools.pharinto your serverplugins/folder. - Start the server once and confirm DevTools is enabled.
- Put
-
Install CloudLoader:
- Put the CloudLoader folder into:
plugins/CloudLoader/ - Start the server once to generate the config.
- Put the CloudLoader folder into:
CloudLoader loads modules from:
plugin_data/CloudLoader/modules/
You can place plugins directly inside modules/ or group them into subfolders.
CloudLoader scans recursively, so both are valid.
plugin_data/CloudLoader/modules/
├── PurePerms/
│ ├── plugin.yml
│ └── src/
├── PureChat/
│ ├── plugin.yml
│ └── src/
└── EconomyAPI/
├── plugin.yml
└── src/
plugin_data/CloudLoader/modules/
├── ranks/
│ ├── PurePerms/
│ │ ├── plugin.yml
│ │ └── src/
│ └── PureChat/
│ ├── plugin.yml
│ └── src/
└── economy/
└── EconomyAPI/
├── plugin.yml
└── src/
Each module must be a plugin folder containing:
plugin.ymlsrc/
CloudLoader does not load .phar plugins.
Avoid duplicate name: values: if two modules have the same name in plugin.yml, one will be rejected as duplicate.
Config file path:
plugin_data/CloudLoader/config.yml
Example:
loader:
dir: modules
mode: delayed
staging:
cleanup: false
logs:
errors: true
scan: true
load_order: true
modules_loaded: true
skipped: true- Found a bug? Open an issue
- Pull requests welcome
- Star the repo if you like the project!