Skip to content

Package Backed Plugins

ImperaZim edited this page Jul 7, 2026 · 5 revisions

Package-Backed Plugins

Package-backed plugins are generated PMMP plugin proxies for EasyLibrary packages by default. EasyLibrary also has an opt-in virtual-experimental loader for testing package-backed plugins without physical proxy folders.

Why Proxies Exist

PocketMine-MP resolves plugin identity from files under plugins/. Official packages live under plugin_data/EasyLibrary/packages, so EasyLibrary creates a minimal proxy under plugins/ when PMMP identity is needed.

plugins/.easylibrary-LibCommand.easylibplugin/
plugin_data/EasyLibrary/packages/libcommand/2.0.0/

PMMP scans direct children of the plugin directory and then asks registered loaders which paths they can load. A package stored only under plugin_data/ is not a discovery candidate, so a package-backed provider still needs a tiny direct proxy entry when it must behave like a real PMMP plugin.

Virtual Experimental Loader

For test servers, this config tries to register installed packages directly from plugin_data/EasyLibrary/packages:

package-manager:
  plugin-loader:
    enabled: true
    mode: virtual-experimental

This uses PMMP internals through Reflection. It is restart-only, refuses packages shadowed by standalone artifacts and falls back to the stable proxy loader when the current PMMP build is not compatible.

Latest OP-33 smoke coverage proved the experimental path on PMMP 5.43.1 before LibModule became the 17th official package:

  • 16/16 packages active from plugin_data/EasyLibrary/packages;
  • no active .easylibrary-* proxy folders required;
  • standalone shadow/switch behavior preserved;
  • update, remove and rollback remain restart-only and safe;
  • forced virtual incompatibility falls back to hidden proxy mounts.

Even with that smoke coverage, proxy remains the default mode. Use virtual-experimental on test servers until the final 3.0 release-candidate matrix decides whether it should be promoted.

What The Proxy Does

  • exposes the official plugin name to PMMP;
  • satisfies depend and softdepend;
  • loads package source from EasyLibrary data;
  • records metadata in .easylib-package-plugin.json;
  • reports through /easylibrary packages doctor.

Use this command when you want the architecture explanation in-game:

/easylibrary packages proxies explain

What The Proxy Is Not

  • not the real package source;
  • not a manual user plugin;
  • not a place to edit code;
  • not meant to be copied between servers without package metadata repair.

Standalone Shadow Rule

If a standalone plugin with the same official plugin name exists, standalone wins for that boot. The package is reported as shadowed or parked until the standalone artifact is removed and the server restarts.

Validate

/easylibrary packages doctor
/plugins
/version

When EasyLibraryPackageProbe is installed for development:

/elprobe libcommand
/elprobe run libcommand

Clone this wiki locally