Skip to content

v0.9.8

Pre-release
Pre-release
Compare
Choose a tag to compare
@Piranha91 Piranha91 released this 10 Mar 09:28
· 500 commits to master since this release

For config files, see v0.9.5

The Synthesis Release: Patcher is now runnable via Synthesis (requires Synthesis version 0.25.2 or higher)

"No Valid Asset Packs" is not a patcher error - it's just the patcher telling you that you don't have a config file that covers that specific NPC.

Headpart distribution does not work well for NPCs with custom sculpts.

  • More details: When an NPC receives custom head parts and the player enters their cell, leaves, and re-enters, the NPC loses its custom face sculpts are lost. Most modern NPC overhauls such as Bijin, Pandorable, etc. have custom sculpts, and those faces will be changed to reflect the ones defined in their plugin (which usually look terrible). From my testing, this is exactly what happens with the original EBD SSE mod. I will try to find a fix, but from my initial searching this seems to be an engine-level behavior that I don't have the know-how to deal with. I recommend adding any NPC appearance changing mods to the blocked plugin list for Head Parts (assets, height, body shape don't need to be blocked).
  • Note that some Asset Config Files such as Tempered Skins come with replacers for head parts, so to make sure custom sculpted NPC don't get headparts you'd need to add their plugins to the block list, or disable headpart distribution in the main menu AND disable "Allow config files to change NPC head parts" from the Textures and Meshes menu.*

A huge thanks to leonardovcr for extensive QA testing over the past month!

Change Log (v0.9.8)

  • Optimized UI to decrease loading time
  • Note: the UI looks exactly the same but virtually all of the wiring has changed under the hood. If something doesn't work the way it's supposed to anymore, please open an issue. Thanks!

Change Log (v0.9.7.3)

  • Fixed Body Shape Descriptors getting duplicated when installing an asset config file
  • Fixed potential crash when deleting a config file along with its assets
  • Added scrollviewer to specific NPC assignment UI
  • Some minor optimizations to UI performance - this is not yet the planned major UI performance overhaul.

Change Log (v0.9.7.2)

  • Fixed potential crash on BodySlide Exchange Import

Change Log (v0.9.7.1)

  • Crash fix and infinite loop fix for asset + bodyshape selector (thanks Gawdzilla for the report).
  • Added startup logging to [LogFolder]\StartupLog.txt
  • Improvements to config installer handling of long file paths.
  • Made Eval-Expression expired license instructions more descriptive.
  • Minor backend improvements.

Change Log (v0.9.7)

  • Fixed asset distributor not checking if already assigned subgroups comply with incoming required/excluded subgroup rules, potentially causing texture mismatch (big thanks again to leonardovcr for catching this).
  • Fixed body shape descriptor header not updating (or refreshing annotation status) when descriptors are checked/unchecked.
  • Fixed destination/custom attribute path parser failing to parse an existing record path in some cases.
  • Fixed bodyslides getting re-imported as new on SynthEBD reload if they were renamed in the previous session.
  • Added option in main menu to disable pre-run patcher validation (highly recommended to only use this if you're developing config files, and even then only if you don't want to download a large texture archive). This removes all of the guard rails that SynthEBD has to prevent in-game issues.
  • Minor UI fixes.

Change Log (v0.9.6.5)

  • Simplified mix-in consistency recording code and plugged potential null ref crash
  • Updated several NuGet packages.

Change Log (v0.9.6.4)

  • Fixed BS Exchange not exporting attribute and race groups that are only referenced by descriptors rather than individual bodyslides

Change Log (v0.9.6.3)

  • Fixed import of body shape descriptor rules in BodySlide Exchange
  • Fixed UI:Data synchronization for Subgroup Notes field.

Change Log (v0.9.6.2)

  • Improved handling of cloned bodyslides during import (thanks again leonardo)
  • Fixed import of dependency race groupings during bodyslide import
  • Fixed subgroup validator not respecting the explicit BSA files enabled in 0.9.6.1 (thanks Tsukino)

Change Log (v0.9.6.1)

  • Fixed Descriptor and Attribute Group not importing during BodySlide annotation import.
  • Enabled Asset Packs to search for assets within BSA files (select the corresponding plugin files in the Asset Pack's Misc Menu).
  • Fixed Notes field not being included when cloning a Subgroup.
  • AutoBody ini vs. json mode is hidden unless BodySlide distribution is set to AutoBody mode.
  • Fixed deleted BodyGen configs not staying deleted.

Change Log (v0.9.6)

  • Fixed aliased races not receiving SynthEBD actor effects if they're not also added to the main Patchabled Races list.
  • Fixed whole config distribution rules superceding specific asset pack assignments
  • Typo fix in asset misc menu

Change Log (v0.9.5)

  • Added new version of face texture updater script. Selectable in the Tex/Mesh menu. Default setting is to use the original EBD script, and there's no reason to switch to the new one unless you're having issues. The new script can respond to mod-added Papyrus events (addable via UI) and is intended to re-apply face textures if a mod resets them to the facegen default. Treat this feature as experimental until validated.

Change Log (v0.9.4.5)

  • Fixed bug introduced in 0.9.4.3 where Linked NPC Groups failed to save
  • More detailed post-patching logging.

Change Log (v0.9.4.4)

  • Specific NPC Assignment UI discards assignments on loading if an NPC for that assignment hasn't been selected.

Change Log (v0.9.4.3)

  • Added buttons in Specific NPC Assignment UI to sync current assignment / all assignments' asset ordering to the main order in the TexMesh menu.

Change Log (v0.9.4.2)

  • Added Specific NPC Assignment control of assignment asset ordering.
  • Added button in Asset Pack Misc Menu (for Mix-Ins only) to assign the given mix-in to all Specific NPC Assignments
  • Fixed potential crash when saving Asset config file without assigning a BodyGen config to it.
  • Added SynthEBD version to the nav panel.

Change Log (v0.9.4.1)

  • Improved patcher handling of Specific NPC Mix-In Assignments.
  • Added option in Specific NPC Assignment UI to decline a specific Mix-In config.
  • Specific NPC Assignment UI only shows Subgroup and Replacer options if a forced asset pack is chosen in the dropdown (and if it is active in the plugin list).
  • Small improvements to verbose log.

Change Log (v0.9.4)

  • Fixed bug in matching multiple body shape descriptor rules (another huge thanks to leonardovcr for noticing it).
  • In relation to the above, each set of body shape descriptor rules now comes with a matching mode to determine which category is matched. Defaults are All Categories for Allowed Descriptors, and Any Category for Disallowed Descriptors.
  • Small overhaul to asset matching code. Mainly to improve readability, but should also take care of some potential null reference crashes.
  • Integrated BodyGen option into headpart assignment (similar to the OBody integration).
  • Fixed headpart selector only evaluating per-headpart bodyslide descriptors and ignoring per-headpart-type bodyslide descriptors.
  • Added scroll bar to config installer window.
  • Small UI tweaks.
  • Updated High Poly Vanilla Hair configs to distribute with 100% probability instead of 1%.

Change Log (v0.9.3.2)

  • Added more details to crash logging.

Change Log (v0.9.3.1)

  • Bodyslides with duplicate labels get automatically renamed on startup.

Change Log (v0.9.3)

  • Added import/export functionality for BodySlide settings
  • Actually fixed asset order loading
  • Added null check for FacePart Compliance checker (to fix a reported bug) and additional places where it may be needed
  • Added safeguard when trying to access NPC name
  • Additional improvements to verbose logging
  • Added UI toggle to enable/disable Asset Replacers from config files
  • Detached BodySlide names from their labels to assist with duplicate body slide rules tracking

Change Log (v0.9.2)

  • Added ability for individual asset downloads to assign their own path prefixes
  • Fixed body shape selector ignoring descriptor rules from Primary config files (bug introduced in 0.9.1)
  • Fixed OR logic for attribute groups
  • Patcher now respects the block list for headparts
  • Added validation for blank attributes
  • Added bulk deletion options for bodyslides
  • Added option to delete relevant asset files when deleting a config file
  • Added scrollviewer to race grouping editor
  • Fixed asset order not saving after restart
  • Made NPC verbose log filenames "filename-safe"
  • Added more details to verbose logs
  • Fixed progress bar to sync with actual patcher progress
  • Config Installer now only renames file paths that exceed the file path limit, instead of renaming all files, to preserve the structure of the original archive as much as possible.
  • Fixed crash if consistency is enabled and a mix-in is declined
  • Fixed Head Part Menu -> Misc -> conflict winner dropdown setting all head part types instead of just itself.
  • Fixed asset pack deletion (file previously wasn't getting deleted if the delete button was pressed after saving, if SynthEBD wasn't restarted first)
  • Head parts created by config files are no longer assigned to NPC if they have the "Is Extra Part" flag.
  • Record intellisense no longer appends [*] to paths ending in GenderedItems
  • Updated High Poly Vanilla Hair configs to 0.9 standard.

Change Log (v0.9.1.3)

  • Switched from 7za.exe to 7z.exe to support .rar and other archive types
  • If asset files reference allowed races/grouping (members) that don't exist in a user's Patchable Races list, use is prompted to add them during installation.
  • Fixed config packager not importing download info for pre-v0.8.3 config files
  • Small UI changes to config packager.

Change Log (v0.9.1.2)

  • None (fixing git sync)

Change Log (v0.9.1.1)

  • Probability assignment in whole-config distribution rules is now a "probability of being assigned" when the config is a mix-in.
  • Fixed default Nord race grouping.

Change Log (v0.9.1)

  • Added UI element in Textures menu to enable sorting of MixIn asset packs before or after primary asset packs via drag and drop.
  • Selected Asset Configs text preview is now correctly synced to the selected asset configs
  • Fixed ownership of subgroup attributes when copying or dragging
  • Attempted to fix a couple user-reported crashes that I couldn't reproduce.

Change Log (v0.9.0.2)

  • Fixed General Settings Menu UI not stretching to full screen width
  • Fixed Face Texture attributes not being loaded correctly in UI
  • Overhauled the "Auto-Set Destinations" functionality for asset config files. It still probably won't be perfect, but should do better than before.
  • Fixed manual Destination dropdown menu to assign the new .RawPath extension

Change Log (v0.9.0.1)

  • Restored patcher's ability to validate asset Source Paths from BSA files.

Change Log (v0.9.0)

  • Patcher is now runnable either as a standalone .exe, or from Synthesis (import via URL from the repository). Some environment settings in the main menu will be hidden in Synthesis mode because they're controlled by your Synthesis settings.
  • Patcher has undergone a complete internal overhaul, mostly to make it compatible with Synthesis but also to improve maintainability. I've tried to make sure all the wiring has been re-wired correctly, but if you find any new crashes please let me know.
  • If you had a custom Game Data Folder or Portable Settings Folder set up, you may need to point SynthEBD to them again (due to restructuring for Synthesis integration).
  • Destination texture paths all now end in ".RawPath". This is due to upgrading to the newest Mutagen API (for Synthesis compatibility), which changed the structure of texture records. The patcher should be able to auto-update any config files you already have installed or are newly installing, but I recommend hitting the validate button to check.
  • When validating config files, validation now fails if a texture's Destination path can't be resolved (disregarded for Asset Replacers since those don't always have a matching template NPC in the load order).
  • Under the hood fix: Destination paths can now have arrays of non-record objects. Previously this would silently fail to set. This was not a common use case and was not discovered until recently.
  • Added default RaceGroupings suggested by leonardovcr that cover all pairs of vanilla + vampire races. Note that if you have already installed SynthEBD and a generalsettings.json file exists, it will not be auto-updated. You can open the json in a text editor and delete that section entirely to regenerate it if you need it.
  • Asset and BodyGen config files now ship with their own Race Groupings (inherited from the author's General Settings Race Groupings), ensuring that if an author uses custom groupings the end user will have them as well. Similar to Attribute Groups, Race Groupings of the same name can be overridden by those in the General Settings menu.
  • Improvements to circular reference detection in the Attribute Group creation menu
  • Fixed the "Height" and "HeadParts" checkboxes being linked in the Race Alias UI
  • Added toggle in the General Settings menu to exclude NPCs with custom faces from receiving headparts (visible if the HeadPart distribution checkbox is checked). This is to help with the issue described at the top. Note that this filter is not perfect - it checks if an NPC is modded, and if so if the modded plugin has a different face morph than the base plugin - it does not actually check if the NPC has a custom sculpt. This filter also slows down patching by ~1/3. Default on; up to you if you want to use it. I'm open to suggestions for how to improve the filter; unfortunately checking if the NPC has a custom sculpt directly would be very computationally expensive and not feasible).
  • Added toggle in the Texture/Mesh menu for caching generated records. I suggest leaving this enabled as it significantly speeds up patching time (this has always been a SynthEBD behavior; I just provided the option to turn it off). If you run into any issues with NPCs whose Consistency says they were assigned texture X, but SSEedit shows they were actually assigned texture Y, consider doing a run with cacheing disabled to troubleshoot.
  • Added toggle in the Texture/Mesh menu to make the Config Editor occupy the full window.
  • Added a "List Distribution Rules" button in the Config Editor so a user can quickly see a breakdown of a config author's custom assignment rules without having to click through the entire asset tree and look at subgroups one-by-one.
  • Added a button in the status log tab to open the patcher's Logs folder
  • If distributing textures, patcher now gives a breakdown of statistics at the end of the run (e.g. which NPCs of which gender/race were assigned).
  • Disabled "No valid asset pack" messages for NPCs who couldn't get any asset packs because none were installed for their gender.
  • Other minor internal tweaks.
  • Updated my own config files to comply with the new .RawPath requirement
  • Updated my Mature Skin configs to have more easily understandable assignment restrictions (primarily moved to the whole-Config Distribution Rules section).
  • Updated my Dibellan config to have more accurate assignment of .etc textures.

A quick non-technical message: Several people over the past months have reached out and asked if I have a Patreon/Ko-fi/etc. I do not, and I am not planning to open one. However, if you were in the mood to donate and my work met your threshold, please consider instead donating to aid organizations operating in Ukraine including UNITED24, Ukrainian Red Cross, World Central Kitchen, GlobalGiving, and others.