SexLab Inflation Framework Documentation
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