Removed the plugins list grey background to improve the contrast between plugins:
Fixes:
Other:
- Fixed issue where Better Close Isolate Edit Mode did not reliably work on newly added atoms
- Fixed a bug in the Add Recent dropdown of a Person atom's plugins tab where it was not possible to remove items that were added recently to non-Person atoms
- Fixed issue where reloading UXPlus would load an old preferences json file (the plugin is recreated on reload, and the new instance loaded the json before the old instance had saved it)
- Fixed plugin panel layout breaking in case of an error during VAM's add plugin operation (whatever causes a red plugin panel)
- Adapted the codebase to use a custom common library (https://www.patreon.com/posts/development-115537585)
- introduces two Keybindings actions: UXPlus.ToggleEnabled and UXPlus.OpenUI
- v1.3.1: Fixed ability to add plugins from the recent and favorites dropdowns which broke in yesterday's release
- v1.3.2: Fixed issue where the hair and clothing tab UI elements would shrink when removing/adding the person atom (whether manually or when a scene is unloaded and loaded)
New module: Misc. UI Tweaks
This module groups together two previous modules (New folder button in file browser, Scenes per page) and introduces some new ones. The new ones:
Confirm Reset To Default
Never accidentally reset your settings - this button in VaM user preferences opens a confirmation dialog.
List Bone Morphs
The tooltip for the red cog symbol which shows "Has bone morphs" when you hover over it will now also list exactly what the bone morphs are: what bones are affected and how. This can be useful to determine what parts of the skeleton a morph affects, and make it easier to spot e.g. expression morphs that have bone morphs for regions other than the head.
Better Close Isolate Edit Mode
Clicking this button again will toggle the isolate edit mode off.
Hair/Clothing Active Filter
Brings back the active filter for Hair and Clothing tabs from earlier VaM versions.
VaM versions compatibility
I investigated the compatibility of UXPlus and its different modules with older versions of VaM. The plugin overall is now compatible with VaM 1.20, but some modules will only work in newer versions:
- Right Click Menu
- Copy Trigger Action requires VaM v1.22 (latest)
- Alternate Plugins List:
- modifying plugin index numbers (plugin#1 etc) on atoms requires VaM v1.21 or newer
- downloading updates to favorited plugins requires VaM v1.20.77.13 or newer
- loading plugin’s pre-reload settings requires VaM v1.20.77.13 or newer
- Misc UI Tweaks
- Confirm Reset To Default requires VaM v1.20.77.13 or newer
- List Bone Morphs requires VaM v1.22 (latest)
- Hair/Clothing Active FIlter requires VaM v1.22 (latest)
A small update that introduces one new module:
In addition, two small fixes
- Fixed error when right clicking on a UI element before any atom UI had been opened (Right Click Menu)
- The plugin no longer disables a module if an error occurs in the module (to prevent it from staying disabled after a reload given that UXPlus stores the plugin data to a preferences file)
- fixed bug in the plugins list Reorder function where incorrect plugin ids were assigned to triggers in the scene targeting the plugins when multiple plugin# numbers were updated in one go, causing the reordering to break triggers
- fixed error when right clicking some local custom morph sliders - RightClickMenu should now reliably identify the triggerable parameter
- the "pluginLabel" triggerable string parameter is now identified by RightClickMenu when right clicking on the label input field in the plugins list
- logging improvements (always print full stack trace when an error is caught)
This update introduces script presets for saving, loading and setting user defaults for individual scripts. The Alternate Plugins List module of UXPlus is now finalized and UXPlus is out of beta! ?
Script Presets
Script presets are like plugin presets, but individual to each script storable. Most plugins have only one script (sometimes called a module), while some have multiple scripts (e.g. Naturalis has TittyMagic, BootyMagic etc.).
With script presets, you can now save and load presets and set user defaults for any script, without each plugin having to have separately implemented their own saving and loading functions, and without having to mess around with Plugin Presets which are inherently designed for collections of plugins rather than individual plugins or scripts.
The new functions are listed in a new Actions menu that opens up to the side of the plugins tab:
The other two options are moved from the Restore menu which is gone from the plugin button row:
- Save preset file: Opens a file browser to save a new preset file. Presets are stored in Saves/PluginData/ScriptPresets/Script_Name/
- Load preset file: Opens a file browser to load an existing preset file.
- Set current as user defaults: Stores the current plugin parameters to file UserDefaults.json.
- Load user defaults: Loads UserDefaults.json if it exists.
- Clear user defaults: Deletes UserDefaults.json if it exists. It asks for confirmation.
Going into more detail:
- Load plugin defaults: Restores the script from an empty JSON which sets all of its storable parameters to default values
- Load pre-reload settings: Restores the script's parameters from before it was reloaded
If the user defaults file exists, it's automatically loaded when you add the plugin via Add Plugin, Add Recent or Favorites. Other means of adding a plugin (such as when plugins programmatically add them) do not trigger the default preset to load.
The same user defaults file is loaded regardless of which atom type you add the plugin to, and regardless of which var package the plugin is from. Plugin authors need to ensure newer versions of their plugins are backwards compatible anyway, so loading presets saved with parameters of earlier versions should work in the newer versions as well. However: it may not work correctly the other way around! If you save a user default preset with a plugin from package version 2, and then add the plugin from package version 1, UXPlus will try to automatically load the user defaults that were saved with the newer version's parameters. This could result in some unexpected behavior.
It's a good idea to type something into the plugin label field before saving a preset. The label is restored when you load the preset, so if you're descriptive with the labels, you'll know based on the label which preset you've loaded. UXPlus does not enforce the preset filename to be the same as the label, think of the label more as a description. However, when setting current as user defaults, if the label is empty it will automatically be set to "UserDefaults".
In the configuration UI of Alternate Plugins List, there are two additional options, both enabled by default:
Other
- The selected option in the right click menu is now highlighted just with the usual button color change rather than bold text
- UXPlus source files are now merged into one .cs file in the var package (which is then loaded via UXPlus.cslist)
Alternate Plugins List: Auto-download latest versions of Hub hosted favorited plugins
The latest versions of Hub-hosted favorited plugins are now automatically downloaded when UXPlus starts up (i.e. at VAM start if it's in the user default session plugins preset). The configuration UI for Alternate Plugins List has these options:
You can enable the Download Latest When Favorited to also check for and download the latest version when you favorite a plugin. Note that if the latest version downloads after you toggle the favorite on, the plugins list doesn't automatically update to show that there is an Update available to the plugin. You need to navigate away from and back to the plugins tab, it should show the "Update..." button as clickable then.
Fixes & Other
- Fixed issue where the Alternate Plugins List's data about favorites and recent plugins was purged if you reloaded or removed UXPlus when the Alternate Plugins List module (or UXPlus itself) hadn't been enabled on startup
- Fixed bug where a plugin was not reliably recognized as favorite if it was loaded at latest installed package version
- Fixed issue where a plugin that loads with a compile error (red panel) couldn't be reloaded (not really an end user issue, more an issue for plugin developers)
- Moved the PreviewCamHelper toggles from the configuration window to the "main card", replacing the Enabled toggle. The module gets disabled if both "Pause Auto Blink" and "Pause Auto Expressions" toggles are disabled.
Alternate Plugins List: New Features
Recent Plugins
Plugins that you have added via the Add Plugin file browser or the Add Recent or Favorites menus accumulate into the Add Recent menu, sorted by most recently added:
This list contains the exact versions that were added. You can remove an option by clicking on the "x" in the corner.
Note
The recent plugins are separate for session plugins, scene plugins, person plugins and other atom plugins. However, recent non-person atom plugins will also show up on the person atom.
Updating Plugins
If there is a newer version of the plugin installed, the "Update..." button opens a dropdown that shows the var package version that you can update to. If the current version is the latest version, the button is greyed out.
Updating preserves the current plugin parameters! As long as the plugin implements saving and loading its parameters with the scene correctly, nothing should break when updating.
The plugin# number should stay the same as well, and any triggers that were targeting the old version should still work. However, the plugin is loaded at the end of the list, which you can fix by Reordering the plugins list.
Plugins not loaded from var package just show N/A.
Fixes & other
- Fixed a bug that caused plugin panels to be permanently invisible if a filter was active when exiting the plugins list UI. Now the filter is always cleared when exiting.
- Fixed an error that occurred when filtering a plugins list containing plugins not loaded from a package.
- Fixed reordering when a plugin has multiple scripts (e.g. Naturalis has two scripts, TittyMagic and BootyMagic) - only the first script's parameters were restored and the rest reverted back to default values. The parameters of all scripts are now correctly restored.
- Fixed issue where the bottom half of the Select.., Reload etc. buttons was not clickable due to an overlapping element.
- Layout and styling improvements (button spacing/sizes, font sizes, dropdown highlighted option colors etc.)
- UXPlus's own plugin parameters are now saved and loaded to/from a configuration file, overriding the plugin's parameters in the session plugin preset.
Alternate Plugins List improvements
- The plugins list UI design is finalized
- Added Favorites feature
- Greatly reduces the number of clicks needed to add an often needed plugin
- You can easily make any plugin a favorite with the Fav checkbox, and it'll show up in the Favorites menu
- Favorites also keep up to date as you install new plugin versions
- Restore plugin defaults without reloading
- Reordering plugins and changing their plugin # numbers is now possible in the Reorder window!
- The main post is updated: https://hub.virtamate.com/resources/uxplus.44333/
New module: Scenes Per Page
New Module: Alternate Plugins List
This module improves every plugins tab UI (Session Plugins, Scene Plugins and Plugins on atoms). Example:
Features
The filtering is based on "contains input string" checks to any of these highlighted parts:
- Compact layout which fits more plugins in the window
- Filter the plugins list with keywords!
- Restore pre-reload feature:
- "Reload" stores the plugin's parameters in memory before triggering the actual plugin reload, and "Restore pre-reload" allows you to restore those parameters at any time after reloading - reloading will no longer be a headache with plugins where a lot of parameters have been modified!
- Add Plugin button automatically opens the plugin file browser instead of just creating a new blank plugin that you need to scroll to
- This can be toggled off in the plugin UI
- Thicker scroll bar handle
This allows you to search with any of author name, package name and version, file path, script name, and plugin index number or identifier.
Note: the empty button on the right of the plugin panel is a placeholder for an upcoming feature.
Fixes
- fixed issue where the Enabled checkbox of a module didn't save
- fixed check for duplicate UXPlus instance