Home Creators Posts Import Register Favorites Logout
haven't archived this post yet. have a subscription? use the importer!

Content

This project started small, and then exploded. What initially seemed like a quick and easy plugin turned out to be technically very challenging and complex to implement. The first part of that sentence is why I accepted to do this, the second part is why it took an entire week - but it was fun and educational.

 The original idea was to enable scene creators to configure a start/landing scene for ensuring their users have all of the dependencies required for the actual scene installed. However in the completed plugin, there are many user focused features as well that may come in handy especially when used as a session plugin.

This will be a paid plugin for only a short while, around 2 weeks. It will be released on Hub with a CC BY license to allow scene creators to use it for free in paid and free projects.

Features

  • Identify and download the dependencies of any package by scanning its meta.json file

  • Scan only direct dependencies or also optional sub-dependencies

  • Packages that are missing and potentially downloadable via the Hub will be pending download, additionally existing packages with "latest" requirement can be checked for updates

  • Downloading works reliably and with support for viewing overall progress, and for stopping the download

  • At each step, the info text field updates to show the status of packages - which ones are missing, downloaded, pending download, etc.

  • Identify which dependencies are disabled (which you can do via Package Manager, for those who didn't know); note that this can cause a delay and eat up a bunch of RAM if you have a lot of packages

  • Auto-download when pending download, auto-accept plugins from downloaded packages

  • Acidbubbles.Keybindings support:

    • AutoGetDependencies.SelectMetaJson

    • AutoGetDependencies.ScanLoadedSceneMetaJson

    • AutoGetDependencies.DownloadMissing

    • AutoGetDependencies.StopDownload

    • AutoGetDependencies.OpenUI

Features For Scene Creators

I'll add information about how to integrate the plugin to scene logic to the Hub post when releasing the free version. It's complicated but powerful, so there will be one or more demo scenes and some flow charts. For now, in a nutshell:

  • Comprehensive custom triggers for integrating the plugin to scene logic, enabling creators to provide a customized start scene for their releases which ensures dependencies are installed before continuing; see plugin UI for details on the trigger types

  • For each custom trigger, a UIText can be selected in the scene to send text to (e.g. list of 'not on Hub' dependencies)

  • Copy custom trigger UIText contents to clipboard via triggerable action

  • Custom trigger if VAM is not the in latest version

  • Auto-enable Hub in order for download to proceed, for ensuring a seamless download for any user who happens to have Hub disabled

  • Select UISlider from scene to display download progress

Credit: MacGruber Utils (CC BY)

Have fun with it!

-everlaster

Files

Previews only

Comments

daedalusTX

Not sure if this use case is in-line with your plans for this plugin, but just in case... would it be possible to have the plugin search a folder on the local system before checking on the Hub? I'm thinking for those of us with years-worth of bloated AddonPackages folders. Even using a Manager there could be VARs that just never get used that are taking up resources. If we could copy the VARs to a standby folder that isn't automatically scanned in by VirtaMate we could have a plugin grab what is needed from it only as it's needed. It could potentially grab non-Hub-hosted VARs that way too. If this is outside of your plans then no worries. Thanks!

everlaster

The problem is that plugins can't write to AddonPackages directly, you'd have to set up a symlink between AddonPackages and a folder in a location that plugins can write to freely, such as Custom/PluginData/. That's quite possible though, e.g. my VarLicenseFilter plugin depends on a symlink setup. It's an interesting suggestion. I don't know when I will develop additional features to this plugin, but I'll put it in my notes :)

MaxMuscle

This has been needed forever! Thank you for taking on this crusade. I am not sure what is planned for in the VAM 2 release for this issue, but I feel it has been a black eye on the application forever. Thank you for your dedication to make th experience better for all.