Plugin vaults
Companions (VoodDocs, VoodTutorials, your plugin) register a dedicated folder tree so authors do not mix product assets.
Register a root
In your service provider:
PHP
use Voodflow\Vmedia\Support\Integration\RegistersPluginVault;
RegistersPluginVault::register(
source: 'acme',
slug: 'acme',
name: 'Acme',
);
RegistersPluginVault::ensureOnBoot($this->app, 'acme');
Or call Vmedia::registerPluginVault(...) / Vmedia::ensurePluginVault('acme').
Sync all roots: php artisan vmedia:ensure-plugin-roots.
Resolve upload targets
PHP
use Voodflow\Vmedia\Support\Integration\PluginVaultRootGroup;
use Voodflow\Vmedia\Support\Integration\PluginVaultLibraryGallery;
PluginVaultRootGroup::for('acme');
$album = PluginVaultLibraryGallery::album('acme'); // preferred upload album
Lock a picker to your vault
PHP
VmediaPicker::make('hero')
->images()
->attachToRecord(false)
->vaultGallery(fn (): int => (int) PluginVaultLibraryGallery::album('acme')->getKey());
Built-in roots from the ecosystem include vdocs and vtuts.