Clothing Plugin Manager

Plugins Clothing Plugin Manager

Stopper

Invaluable member
Featured Contributor
Messages
359
Reactions
4,541
Points
123
Stopper submitted a new resource:

Clothing Plugin Manager - Setup, teardown, and UI for clothing plugins

A helper plugin that smooths out the rough edges with Clothing Plugins. Does a couple of useful things
  • Sets up references to prevent startup errors
  • Sets up a 'destructor' to clean up on forced reload
  • Adds a "Plugins" UI tab to the clothing customization screen

What is a "Clothing Plugin"?
It turns out that you can trick VAM into loading plugins when an item of clothing is loaded. These plugins don't go into the default Atom plugin UIs...

Read more about this resource...
 
Stopper updated Clothing Plugin Manager with a new update entry:

Various fixes

  • Some fixes to startup logic. Plugin tab should ideally now always show up correctly.
    • Let me know if it doesn't! ?
  • Reloading the plugin will not result in duplicate plugin tabs.
  • The ClothingPluginManager plugin itself might not be visible in the Plugin tab under some conditions (like after force-reload). This doesn't prevent it from functioning properly and is purely visual.

Read the rest of this update entry...
 
Stopper updated Clothing Plugin Manager with a new update entry:

Added Presets. Various Fixes

  • Added saving and loading of presets.
    • Presets contain a list of plugins as well as all plugin parameters.
      • You no longer need to add individual plugins to the .vaj file if you have a default preset.
    • The "default" preset will be loaded with the clothing item.
    • The precedence should go Manually Loaded Preset > Saved Scene Settings > Default Preset
  • Fixed issue where the ClothingPluginManager wasn't visible in the list.
  • Fixed issue where...

Read the rest of this update entry...
 
Stopper updated Clothing Plugin Manager with a new update entry:

Hair Plugin support

  • Can now be used for hair
    • Setup for hair similar, with a few differences:
      • The storable id is always "CustomScalp", not the hair's name
      • If you don't use a custom scalp, it will give you an error when you first load it.
        • It'll still work, just throws an error. Doesn't look fixable without VAM changes.
      • References don't get corrupted when publishing the var, so nothing special to be done there.
    • Guide and some initial plugins...

Read the rest of this update entry...
 
Stopper updated Clothing Plugin Manager with a new update entry:

Preset Improvements

This change attempts to make preset/save handling more complete and intuitive. This has been only partially supported (or just completely broken) in the past, so it might not be fully compatible with previous items. I'm hoping that this is the last overhaul of this functionality and it should be stable from now on.

As always, your feedback is invaluable in my development so please let me know how it works for you! ❤️

The sources of plugin settings in increasing order of precedence are as...

Read the rest of this update entry...
 
I've made a utility to help people initialize and fix up clothing plugins on their items:


Had to make it or I'd go crazy working on my Piercings package (~200 items), and I'm here to report bugs I've encountered :)

1.

The MAIN one is that storables don't get re-applied when loading a scene or a preset. So if someone edits offset/scale/color of my piercings, save their appearance or a scene, and then load it later, they'll see all default values, which is prettyo brokeno :(

Actually, they do get applied when you load the clothing preset with customization for the 2nd time, which might be a clue to fixing it. I've tried taking a stab at it myself, but failed miserably (couldn't even localize ClothingPluginsManager without breaking everything and my VaM crashing to desktop), so you're my only hope, Stopper 🙏.

2.

CPM doesn't try to resolve local paths. For example, I'm using my own version of your CUA Clothing (I'm gonna write about it in its thread later), so it's a local plugin. It also loads local assetbundle. If I'd package it like this, loading both plugin and assetbundle would not work, because storables contain local paths and CPM is not scoping them to the package.

I've worked around it by adding path de-localization to my utility app linked above. It walks all storables and checks if there are paths to `Custom/*` of `SELF:/Custom/*`, and namespaces them to the package being built, so in my case `qdaro.Piercings.latest:/Custom/*`.

Dunno if this should stay in my util, or be handled by CPM, but it's an issue.

3.

When activating a clothing item that has a plugin that hasn't been loaded before, the permission prompt disrupts the initialization process, and the plugin never loads, even after allowing it. You have to deactivate the item, press the "Clear Inactive Objects" button, re-activate the item, and then it works fine.

This is a problem when loading some scene that depends on clothing items with plugins in them. If the clothing items have been installed to satisfy the scene dependencies, and than user loads the scene, none of the items will load, and they'll never know why or what's wrong.
 
Last edited:
Through a bit of testing I've found some compatibility issues between this plugin and others such as Timeline & EmissiveClothingPlus. Nothing major for most people, but it can break some functionality of those plugins if the Person Atom wears clothing managed by this plugin while also having those plugins.

I wrote about it in a forum thread here

Don't know how fixable it would be since it's interactions with other plugins, but I figured I should let you know anyways. Despite this I still love the plugin though! Best and easiest solution to avoid deforming clothes due to morphs.
 
Back
Top Bottom