ExtendedDefaults v0.5 (Patreon)
Content
Hi! I've been a bit quiet on the messaging front the past week, but I finally have something new to release. This is still very much a work in progress - but getting early feedback is also a good reason to share it. It's also an opportunity for you to have an impact on the plugin's features. There are many directions the plugin could take in the future!
Features in v0.5
Automatically load person atom with user defaults
When a person atom is added, it is loaded with the user defaults preset on each of the following preset types: Appearance Preset, Pose Preset and Plugin Preset. Normally in VAM, the person atom loads with everything at defaults even if you have user defaults saved, this plugin overrides that behavior.
Simply save a preset with the "Change User Defaults..." button in any of the above Presets tabs, and the next time you add a person atom it will auto-apply the saved preset.
With other atom types, it seems VAM already uses the user defaults preset when a new atom is added.
Better "Add Plugin" behavior
Normally when you click on Add Plugin in the Plugins tab, it just adds an empty plugin to the bottom of the list and you have to separately click on "Select File...". ExtendedDefaults streamlines this by triggering the "Select File..." click automatically.
Save, load and auto-apply plugin user defaults
When ExtendedDefaults is loaded, it modifies all Plugins tabs:
How it works:
- When you add a plugin that you have saved defaults for, the saved configuration is auto-applied, overriding the plugin's normal default values.
- The Reset button works exactly like the normal Reload button - I just renamed it to "Reset" to indicate that it's specifically for resetting the plugin back to the plugin's original default state rather than to your user defaults.
- The Load Defaults button loads your user defaults - it doesn't reload the plugin, it simply applies the configuration. To reload and apply defaults, click Reset and then Load Defaults.
- The Save Defaults button saves a configuration for the specific plugin as identified by the path to the plugin .cs or .cslist file.
The saved configuration contains whatever settings the plugin stores normally in a Plugin Preset or with the scene file. This configuration is stored in Custom/PluginData/everlaster/ExtendedDefaults/defaults.json.
Regarding the removed buttons - the Clear button was just redundant, and Select File... is also not needed. With ExtendedDefaults, there's no way to have just an empty plugin element that doesn't have any script running in it. And with the improved Add Plugin behavior, Select File is triggered automatically so the button is not very useful. You can always just do Remove and then Add Plugin if you want to replace the plugin with another.
Upcoming features
The plugin UI is currently empty. I plan to add at least some configuration options and information later, but for the most part though, it's meant to be an "add once and forget" type of plugin which is saved to the Session Plugins user default preset so it gets auto-loaded when you start VAM.
Plugin version independent defaults
In this first version, the saved plugin defaults are used only by the specific versions of each plugin, e.g. if you save a configuration for a TittyMagic.cslist loaded from the package everlaster.TittyMagic.57.var, it won't be used by other TittyMagic versions. However it would make sense to be able to auto-apply settings from the closest version that has a defaults configuration saved. This could be configurable.
In addition to the above, upgrading a loaded plugin to its newest version automatically while preserving all of the plugin's parameters would be a pretty cool feature. This could be done with a button click, when the scene is loaded, or when a plugin preset is loaded.
Additional atom default parameters
Many atom types don't include all parameters in the preset for some reason. E.g. many of the parameters in Physics Object, Physics Control and Move tabs are not saved with the preset. It would be possible to add configuration options for these in the ExtendedDefaults UI.
For example, I would prefer InvisibleLight atoms saved as spotlights to always automatically point down and have the Z rotation axis locked, but these parameters are not saved in the preset. Similarly for furniture/environment/prop etc. type atoms, the Z and X rotation axes should be lock by default.
Misc
- A text notification to the Plugins tab when plugin defaults are successfully loaded and saved
- Add functionality to clear user defaults from a plugin (specific package version or all versions) to clean up the configuration file and ensure the plugin definitely gets loaded with its original defaults
Other settings/functions
These are more like sketches of ideas at this point, but I figured I might as well share them.
- Save/load ExtendedDefaults profile - to enable sharing of preferences profiles or for switching between different profiles for different purposes (e.g. one profile for creating scenes, another for consuming scenes).
- Since the current Save Defaults just saves one preset that gets auto-loaded and there's no switching between presets, it might be useful to implement a full on preset management UI for plugin specific presets, similar to how other preset types work.
- Toggle to auto-apply futa conversion when a male skin is loaded on a person atom.
- Auto-apply good defaults for teeth materials, mouth materials, tongue materials etc. in cases where those parameters are unmodified - this would apply even when loading from JSON or when applying an appearance preset or skin preset, not just when adding a person atom. Example: when loading a scene made by someone else, if everything in the person's Mouth Materials tab is using VAM default values, apply mouth materials values from your own appearance preset or skin preset.
- Always spawn new atom directly in front of the display camera (and in the case of Person atoms, maybe auto-rotate the person to face the display camera). Also, could be configurable per atom type.
- It would be possible to allow the user to create a configuration for any storable parameter of any thing in VAM that gets auto-loaded when that thing is added... this needs a bit more research though. A lot of these parameters are already included in the user defaults presets.
In addition to from the above, there might be other features that I haven't thought of could be within this plugin's scope. It could be something that happens when a scene is loaded, or something common to all atoms when any atom is added, or some modification on a specific atom type etc.
If there's some such default value or behavior you'd like to have, let me know! It could make it into the plugin. Any feedback is greatly appreciated. Thanks :)
-everlaster