BodySlide Batch Builder (BSBB)

BodySlide Batch Builder Help

In app help?

Most windows will have a ? in the Title bar on right side. Clicking this you can then click on elements in the window to get helpful information.
In app help may be more up to date then this page.

Can we resize windows?

Most windows do allow resizing even if Minimize and Maximize buttons don't exist. This just a side effect of the in app help button that I haven't solved yet.
On the edit build screen you can also resize the left and right hand sides to you liking and this will be saved. Currently only window to save window size and position.

How does BSBB decides which mesh to include when multiple exist?

There are multiple methods. First and most obvious is it must be included in the builds list via an include entry, and not on the exclude list.
After that there are two (2) processes used when multiple alternatives still exist for any mesh.

Include Order

BSBB will process the ordered part of the include list top to bottom. Note that this filtering per item will only filter out required alternatives only if doing so doesn't remove all alternatives. This means you will never totally remove a mesh by this filtering method. Only way to totally exclude output meshes is to either just not include them in the first place, or add them to the exclude list, which can prevent all alternatives from being included in the first place.
As there are multiple ways to select outfits and bodies, including BodySlide Groups, Outfit / Body Name (Exact, Contains and Regex) and Source file, along with both Keep matching and Remove matching actions, this can be very powerful.

BuildSelection.xml

BodySlide's way of this is you can mark which alternative mesh should be used, and it writes it to this XML file. This is the check box in the lower left of the screen, where you can also right click to see the alternative meshes.
If the file contains an entry for the mesh in question and the alternative mesh it points to exists in the current build, and hasn't already been filtered out by other methods, then it will use the mesh it points to.
In the settings of BSBB you can change if this is used and if so is it used before or after the include order method. Personally I disable this and rely solely on Include Order.

What happens if there are still multiple meshes after the above methods?

During validation it will detect these and be able to present them to you, and assist you with deciding what you want to do.
First for each alternative mesh it will list the groups it is included in. This will help identify if you could resolve these by either adding a group to the include order or re-order the include list to resolve these.
If however that is not an option, then like when you do a build all in BodySlide, in BSBB you can select which to use and have it automatically add them to the top of the include list for you.
Unlike in BodySlide however this will only affect the current build configuration and not apply those selections to other builds you have.

Lastly in the settings you can also disable this conflict checking during builds. This only disables it when using the "Build All" button and will still display these when manually running a validation. This however will make BodySlide display it's normal window for any conflicts meaning you will need to accept them there each time.

What are the Ignored Slider Sets in the validations window?

These are just meshes that exist that are not included in any enabled build. Could be you don't want these or something you have missed.
By default this is only done when running Validate All, but can be enabled in settings to run when you do Build All as well.

Can I see what Outfits / Bodies have been selected by BSBB?

Yes. BSBB creates slider groups for each build. Labeled "BSBB Group x", with x being the build number based on current order.
So after running build all you can open BodySlide and look at the groups. I am planning on adding a way to view these inside BSBB in the future.
These groups will be stored in the output mod specified in the settings screen. This can be set the same as Build output mods, but must be enabled to run Build All.
Note: If you want to create / update these groups without also building you can hold control while clicking Build All, to only create / update the groups.

I get an error in BodySlide saying it can not create some output folders, what do I do?

This is a known bug, that nothing I have tried has fixed. It seems to only happen when running Build All when a output location doesn't already have a meshes folder (even though BSBB creates it first).
So all you have to do is run Build All again, and it seems to be fine unless you manually delete the meshes folder or change output to somewhere new.
Note the BSBB setting to clear the meshes folder before builds doesn't seem to affect this and is safe to use.

Main Screen

BSBB Main Screen
Build All
All enabled build entries will:
  1. Be validated and config saved,
  2. BodySlide slider group(s) created / updated,
  3. If enabled, meshes folder output mod for any enabled build will be cleared,
  4. BodySlide x64 run for each build
Note: Validation on build of conflicts and ignored Outfits/Bodies can be disabled in Settings.
Builds

List of all configured builds listed in order that they will be run. If each outputs to a separate output mod than order won't matter, but if multiple output to the same output mod, then order may matter if there are some overlaps, with later builds overwriting.

The plus (+), and minus (-) buttons above will add new builds or remove selected respectively.
The order can be changed using the Up and Down buttons.

Global Settings

BSBB Settings
Delete meshes pre-build:
If enabled post validation BSBB will delete the contents of the Meshes folder, in all output locations, enabled builds point to.
After this it will start the actual builds by launching BodySlide x64
Include BuildSelection.xml in Outfit/Body priority:
This says if BSBB should look at BodySlide's BuildSelection.xml during it's calculations on which Outfit and Bodies to build, and if that should be done before or after include order.
Details of this above.
Check for conflicts on build:
If checked when running Build All if any mesh conflicts could not be resolved it will display them, and wait for you to either click Ignore or cancel to fix.
Note ignoring conflicts just moves the problem to inside BodySlide which will prompt you to decide which to use. If you resolve these in BSBB then you won't need to interact with BodySlide at all during build process.
Check for ignored meshes on build:
Disabled by default but this will make it also display any ignored meshes (ones that are not included in any enabled builds) on the validation screen, during the Build All.
Auto close after successful build:
If BSBB didn't detect any errors during Build All it will auto close out of the BSBB window after builds complete.
Show sources:
This setting only affects the Validation screen and the Export Data option in tools.
It adds the name of the configuration file that Outfits / Bodies come from as well as the name of the config file(s) that assigned them to certain groups.
Save BSBB slider groups to:
This is where the XML file will be created for BodySlide to use during builds. The can be the same output mod as builds, but unlike builds this output mod must be enabled else Validation will fail and you won't be able to run Build All.
Tools
Contains extra things that didn't fit elsewhere.
First Export Data that will create a pipe (|) separated text file of all Outfits and Bodies that exist and the groups they belong to. Optionally if Show sources option is enabled will also include that extra information.
The other is Locate button that will open Windows Explorer to the BSBB config file if you wish to find it easily to copy elsewhere. This is in the MO2\plugins\data folder.
BSBB Tools Screen

Add / Edit Build

BSBB Add / Edit Build Screen
Enabled:
Is this build enabled when performing Build All and Validate All.
Output Mod:
Output mod that BodySlide will place resulting files in. This mod doesn't need to be enabled or disabled in MO2. BSBB and BodySlide won't care. Only exception is if you also use the same output mod in the settings screen. Then it must be enabled.
Preset:
Which BodySlide preset to use for this build.
Include:
This is the list used for this build. It is broken up into 3 parts.
  1. Exclude
  2. Include Only
  3. Ordered by Priority (highest to Lowest) - This is where all other use types go and where the order matters.
    • Include + Keep matching alternatives
    • Keep matching alternatives
    • Remove matching alternatives
On the right you can select what to add, by either select and using add button or double clicking. I recommend if you adding and Outfits / Bodies you add them to the top of the ordered list else the may not be used if a conflicting mesh exists higher in the order.

Include Types

Group
This is what is added if you add from the list of Groups. If adding / editing under Advanced tab note the name entered must match the complete name of the group. Will show in red if no current match. You can still add but won't do anything until a matching group name exists.
Source
You can enter a filename referencing a BodySlide source file. Filename must end in either of the following.
.osp - Filename should match a file in the ..\BodySlide\SliderSets\ folder. Any Outfit / Body that was added by this file will match.
.xml - Filename should match a file in the ..\BodySlide\SliderGroups\ folder. Any Outfit / Body that was added to a group by this file will match. NOTE: No control of which group it was added to.
Outfit / Body
This is what is added if you add from the list of Outfits / Bodies. If adding / editing under Advanced note the name entered must match the complete name. Will show in red if no current match. You can still add but won't do anything until a matching name exists.
Outfit / Body Contains
Will match any Outfit / Body that contains the value anywhere in it's name.
Outfit / Body Regex
Will match any Outfit / Body that matches the entered regular expression.

Include Uses

Include + Keep matching alternatives
Default. Performs both uses. See them for more details.
Keep matching alternatives
For any included meshes that contain multiple alternatives, will remove any that do not match this entry, as long as doing so won't remove all alternatives.
Remove matching alternatives
For any included meshes that contain multiple alternatives, will remove any that match this entry, as long as doing so won't remove all alternatives.
Include only
Adds matching Outfits / Bodies to the build, as long as they are not covered by exclude.
Exclude
Prevents any matching Outfits / Bodies from being used in this build.

Advanced Tab

Preview Matching
Preview of what Outfits / Bodies match the current entry. Note this does not preview the end result of all include entries just the current one displayed in Advanced tab.
New
Disabled if no valid value entered for the selected type, but will create a new entry with these details. Can clone an existing entry by selecting it first then click new instead of apply.
Apply
Updates currently selected entry. Disabled is no current selection, current selection is a heading or you have multiple selected.

Validation

BSBB Validate Screen

This window will show you any errors, unresolved conflicts and Ignored Meshes. Depending on where the validation is triggered from more or less may be displayed.
For instance when displayed due to problems detected during Build All validation, it will include an Ignore button that you can use to still run the builds, as long as no critical errors detected.

For any conflicts I recommend first looking at the groups assigned, and updating your Include list accordingly with groups before adding any Outfits/Bodies to the include list if required.
For instance in the above screenshot I would actually recommend adding the Hands Redone - Clothes group above the CBBE group in your Include list. But if you want to add the actual Outfits / Bodies you can do that from this screen by selecting those you want and clicking the Add to Builds button.
Add to Builds will do that but not save any changes and take you back to the screen you came from to either check the results and if you want re-validate / Build All if you happy with the changes made.