Jump to content

About This File

# MorphDebug

Provides commands to debug LooksMenu BodyGen/BodyMorph systems.


See BodyGen Description doc below for a description of terms of the many features that use BodyGen and some tips.


With so many BodyGen features that users and sometimes mod authors may not have full understanding of, I felt there was a need for commands to view and control the underlying Morph Values to get a better understanding of the current state of the BodyGen system and to try and work around issues.


# Commands:
Commands can be triggered through the MorphDebug MCM page directly.
Or via Aid Items which can be added via the Add Command Items button in the MorphDebug MCM page.
Items are tagged [CMD][MorphDebug] so you can organize it in your inventory sorting mod how you wish, or set up a category for the Wheel Menu mod.

1.Set TargetActor - Sets TargetActor to the actor currently in crosshair, or Player if none. Used by other MorphDebug functions.

2.Print TargetActor - Prints the current TargetActor.

3.LogMorphs - Logs all morphs for the Target Actor to Papyrus log.

4.ClearBaseMorphs - Clears Base Value for all morphs for the Target Actor.

5.ClearKeywordMorphs - Clears all Keyword Values from morphs but leaves Base Value of the morphs for the Target Actor.

6.RegenerateMorphs - Clears all existing morphs and reapplies BodyGen templates (if any) for the Target Actor.

7.ClearAllMorphs - Removes all morphs from all actors making them re-eligible for BodyGen templates application (save and reload to see changes on NPCs)


# Usage
Use Set TargetActor to set the Actor you want to apply the other commands on.

LogMorphs gives a full list of all morph values set on the TargetActor (must have papyrus logging turned on).

The Clear/RegenerateMorph functions clear different values, see the BodyGen Description doc for greater description of the terms.

They're intended to clear values that my have been applies/stuck from other mods.

Since mods that use SetMorph handle when they apply them in their own different ways you may have to wait for the mod update tick/event or trigger them specifically if you know how in order for its morphs.

RegenerateMorphs can be used to re-roll the BeodyGen template for the Actor to gen a better idea of what your templates are doing.


# Requirements
MCM
LL_fourplay dll: You will already have this if you have AAF installed. Used since unlike SKSE, F4SE doesn't have a object-under-crosshair function, but LL_Fourplay.dll does.
LooksMenu: For BodyGen, no point in using this to try and fix/look at morphs if you don't have any actually applied.

 

# Installation
Install as you would any other mod in your mod manager.

MorphDebug is flagged as .esl

Credits/Thanks:
@expired6978 for LooksMenu/BodyGen
@LenAnderson for an example of a nicely structured mod, and the idea of using vscode and various build scripts to manage a mod project.

 

 

# BodyGen Description
This document collates information about the systems to help understand them.

 

# Terms
Community and my own terms used to explain stuff:

BodyGen system - The overall system provided by Looksmenus f4ee.dll that manages it's features/data and 'does the work'.

The community may refer to Morphs by several different terms, and interchangeably mix the Morph name/id with the overall concept of the Morph modifying the shape of the body, or the value(s)

Morph

Slider - Alternate commonly used term for morph due to the BodySlide or LooksMenu Body Advanced method of changing the values with GUI sliders.

Display name - Only in BodySlide (I think) which can show a different name instead of the actual Morph name

Value/strength/power/factor - synonyms for the actual numerical value representing the morph.

Base Value - By default the many BodyGen features use this singular value for a morph overwriting the current value.

None Value - synonym for Base Value, usually used when talking about setting a morph via mods, where giving it a None value for the keyword parameter will set the Base Value.

Keyword Value - a morph may have any number of Keyword values, used by mods to separate/identify their own value applied to a morph.

 

# System and Features
The BodyGen system supplied by LooksMenus f4ee .dll drives a number of features:

When BodyGen system updates the morph it chooses the highest morph value out of the base and all keyword values applied to the morph.

Note: there is a bug in LooksMenu f4ee versions before v1.6.19 that would apply the morph value of the highest keyword id (which was dependent on the mod and possibly load order).

 

## BodyMorph Sliders
Simply labeled BodyMorph on the LooksMenu Description page, this is the feature accessed by LooksMenu > Body > Advanced > page of sliders feature.
This operates on the Base value of each morph/slider.

 

## LooksMenu presets
These save and load the morphs Base values.

 

## BodyGen templates system
I'll just outright quote the LooksMenu Description page
"BodyGen is a feature that allows for random (or specific) BodyMorph generation based on guided files (Because random everything usually results in a horrifying mess) for particular NPCs, or any NPC. If an Actor is eligible for random generation, when that actor is loaded (when you first see them, or load an existing save where they have no morphs) their morph listing will be computed based on the proceeding files.
"
The BodyGen template sets the morphs Base Value.
BodyGen templates are applied once to an Actor - the first time you encounter them, or when you load a save.

 

##BodyGen.SetMorph
Used by mods to set the Base Value (IMHO bad practice as it will override all the other features that use the Base Value),
or their own KeyWord value (or technically any KeyWord value they want as long as they can get a reference to it)

 

# Tips

## General
(Repeating this, it's important)
Note: there is a bug in LooksMenu f4ee versions before v1.6.19 that would apply the morph value of the highest keyword id  (which was dependent on the mod and possibly load order) instead of the highest morph value.

 

Some mods might not be set up to use SetMorph correctly (see mod authors request below), so even using the most recent LooksMenu version some mods might not be playing nice with each other.

 

There is a helpful tool [BodyConvert](https://www.nexusmods.com/fallout4/mods/41781) to help convert between different morph setting formats (bodyslide, looksmenu preset, templates.ini)

 

## BodyGen Templates
See the LooksMenu page, or various BodyGen guides scattered across the internet for more information on creating and applying the templates.

TODO: Find a decent tutorial to link or crib off.

 

morphs.ini uses formIds not reference ids.

 

Most of the features work off the assumption that the morph .tri files built by BodySlide are set to 0.

If you still want starting point values you would previously have set in bodyslide, you can set up a template to be applied to the Player in morphs.ini.

Example, assuming you have created a template in templates.ini called FusionGirl-MyCharacter:

 

    #Player
    Fallout4.esm|7=FusionGirl-MyCharacter
    #AAF doppleganger of the player
    AAF.esm|72e2=FusionGirl-MyCharacter
    #AAF doppleganger of the player when in the pre-war/pre-game area (MQ101PlayerSpouseFemale). Don't think you would be doing any AAF stuff here, but you do you.
    Fallout4.esm|A7D35=FusionGirl-MyCharacter

 

It can also be handy to know/look up the values of your template so you can tell if a mod has changed them.

You can look at the f4ee.log in windows Documents/My Games/Fallout4/F4SE/ to see if there's any errors in your templates and morphs ini.
Note: It logs referenceIds not formIds.

 

## SetMorph
Beyond using MorphDebugs LogMorphs you can use a text editor find-in-files function to search mods .psc files for BodyGen.SetMorph to see what morphs are being set to.

 

 


What's New in Version 0.2.0

Released

Fix Set TargetActor mcm command (item was fine).
Add hotkeys to all commands.


Other Files from Haberdasher


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use