Jump to content
  • entries
    4
  • comments
    7
  • views
    12,982

SexLab Inflation Framework Documentation


qotsafan

26,363 views

SexLab Inflation Framework Documentation

 

 

 

Note: Example implementations can be found at the bottom of this page, for implementation without direct SLIF dependency, please view: implementation without dependency

 

 

Important Variables:


Actor kActor: The actor, who is inflated.

 

string modName: The name of your mod, which is also displayed in my mcm menu.

 

string sKey: One of the keys (for each node) defined by SLIF.

 

All keys can be accessed via

SLIF_Main.ConvertToKey(String node)
 

The list of keys is located in \SKSE\Plugins\StorageUtilData\SexLab Inflation Framework\Lists.json

 

Example: slif_left_breast

 

string node: The node, which is to be inflated, has an equivalent sKey, defined by SLIF.

 

All nodes can be accessed via

SLIF_Main.ConvertToNode(String sKey)
 

The list of nodes is located in \SKSE\Plugins\StorageUtilData\SexLab Inflation Framework\Lists.json

 

Example: NPC L Breast

 

string syncKey: SyncKeys are special keys, which can inflate multiple nodes at the same time.

 

The list of sync_keys is located in \SKSE\Plugins\StorageUtilData\SexLab Inflation Framework\Lists.json

 

Example: slif_breast

 

string oldModName: The name of an already existing key for a NiOverride node from your mod, can be set, so SLIF takes the value over and removes it.

 

float value: The value for the actor, for your mod, for the node to be inflated.

 

Can be accessed like this:

SLIF_Main.GetValue(kActor, modName, sKey, default = 0.0)
 


float minimum: The minimal value for the actor, for your mod, for the node, can set when calling "inflate" or "registerActor"

 

Can be set like this:

SLIF_Main.SetMinValue(kActor, modName, sKey, minimum)
 

Can be accessed like this:

SLIF_Main.GetMinValue(kActor, modName, sKey, default = 0.0)
 


float maximum: The maximum value for the actor, for your mod, for the node, can set when calling "inflate" or "registerActor"

 

Can be set like this:

SLIF_Main.SetMaxValue(kActor, modName, sKey, maximum)
 

Can be accessed like this:

SLIF_Main.GetMaxValue(kActor, modName, sKey, default = 100.0)
 


float multiplier: The multiplier value for the actor, for your mod, for the node, can set when calling "inflate" or "registerActor"

 

Can be set like this:

SLIF_Main.SetMultValue(kActor, modName, sKey, multiplier)
 

Can be accessed like this:

SLIF_Main.GetMultValue(kActor, modName, sKey, default = 1.0)
 


float increment: The increment value for the actor, for your mod, for the node, can set when calling "inflate" or "registerActor"

 

Can be set like this:

SLIF_Main.SetIncrValue(kActor, modName, sKey, increment)
 

Can be accessed like this:

SLIF_Main.GetIncrValue(kActor, modName, sKey, default = 0.1)
 


Additional functions:

Function SetMinMaxValue(kActor, modName, sKey, minimum = 0.0, maximum = 100.0)
 
Function SetMinMaxMultIncrValue(kActor, modName, sKey, minimum = 0.0, maximum = 100.0, multiplier = 1.0, increment = 0.1)
 


int gender: The gender of the actor. (default: -1, SLIF_Main.GetGender() will handle the value internally, if no gender value is set) Setting the gender is normally unecessary, since genders are now handle internally by my framework.

 

the gender can be get and set (a valid value for gender will set the gender) like this:

SLIF_Main.GetGender(kActor, int gender = -1)
 

list of genders: Deprecated.

 

male = 0
female = 1
shemale = 2
futanari = 3
genderless = 4
male_creature = 5
female_creature = 6

 

 


int perspective: Obsolete.

 

 

 

 

 

Important SLIF_Main Functions:

 


inflate:

 

The main function of this mod, which does what it says, it inflates (or deflates) the specific node (defined through the assigned key) from the actor.
inflate will now call inflateBoth, if it's called with a key for inflateBoth.

 

Function inflate(Actor kActor, string modName, string sKey, float value, int gender = -1, int perspective = -1, string oldModName = "", float minimum = -1.0, float maximum = -1.0, float multiplier = -1.0, float increment = -1.0) Global
 

 

inflateMultiple:

 

Function to inflate, same as inflate(), just multiple nodes at the same time.

 

No optionals this time, since arrays can't be none and have to be initialized with an array of at least size 1.

 

Function inflateMultiple(Actor kActor, string modName, string[] sKeys, float[] values, int gender, int perspective, string oldModName, float[] minimum, float[] maximum, float[] multiplier, float[] increment) Global
 

inflateMultiple example:

String[] sKeys = new String[2]
sKeys[0] = "NPC L Breast"
sKeys[1] = "NPC R Breast"
Float[] values = new Float[2]
values[0] = SomeValue
values[1] = SomeValue
SLIF_Main.inflateMultiple(PlayerRef, "SomeModName", sKeys, values, -1, -1, "", new float[1], new float[1], new float[1], new float[1])
 

 

inflateBoth:

 

Convenience function to call inflateMultiple() with predefined default values.

 

Function inflateBoth(Actor kActor, string modName, string sKey, float value, int gender = -1, int perspective = -1, string oldModName = "", float minimum = -1.0, float maximum = -1.0, float multiplier = -1.0, float increment = -1.0) Global
 

 

registerActor:

 

Is automatically called the first time "inflate" is called. Can be called sooner, if you want to register the actor first and then inflate him/her.
Is only called once and never again, as long as the actor stays registered with SLIF.

 

Function registerActor(Actor kActor, string modName, string sKey = "", int gender = -1, string oldModName = "", float minimum = -1.0, float maximum = -1.0, float multiplier = -1.0, float increment = -1.0) Global
 

 

unregisterActor:

 

Can be called, if you want to unregister the actor for your mod, will be registered again, once inflate or registerActor is called.

 

Function unregisterActor(Actor kActor, string modName = "All Mods") Global
 

 

updateActor:

 

Can be called to update the actor for either the defined key or all keys, if no key is set, with the current value(s).
Normally does not have to be called. (An example would be my scanner)

 

Function updateActor(Actor kActor, string modName = "All Mods", string sKey = "", int gender = -1, int newGender = -1, int perspective = -1, string oldModName = "", float minimum = -1.0, float maximum = -1.0, float multiplier = -1.0, float increment = -1.0) Global
 

 

 

 

Example Implementation:

 


Check if SLIF is installed:

 

Bool Function isModInstalled(String mod) Global
    Return Game.GetModbyName(mod) != 255
Endfunction
bool slif_installed = isModInstalled("SexLab Inflation Framework.esp")
 

 

Variable declaration:

 

Actor kActor                  = Game.GetPlayer()
String modName                = "Fill Her Up"
String oldModName             = "FillHerUp"
float value                   = (some_algorithm) as float
String belly_key              = "slif_belly" or "NPC Belly"
float belly_min_default       = 1.0
float belly_max_default       = 10.0
float belly_mult_default      = 1.0
float belly_increment_default = 0.1
 

 

Inflate actor:

 

if (slif_installed)
    float belly           = SLIF_Main.GetValue(kActor, modName, belly_key, value)
    float belly_min       = SLIF_Main.GetMinValue(kActor, modName, belly_key, belly_min_default)
    float belly_max       = SLIF_Main.GetMaxValue(kActor, modName, belly_key, belly_max_default)
    float belly_mult      = SLIF_Main.GetMultValue(kActor, modName, belly_key, belly_mult_default)
    float belly_increment = SLIF_Main.GetIncrValue(kActor, modName, belly_key, belly_increment_default)
    SLIF_Main.inflate(kActor, modName, belly_key, belly, -1, -1, oldModName, belly_min, belly_max, belly_mult, belly_increment)
else
    do CANS, NiOverride or NetImmerse stuff
endIf
 

 

Example above as one line:

 

if (slif_installed)
    SLIF_Main.inflate(kActor, "Fill Her Up", "slif_belly", value, -1, -1, "FillHerUp", 1.0, 10.0, 1.0, 0.1)
else
    do CANS, NiOverride or NetImmerse stuff
endIf
 

 

Unregister actor, once he/she is not needed anymore:

 

if (slif_installed)
    SLIF_Main.unregisterActor(kActor, modName)
endIf
 

 

Disclaimer:
It is important to note, that, if you are using NiOverride as alternative scaling to my mod,
you will need to call the "inflate" function, with the "oldModName" set as the key you are using for the NiOverride scaling,
so my mod can remove it, if present and use the scaling.

2 Comments


Recommended Comments

If you want to add support for my mod and can't find the node you want to inflate in the node-list on this page, please send me a pm and I will add it!

Of course you can send me a pm for any other suggestions, questions, bugs, etc. you have as well!

Link to comment

Hello there,

 

I dont want to disturb you my pitty problem, but duh I cant find solution (maybe just some settings in SLIF MCM menu)

 

So I have a some mods for belly and breast scaling,  (using 3BA body with suggested "tulius bodymorph.json" Morph modus in SLIF) and I trying find a good settings but I fail again and again. And the end my character looks like a girl who swallow a zeppelin.

 

Used Mods:

Baka FHU (Cum amount multiplier = x0.2 Maximum Inflation Amount = 7)

Hentai Pregnancy (Belly and Breast scaling with minimum value (2))

Estrus Chaurus (If I use first spider infection totally messed up the body shape, so I cannot use it)

SL Survival (SLIF max scaling Breast 2,6 Belly 0,4 Ass 2,6 Cum amount multiplier same as FHU) What is "SLIF max Scaling" mean by the way?

Whoreux (SLIF  Inflate Belly and Breast)

 

When I use only FHU and SL Survival everything seems fine, but can I use all of them?

 

Do you have any idea what can I do? Can I use different mods for same node changing? and what SLIF does? Just collecting data for node changing and calculating an average value or supervising the other mods and does nothing?

 

Thanks for your time

Link to comment
×
×
  • 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