Search the Community
Showing results for tags 'wip'.
-
Version 0.0.1
191 downloads
Creampie Overhaul FFoD Cycle Calendar Image Pack (WIP) A simple background image pack, used to decorate each day of the Female Player Character's fertility cycle - in Creampie Overhaul. Image Themes It is very likely that this specific pack will be updated once i find better fiting images. My goal is to eventually have all images have contemplative note mixed with feminine visual cues. Work in Progress Rae is still missing images and defaults to a picture of liya -
View File Creampie Overhaul FFoD Cycle Calendar Image Pack # Creampie Overhaul FFoD Cycle Calendar Image Pack (WIP) A simple background image pack, used to decorate each day of the Female Player Character's fertility cycle - in Creampie Overhaul. ### Image Themes It is very likely that this specific pack will be updated once i find better fiting images. My goal is to eventually have all images have contemplative note mixed with feminine visual cues. * Work in Progress * Rae is still missing images and defaults to a picture of liya Submitter FFoD Submitted 06/23/26 Category Gameplay Changes & Events Requirements XCL 0.24.8 Creampie Overhaul 0.2.3
-
Version 1.0.2
559 downloads
I tried my hand on a somewhat nuanced incest system. I wanted to see what can be implemented and I will try to add more things. Right now this mod adds -new familial relationship labels -enabling incest through gameplay for one pair of paras at a time -interactions that let paras form opinions about incest -reaction of other paras to incest depending on different factors -being able to freely edit relationship labels in the character editor -developing onesided crushes on family members (right now only available for the version including teenagers) -chance that becoming romantic partners while having an incestuous crush become "stand-in" (right now only available for the version including teenagers) Note: Since so far I have only been asked for a version that includes teenagers I won't update the version that excludes them for now. If people are interested in that version as well I will pick up support for it. The new lables are grandparent, grandchild, pibling (genderneutral term for uncle/aunt), nibling (genderneutral term for niece/nephew) and cousin. They automatically apply the fitting inverse label to the other para when given (if you give someone grandparent, the other para gets grandchild as well), but i have not implemented any additional automatic connections since I don't know how that would interfere with the way i implemented the incest interactions. There are three new TogetherCard types: "innocent compliment" which is a normal friendly interaction available between family members, a variation that let's one para develop a onesided crush on a family member, and a variation that switches the normal familial label to one that allows romantic interactions (siblings would loose their "sibling" labels and those get replaced with "dearest sibling"). The second variation has a success chance based on a couple different factors. I added three new emotions: being ok with incest, being disgusted by it and having it as a fetish. Those can be gained by interacting with a mirror and they last for about two weeks. They are not exclusive. There is one interaction for each "emotion" plus one that gives you a randomised outcome. If other paras are in the group while two related paras "flirt" they will react to it if they know their family situation. Each "stance on incest" emotion should give a different reaction. Right now it only works for the TogetherCards I added, but I will see if I can add it for already exisitng ones as well. I don't know if there is a function with which I can implement people "noticing" without being in the group already. I don't think it is possible with to add the reaction of others to cards that are not exclusively available to incest couples with how things work at the moment, but I will continue to look into it. If a para that has an incestuous crush enters a romantic relationship there is a one in five chance for it to become a "stand-in" relationship giving a malus on all romantic interactions. If you have suggestions, bug reports or feedback let me know. I am very thankful for any input.-
3
-
- incest
- paralives mod
-
(and 3 more)
Tagged with:
-
View File [WIP] Incest for Storytelling I tried my hand on a somewhat nuanced incest system. I wanted to see what can be implemented and I will try to add more things. Right now this mod adds -new familial relationship labels -enabling incest through gameplay for one pair of paras at a time -interactions that let paras form opinions about incest -reaction of other paras to incest depending on different factors -being able to freely edit relationship labels in the character editor -developing onesided crushes on family members (right now only available for the version including teenagers) -chance that becoming romantic partners while having an incestuous crush become "stand-in" (right now only available for the version including teenagers) Note: Since so far I have only been asked for a version that includes teenagers I won't update the version that excludes them for now. If people are interested in that version as well I will pick up support for it. The new lables are grandparent, grandchild, pibling (genderneutral term for uncle/aunt), nibling (genderneutral term for niece/nephew) and cousin. They automatically apply the fitting inverse label to the other para when given (if you give someone grandparent, the other para gets grandchild as well), but i have not implemented any additional automatic connections since I don't know how that would interfere with the way i implemented the incest interactions. There are three new TogetherCard types: "innocent compliment" which is a normal friendly interaction available between family members, a variation that let's one para develop a onesided crush on a family member, and a variation that switches the normal familial label to one that allows romantic interactions (siblings would loose their "sibling" labels and those get replaced with "dearest sibling"). The second variation has a success chance based on a couple different factors. I added three new emotions: being ok with incest, being disgusted by it and having it as a fetish. Those can be gained by interacting with a mirror and they last for about two weeks. They are not exclusive. There is one interaction for each "emotion" plus one that gives you a randomised outcome. If other paras are in the group while two related paras "flirt" they will react to it if they know their family situation. Each "stance on incest" emotion should give a different reaction. Right now it only works for the TogetherCards I added, but I will see if I can add it for already exisitng ones as well. I don't know if there is a function with which I can implement people "noticing" without being in the group already. I don't think it is possible with to add the reaction of others to cards that are not exclusively available to incest couples with how things work at the moment, but I will continue to look into it. If a para that has an incestuous crush enters a romantic relationship there is a one in five chance for it to become a "stand-in" relationship giving a malus on all romantic interactions. If you have suggestions, bug reports or feedback let me know. I am very thankful for any input. Thank you for playing. Submitter .______. Submitted 06/06/26 Category Paralives Requirements Install Instructions Unzip the downloaded folder into: C:\[User]\AppData\LocalLow\Paralives\Paralives
- 6 replies
-
- incest
- paralives mod
-
(and 3 more)
Tagged with:
-
-
1
-
- rayman origins
- 3ds
-
(and 5 more)
Tagged with:
-
View File Rayman Origins 3ds - Topless Betilla Warning ⚠️ For now, it's only for emulators! I'm still working on the console version despite the limited/nonexistent information and tools available. I hope you like it! :] Submitter msrio Submitted 06/01/26 Category Other Games Requirements Install Instructions
-
- rayman origins
- 3ds
-
(and 5 more)
Tagged with:
-
Version 0.4
680 downloads
Disclaimer This is a very lightweight (very work-in-progress) mod about reworking the Porn Addict Compulsion to have some actual consequences for highly masculine PCs. Fair warning, it was very heavily vibe-coded. So, if you have any personal qualms about AI-usage... well, no offense, but why the fuck are you playing XCL? Requirements v0.24.8 from the gitgud repo | Playtest v0.24 (I can only guarantee the gitgud repo, at this time. Try earlier versions/ the supporter playtest at your own risk.) Context As someone who finds it difficult to RP a reluctant character, especially when it comes down to a highly masc character getting curious about being turned into a woman and willingly fucked, I wanted to have a way to self-sabotage that didn't break my RP/require major suspension of disbelief. If you're good at the mini-games, good at closing sales and dodging demos, good at dodging getting spiked at the bar/club, don't feel like your character would ever be dumb enough to gamble with Bruce or Dredd to risk taking a Breeder/Insta-Strip (lmao), and you don't have other mods that can force you to transform consistently in a narratively coherent way, you probably find yourself getting stuck in a loop of accidentally succeeding as a full masculine character like I do. I wanted to find a way to help address that problem without needing to force my character to make catastrophically poor decisions that were impossible to justify, or ending up in positions that escalate way too quickly (Secretary mini-game, many of the demos, Purple Alexia, etc.). It dawned on me that the porn videos don't currently have a tolerance system, despite the Porn Addict compulsion providing the framework for one. I was disappointed that X-Change porn (in base game) only serves to further an already ongoing feminization after you've lost a decent chunk of masculinity. Well, I wanted more from the porn given how sexy the clips are. So, this mod makes it so that a Porn Addiction can kick-start the feminization, instead. After all, what better way for someone to get curious about the pill than seeing someone on the pill cumming their brains out, or looking ecstatic while sucking a cock? In the privacy of their own home, while living in a city where anyone they know could swap around at any moment, who wouldn't get a little curious after seeing enough porn of it? What does this mod do? You'll have both RP and meta-game reasons to choose the X-Change porn despite the guaranteed -1 to Masc, even as a highly masculine PC. You want to keep your MAX AP buff, but you don't want to risk the heavier masc loss if you fail to get off to Mainstream porn. You can use an AP to bypass the failure, but it still heavily reduces the arousal reduction. I wanted it to reflect how a porn addiction in real life is a rabbit hole that sucks you down. The more Mainstream porn you watch, the harder it becomes to get off to it. (On an exponential curve increasing with times watched, to the point that even having Male Masturbation at level 10 won't net you more than a 10% chance of succeeding at the dice roll.) The Reflex mini-game also scales with this, but it's unfortunately one of the easiest in the entire game. Ironically, it's actually far more fun because your mandatory 20 seconds will likely be over by the time you've managed to fill the bar, as opposed to how your normally have to constantly stop-and-go with it. Basically, use the dice roll if you want to get the most out of this mod until I find a solution for the reflex mini-game being too easy. If you do manage to pass the check, the more you've watched over your entire run, the less arousal you'll lose (scaling all the way down to only 1 arousal lost based on the amount of porn watched). X-Change porn will get you off harder and can even overcap cum loads, so if you have a mod that raises the max load count, i.e. arousal, it'll work with that. If not, it's just an unnecessarily big number currently to convey the addiction better. If you cross over a certain number of watches, you'll now be at-risk of losing masculinity if you fail to get off to Mainstream porn. (-3 if you fail the check). Obviously, you can force pass the skill check with an AP point, but you still won't clear your arousal. A high masc character (>90) is no longer prevented from watching X-Change porn if they have the Porn Addict compulsion. However, you are guaranteed to lose 1 masc if you use it at all. Replaces and expands the nags and much of the dialogue surrounding porn usage based on your Porn Addict state to indicate your PC's growing desire for more "taboo" X-Change porn. Each X-Change video has 10 unique lines that replace the original "you gain arousal watching this" that would show up when clicking on a video, based on your masc/fem tier, and your current body state. It's a 5-band tier, scaling down from 100 100-80 | 79-60 | 59-40 | 39-20 | 19-0 These are meant to represent the reaction of the PC and their slowly eroding identity, so you'll see their thoughts shift from aroused repulsion, to a submissive acceptance. Basically, it's a spectrum from, "God, why is this so hot?" to "Yeah, I want to be her so bad right now." These are mostly AI-generated lines, but I plan to go through and overhaul them to my liking soon. I wanted to get the system working first. There are also general lines for all X-Change videos, so you have a 50% chance to see your stat specific line, or to see the general line. I figured that would help keep things a bit more exciting if you click on the same video at the same tier. A little trick to compel the player themselves to want to watch more of the in-game porn. Installation Use the Modloader (if not using the gitgud repo version) OR Drag and drop into your mods folder in the game's root (if using the gitgud repo version) X-Change Life/mods/Porn-Tolerance-Mod/PornToleranceMod.twee Bugs/Compatibility Please let me know if this mod conflicts with any current major mods. I don't think it should, given that it's almost entirely contained to just using the computer and the Porn Addict compulsion. I have only done the bare minimum of testing on the female side. I plan to spend more time improving that side of things, but hopefully it functions as smoothly as the male side. Admittedly, this mod is currently more focused on the masculine PC for the time being, but I absolutely plan to expand on that. It also uses the "around" function as much as possible, so even if there are any critical bugs, they shouldn't be catastrophic (I hope.) Future Plans I am still currently working on expanding this mod, and I plan to do much more with it. I want more dialogue, captions, functionality, porn videos/categories, but I feel that it's currently in a place that's worth sharing around for feedback/bug-testing. Primarily, I would like to introduce new porn categories and radiant dialogue/captions, as I believe that would be the easiest expansion. Once again, I have only done the bare minimum of testing on the female side. I plan to spend more time improving that side of things, but hopefully it functions as smoothly as the male side. Admittedly, this mod is currently more focused on the masculine PC for the time being, but I absolutely plan to expand on that in the future.-
5
-
- x-change
- compulsion
-
(and 5 more)
Tagged with:
-
View File [XCL] [0.24] Porn Tolerance Mod - Porn Addict Rework (Compulsion) Disclaimer This is a very lightweight (very work-in-progress) mod about reworking the Porn Addict Compulsion to have some actual consequences for highly masculine PCs. Fair warning, it was very heavily vibe-coded. So, if you have any personal qualms about AI-usage... well, no offense, but why the fuck are you playing XCL? Requirements v0.24.8 from the gitgud repo | Playtest v0.24 (I can only guarantee the gitgud repo, at this time. Try earlier versions/ the supporter playtest at your own risk.) Context As someone who finds it difficult to RP a reluctant character, especially when it comes down to a highly masc character getting curious about being turned into a woman and willingly fucked, I wanted to have a way to self-sabotage that didn't break my RP/require major suspension of disbelief. If you're good at the mini-games, good at closing sales and dodging demos, good at dodging getting spiked at the bar/club, don't feel like your character would ever be dumb enough to gamble with Bruce or Dredd to risk taking a Breeder/Insta-Strip (lmao), and you don't have other mods that can force you to transform consistently in a narratively coherent way, you probably find yourself getting stuck in a loop of accidentally succeeding as a full masculine character like I do. I wanted to find a way to help address that problem without needing to force my character to make catastrophically poor decisions that were impossible to justify, or ending up in positions that escalate way too quickly (Secretary mini-game, many of the demos, Purple Alexia, etc.). It dawned on me that the porn videos don't currently have a tolerance system, despite the Porn Addict compulsion providing the framework for one. I was disappointed that X-Change porn (in base game) only serves to further an already ongoing feminization after you've lost a decent chunk of masculinity. Well, I wanted more from the porn given how sexy the clips are. So, this mod makes it so that a Porn Addiction can kick-start the feminization, instead. After all, what better way for someone to get curious about the pill than seeing someone on the pill cumming their brains out, or looking ecstatic while sucking a cock? In the privacy of their own home, while living in a city where anyone they know could swap around at any moment, who wouldn't get a little curious after seeing enough porn of it? What does this mod do? You'll have both RP and meta-game reasons to choose the X-Change porn despite the guaranteed -1 to Masc, even as a highly masculine PC. You want to keep your MAX AP buff, but you don't want to risk the heavier masc loss if you fail to get off to Mainstream porn. You can use an AP to bypass the failure, but it still heavily reduces the arousal reduction. I wanted it to reflect how a porn addiction in real life is a rabbit hole that sucks you down. The more Mainstream porn you watch, the harder it becomes to get off to it. (On an exponential curve increasing with times watched, to the point that even having Male Masturbation at level 10 won't net you more than a 10% chance of succeeding at the dice roll.) The Reflex mini-game also scales with this, but it's unfortunately one of the easiest in the entire game. Ironically, it's actually far more fun because your mandatory 20 seconds will likely be over by the time you've managed to fill the bar, as opposed to how your normally have to constantly stop-and-go with it. Basically, use the dice roll if you want to get the most out of this mod until I find a solution for the reflex mini-game being too easy. If you do manage to pass the check, the more you've watched over your entire run, the less arousal you'll lose (scaling all the way down to only 1 arousal lost based on the amount of porn watched). X-Change porn will get you off harder and can even overcap cum loads, so if you have a mod that raises the max load count, i.e. arousal, it'll work with that. If not, it's just an unnecessarily big number currently to convey the addiction better. If you cross over a certain number of watches, you'll now be at-risk of losing masculinity if you fail to get off to Mainstream porn. (-3 if you fail the check). Obviously, you can force pass the skill check with an AP point, but you still won't clear your arousal. A high masc character (>90) is no longer prevented from watching X-Change porn if they have the Porn Addict compulsion. However, you are guaranteed to lose 1 masc if you use it at all. Changes the nags and much of the dialogue surrounding porn usage based on your Porn Addict state to indicate your PC's growing desire for more "taboo" X-Change porn. Installation Use the Modloader (if not using the gitgud repo version) OR Drag and drop into your mods folder in the game's root (if using the gitgud repo version) X-Change Life/mods/Porn-Tolerance-Mod/PornToleranceMod.twee Bugs/Compatibility Please let me know if this mod conflicts with any current major mods. I don't think it should, given that it's almost entirely contained to just using the computer and the Porn Addict compulsion. I have only done the bare minimum of testing on the female side. I plan to spend more time improving that side of things, but hopefully it functions as smoothly as the male side. Admittedly, this mod is currently more focused on the masculine PC for the time being, but I absolutely plan to expand on that. It also uses the "around" function as much as possible, so even if there are any critical bugs, they shouldn't be catastrophic (I hope.) Future Plans I am still currently working on expanding this mod, and I plan to do much more with it. I want more dialogue, captions, functionality, porn videos/categories, but I feel that it's currently in a place that's worth sharing around for feedback/bug-testing. Primarily, I would like to introduce new porn categories and radiant dialogue/captions, as I believe that would be the easiest expansion. Once again, I have only done the bare minimum of testing on the female side. I plan to spend more time improving that side of things, but hopefully it functions as smoothly as the male side. Admittedly, this mod is currently more focused on the masculine PC for the time being, but I absolutely plan to expand on that in the future. Submitter Thronicomar Submitted 05/31/26 Category Gameplay Changes & Events Requirements v0.24 X-Change Life
- 2 replies
-
- x-change
- compulsion
-
(and 5 more)
Tagged with:
-
Version v60-20260528
234705 downloads
Scriptname LL_FourPlay Native Hidden ; ; Shared community library of utility function from LoverLab distributed with FourPlay resources as a F4SE plugin with sources included ; ; Version 52 for runtime 1.10.984 2024 08 19 by jaam and Chosen Clue and EgoBallistic and Fedim ; Runtime version: This file should be runtime neutral. The accompanying F4SE plugin (ll_fourplay_1_10_984.dll) is NOT! ; You need to always use a plugin corresponding with the game version you play. ; Plugin should be available just after F4SE has been updated for the modified runtime. ; Runtime versions lower than 1.10.984 will no longer be supported. ; Written and tested against F4SE 0.7.2. You should not use an older version of F4SE. ; ; ; ; Returns the version of this script (when someone has not forgotten to update it :) ) Float Function GetLLFPScriptVersion() global return 52.0 endFunction ; Returns the version of the plugin and servers to verify it is properly installed. Float Function GetLLFPPluginVersion() native global ; Custom profile: written into "Data\F4SE\Plugins" ; =============== ; Returns the full path for custom profile name. IE "WhereverYourGameIs\Data\F4SE\Plugins\name". Don't forget to provide the .ini extension. string Function GetCustomConfigPath(string name) native global ; Get the value of custom config string option string Function GetCustomConfigOption(string name, string section, string key) native global ; Get the value of custom config integer option (Use 0/1 for boolean) int Function GetCustomConfigOption_UInt32(string name, string section, string key) native global ; Get the value of custom config float option Float Function GetCustomConfigOption_float(string name, string section, string key) native global ; Sets the value of custom config string option (at most 66535 characters per option). The directories and path will be created as needed. If the result is false, the set did not happen. bool Function SetCustomConfigOption(string name, string section, string key, string value) native global ; Sets the value of custom config integer option. The directories and path will be created as needed. If the result is false, the set did not happen. bool Function SetCustomConfigOption_UInt32(string name, string section, string key, int data) native global ; Sets the value of custom config float option. The directories and path will be created as needed. If the result is false, the set did not happen. bool Function SetCustomConfigOption_float(string name, string section, string key, float data) native global ; Get all the keys and values contained in a section. Both at once to avoid discrepancies in the order. ; The keys are in VarToVarArray(Var[0]) as String[] and the values in VarToVarArray(Var[1]) as String[] Var[] Function GetCustomConfigOptions(string fileName, string section) native global ; Set a list of keys and values in a section. Any other existing key will be left alone. bool Function SetCustomConfigOptions(string fileName, string section, string[] keys, string[] values) native global ; Reset all the keys and values contained in a section. ; Any exiting key value pair will be suppressed first, so providing none arrays will effectivly removes all keys from the section. bool Function ResetCustomConfigOptions(string fileName, string section, string[] keys, string[] values) native global ; Get all the sections in a file. string[] Function GetCustomConfigSections(string fileName) native global ; For all array functions: ; The implementation as an arbitrary limitation of 32767 bytes buffer for all Keys, Values or sections involved. ; If needed because the limitation becomes a problem, another implementation can be done using memory allocation, though there will remain a limit imposed by Windows. ; When arrays for keys and values are provided, the count of elements in both arrays must be identical or the function fails on purpose. ; An empty value should be provided as a zero length string. TO BE TESTED ; ; Camera functions ; ================ ; ; Forces the FlyCam state. ; if activate is true and the FlyCam is not active AND the FXCam is not active either, the FlyCam will be activated. ; if activate is false and the FlyCam is active, the FlyCam will be deactivated. ; if the requested state is identical to the current state nothing is done. ; Returns whether the FlyCam was active or not before the call so mods can restore the previous state if needed. bool Function SetFlyCam(bool activate) native global ; TO BE TESTED ; Forces the FlyCam state. Alternative version that allows to pause/unpause the game when entering FlyCam ; if activate is true and the FlyCam is not active AND the FXCam is not active either, the FlyCam will be activated. ; if pause then the game will be paused ; if activate is false and the FlyCam is active, the FlyCam will be deactivated. ; otherwise if the requested activate is identical to the current state nothing is done. ; Returns whether the FlyCam was active or not before the call so mods can restore the previous state if needed. ;TBT; bool Function SetFlyCam2(bool activate, bool pause) native global ; TO BE TESTED - So far this is useless as scripts seem to be stopped while in pause mode :( ; Get the current state of the FlyCam bool Function GetFlyCam() native global ; Get the current pause state of the game bool Function GetPaused() native global ; Get the current state of the FXCam bool Function GetFXCam() native global ; Select the speed at which the FlyCam moves (identical to SetUFOCamSpeedMult/sucsm console command) ; The console command supports an optional second parameter to control rotation speed. ; The way it handles default value is not compatible so I use an explicit bool to select which speed to change ; Returns the previous value of the selected speed. float Function SetFlyCamSpeedMult(float speed, bool rotation=False) native global ; ; Power Armor/Race/Skeleton functions ; =================================== ; ; Returns the actor's race when in PowerArmor Race Function GetActorPowerArmorRace(Actor akActor) native global ; Returns the actor's skeleton when in PowerArmor string Function GetActorPowerArmorSkeleton(Actor akActor) native global ; Returns the actor's current skeleton, not affected by PowerArmor string Function GetActorSkeleton(Actor akActor) native global ;Chosen Clue Edit ; ; String functions ; ================ ; ; Returns the first index of the position the toFind string starts. You can use this to check if an animation has a tag on it. Is not case sensitive. Int Function StringFind(string theString, string toFind, int startIndex = 0) native global ; Returns the selected substring from theString. If no length is set, the entire string past the startIndex number is returned. string Function StringSubstring(string theString, int startIndex, int len = 0) native global ; Splits the string into a string array based on the delimiter given in the second parameter. ; As this function does ignore whitespace, putting a space as the delimiter will only result in a string being returned without spaces. string[] Function StringSplit(string theString, string delimiter = ",") native global ; Opposite of StringSplit. string Function StringJoin(string[] theStrings, string delimiter = ",") native global ; Converts an integer of any base to a hexadecimal string representation string Function IntToHexString(Int num) native global ; Converts a hexadecimal string to an integer Int Function HexStringToInt(String theString) native global ; ; Array functions ; =============== ; ;Just a precursor: This does not mean we can use Alias based scripts to store animations like sexlab does, as the F4SE team has yet to include a typedef of them in the F4SE CPP files. I am guessing that they haven't reverse engineered it yet. Form[] Function ResizeFormArray(Form[] theArray, int theSize, Form theFill = NONE) native global String[] Function ResizeStringArray(String[] theArray, int theSize, String theFill = "") native global Int[] Function ResizeIntArray(Int[] theArray, int theSize, Int theFill = 0) native global Float[] Function ResizeFloatArray(Float[] theArray, int theSize, Float theFill = 0.0) native global Bool[] Function ResizeBoolArray(Bool[] theArray, int theSize, Bool theFill = False) native global Var[] Function ResizeVarArray2(Var[] theArray, int theSize) native global Var[] Function ResizeVarArray(Var[] theArray, int theSize) global ; Because filling with invalid values will CTD ; Bugged for any version prior to 14 ; theFill will be ignored, but kept for compatibility. Anyway nobody used it ever as it would have CTD. Please use ResizeVarArray2 Int theFill = 0 return ResizeVarArrayInternal(theArray, theSize, theFill) endFunction ; if the int theSize is negative, the resulting array is a copy of the original array unchanged. ; Sets the minimum array size required by a mod. Returns false if the current value was greater. Bool Function SetMinimalMaxArraySize(int theMaxArraySize) native global ; This patches ArrayAdd and ArrayInsert so they respect that maximum. The value is memorised in ToolLib.ini ;[Custom Arrays] ;uMaxArraySize=nnnnnn ; ; !! Creating arrays that are too large will adversaly affect your game !! ; ; Keyword functions ; ================= ; ; Return the first keyword whose editorID is akEditorID Keyword Function GetKeywordByName(string akEditorID) native global ; Adds a keyword to a form (not only a reference). Does not persists. bool Function AddKeywordToForm(Form akForm, Keyword akKeyword) native global ; Delete a keyword from a form (not only a reference). Does not persists. bool Function DelKeywordFromForm(Form akForm, Keyword akKeyword) native global ; Return an array of all keywords loaded in game. Keyword[] Function GetAllKeywords() native global ; ; CrossHair functions ; ==================== ; ; Returns the Reference that is currently under the CrossHair. Returns None if there isn't one currently. ObjectReference Function LastCrossHairRef() native global ; Returns the last Actor that is or was under the CrossHair. Returns None until there is one since the game was (re)started. Actor Function LastCrossHairActor() native global ; ; ObjectReference functions ; ========================= ; ; Set the reference display name as a string without token. TO BE TESTED bool Function ObjectReferenceSetSimpleDisplayName(ObjectReference akObject, string displayName) native global ; Sets reference angle in degrees. Will not cause load screen if called on Player Function SetRefAngle(ObjectReference akRef, float x, float y, float z) native global ; Sets no-collision state on reference Function SetRefNoCollision(ObjectReference akRef, bool abState) native global ; Get the scale of a reference Float Function GetScale(ObjectReference akRef) native global ; Set the scale of a reference Function SetScale(ObjectReference akRef, Float afScale) native global ; ; Actor functions ; =============== ; ; Check if the ActorBase has a specific skin. TO BE TESTED bool Function ActorBaseIsClean(Actor akActor) native global ; Return the WNAM ARMO of either the actor base or the actor's race Form Function GetActorBaseSkinForm(Actor akActor) native global ; Copy the base skin of one actor onto another as a skin override, similar to what LooksMenu does bool Function CopyActorBaseskinForm(Actor akSourceActor, Actor akDestActor) native global ; MFG morph function provided by EgoBallistic ; Apply a MFG Morph to the actor bool Function MfgMorph(Actor akActor, int morphID, int intensity) native global ; Set all MFG Morph values to zero on an actor bool Function MfgResetMorphs(Actor akActor) native global ; Save an actor's MFG Morph values to an array of float Float[] Function MfgSaveMorphs(Actor akActor) native global ; Restore an array of saved MFG morph values to an actor bool Function MfgRestoreMorphs(Actor akActor, Float[] values) native global ; Copy the MFG morph values from one actor to another bool Function MfgCopyMorphs(Actor a0, Actor a1) native global ; Apply a set of MFG morphs to an actor. Morph ID morphIDs[x] will be set to values[x] bool Function MfgApplyMorphSet(Actor akActor, int[] morphIDs, int[] values) native global ; Return an Actor's actor flags (not the same as the Form flags) Int Function GetActorFlags(Actor akActor) native global ; Reset an actor's persistent Essential / Protected data ; Calling Actor.SetEssential() overrides the actor base value. Changing the state on the actor base will no longer have any effect, and ; neither will the Essential flag on Aliases. This function resets the override so ActorBase and alias flags will work again. bool Function ResetActorEssential(Actor akActor) native global ; Sets an actor's position. Directly moves the ref so does not cause load screen if called on player Function SetActorPosition(Actor akActor, float x, float y, float z) native global ; Enable collisions for specific actor Function EnableActorCollision(Actor akActor) native global ; Disable collisions for specific actor Function DisableActorCollision(Actor akActor) native global ; Snap actor out of whatever interaction (furniture, etc) they are in Function ActorStopInteractingQuick(Actor akActor) native global ; Force AI package Function ActorSetPackageOverride(Actor akActor, Form pkg) native global ; Clear forced AI Package Function ActorClearPackageOverride(Actor akActor) native global ; Returns whether the actor is currently ignoring combat (e.g. due to package flags) Bool Function ActorGetIgnoringCombat(Actor akActor) native global ; Force the actor to ignore combat or not, overriding any package flags Function ActorSetIgnoringCombat(Actor akActor, Bool abIgnoreCombat) native global ; Update actor 3D equipment only (less expensive than QueueUpdate 0xC) Function ActorUpdateEquipment(Actor akActor) native global ; Update Player Character 3D Function PlayerUpdateEquipment() native global ; ; Collision functions ; =================== ; ; Set the collision state of a reference. Returns the previous state. TO BE TESTED _ currently fails. ;TBT; bool Function ObjectReferenceSetCollision(ObjectReference akObject, bool enable=True) native global ; Get the collision state of a reference. If akObject is None, return the global collision state (controlled by TCL). TO BE TESTED ;TBT; bool Function ObjectReferenceGetCollision(ObjectReference akObject) native global ; ; Cell Functions ; ============== ; ; Returns the number of references of type formType in cell. Use GetFormType() below for formType values. If formType is 0 this returns the count of all refs in the cell. Int Function GetNumRefsInCell(Cell akCell, Int formType) native global ; Returns nth reference of type formType in cell. If formType is 0 this returns the nth reference of any type. ObjectReference Function GetNthRefInCell(Cell akCell, Int index, Int formType) native global ; ; Misc. Form functions ; ==================== ; ; Returns the Editor ID of a Race. Originally GetFormEditorID, but passing in a form and using the F4SE function GetEditorID() has only worked on Quest and Race forms. So I've just made it for race forms only. String Function GetRaceEditorID(Race akForm) native global ; Returns the name of the plugin that created a form String Function OriginalPluginName(Form akForm) native global ; Returns the persistent ID of a form (excluding the load index) Should be compatible with esl files. (Fixed as of v18) Int Function OriginalPluginID(Form akForm) native global ; Returns whether a form is in a given leveled item list bool Function GetInLeveledItem(Leveleditem akList, Form akForm) native global ; Return a form's record flags Int Function GetRecordFlags(Form akForm) native global ; Return a form's formType Int Function GetFormType(Form akForm) native global ; Return whether form is persistent or not - updated in v51 Bool Function IsPersistent(Form akForm) native global ; Set a form persistent or not. Returns false if form does not exist - updated in v51 Bool Function SetPersistent(Form akForm, bool akFlag) native global ; Return an array of all the forms in a FormList Form[] Function FormListToArray(FormList akFormList) native global ; Return the form with the given formID from any type of plugin (esm, esl, esp) Form Function GetFormFromPlugin(String modName, Int formID) native global ; Return an array of forms given an array of plugin names and an array of form IDs Form[] Function GetFormArray(String[] modNames, Int[] formIDs) native global ; Given an array of FormID Ints that was packed as Var via VarArrayToVar(), return the array of corresponding forms Form[] Function GetFormArrayFromVar(Var akVar) native global ; Populate a formlist with the forms given an array of plugin names and a corresponding array of form IDs Function PopulateFormlist(FormList akFormList, String[] modNames, Int[] formIDs) native global ; ; AAF functions ; ============== ; ; Return an array of actors near akRef who qualify for AAF animations Actor[] Function AAF_PerformActorScan(ObjectReference akRef, float radius) native global ; Return the actor gender as seen by AAF Bool Function AAF_GetGender(Actor targetActor) native global ; Collects statistics on an actor for use by the Scaleform Var[] Function AAF_MakeActorData(Actor targetActor, Bool includeDistance, Keyword[] conditionKeywords) native global ; Collects statistics on location objects for use by the Scaleform Var[] Function AAF_MakeLocationData(ObjectReference target, Bool includeDistance = False) native global ; Returns whether an object is suitable for use as an animation location Bool Function AAF_IsValidLocation(ObjectReference targetLocation, Var[] actorGroup) native global ; Converts the internal representation of AAF's furniture list to an array of Forms as Var Var[] Function AAF_ProcessFurnitureList(Var[] akArgs) native global ; Returns an array of LocationData, packed as a Var, of all the valid locations for animations within the given radius from the scan location Var Function AAF_GetLocationData(int scanLocation, Var[] furnitureForms, Var[] furnitureSources, Var[] actorGroup, Bool quickScan, Float scanRadius) native global ; Returns whether an actor has any keywords in the blocked keywords list Bool Function AAF_GetBlockedStatus(Actor akActor) native global ; Returns whether an actor is valid for AAF use (not dead, not disabled/deleted, etc.) Bool Function AAF_IsValidActor(Actor akActor) native global ; Returns whether an actor is valid for use and not currently in an animation Bool Function AAF_IsAvailableActor(Actor akActor) native global ; ; Misc functions ; ============== ; ; Prints a message to the debug console. Exposes the internal F4SE function Console_Print using the code found in Papyrutil in Skyrim. bool Function PrintConsole(String text) native global ; Enable or disable blinking. Disabling allows MFG morphs to work on eyelids (morph ID 18 and 41) Function SetAllowBlinking(Bool allowed) native global ; ; HIDDEN Functions. Never call directly. ; ; hidden function, use ResizeVarArray instead Var[] Function ResizeVarArrayInternal(Var[] theArray, int theSize, Var theFill) native global ; ; Wav function (by Fedim) ; ; Plays a WAV file. FileName relative to "Data\Sound\Voice\" ; Option is possible "Data\Sound\Voice\MyPlugin\sound001.wav" Function PlaySoundWav(string FileName) native global ; Returns the current volume level of the player (-1 = 0xFFFFFFFF -> max) ; LowWord - left channel volume ; HeighWorg - right channel volume ; 0 <= volume <= 65535 (0xFFFF) int Function GetVolumeWav() native global ; Sets the volume of the player channels ; 0 <= volume <=65535 (0xFFFF) int Function SetVolumeWav(int volumeA, int volumeB) native global ; Randomly selects a line from the SectionText section of the "Data\F4SE\Plugins\PluginName.ini" file, plays the WAV and returns the text ; ini file must be UTF-8 encoded ; Sounds should be in the "Data\Sound\Voice\PluginName.esp\" String Function VoiceMessage(String PluginName, String SectionText) native global ; ; INI setting functions ; ===================== ; ; Functions to retrieve INI settings, e.g. Fallout4.ini, Fallout4Prefs.ini, Fallout4Custom.ini, mod .ini files in Data folder ; These functions retrieve the settings from the game engine, not from the INI files themselves. ; Parameter is the .ini setting name and section, fSettingName:SectionName. For example, fMinCurrentZoom:Camera ; Note that typing is strict, e.g. you cannot call GetINIFloat on an Int setting ; ; Return Float setting value or 0.0 if not found float Function GetINIFloat(string ini) native global ; Return Int setting value or 0 if not found int Function GetINIInt(string ini) native global ; Return Bool setting value or false if not found Bool Function GetINIBool(string ini) native global ; Return String setting value or NONE if not found String Function GetINIString(string ini) native global ; ; Animation functions ; =================== ; ; Functions to play animations on actors. They do basic sanity checking on the inputs so that None idles and actors, ; actors who are deleted or disabled, and actors with no AI middle process will not attempt to play idles. ; ; Make one actor play an idle Function PlayIdle(Actor akActor, Form akIdle) native global ; Make an array of actors play a corresponding array of idles, in synch Function PlayMultipleIdles(Actor[] akActor, Form[] akIdle) native global ; Stop the actor's current idle Function StopCurrentIdle(Actor akActor) native global Looks like I delteted the list of updates Well the first post is a lot shorter now. Also there is now a GitHub site to host the sources for this and other tools of mine at https://github.com/Lkdb5RDr v52-20240902 is a hotfix for v52-20240821 v53-20250105 fixes loading in fallout 1.10.163. v54-20250330 Hotfix for issue describe on March 30th by EgoBallistic v55 : deleted. v56 for 1.11.137.0 v57-20251120 adds support for Game version 1.11.159.0 (~AE Hotfix) paired with F4SE 0.7.5. Maintains support with 1.10.163.0, 1.10.984.0 and 1.11.137.0 (temporary) Tested successfully with basic functionality. v58-20251126: Adds support for Fallout v1.11.169.0 and F4SE 0.7.6. v59 for Fallout 1.11.191.0 and F4SE 0.7.8 v60 : - Compatible with game version 1.11.221.0 (and F4SE 0.7.8) - Corrected an issue with SetFlyCamSpeedMult in all versions but 1.10.984.0 since that game version was available. -
[Dev/Test/Beta] LL FourPlay community F4SE plugin View File Scriptname LL_FourPlay Native Hidden ; ; Shared community library of utility function from LoverLab distributed with FourPlay resources as a F4SE plugin with sources included ; ; Version 52 for runtime 1.10.984 2024 08 19 by jaam and Chosen Clue and EgoBallistic and Fedim ; Runtime version: This file should be runtime neutral. The accompanying F4SE plugin (ll_fourplay_1_10_984.dll) is NOT! ; You need to always use a plugin corresponding with the game version you play. ; Plugin should be available just after F4SE has been updated for the modified runtime. ; Runtime versions lower than 1.10.984 will no longer be supported. ; Written and tested against F4SE 0.7.2. You should not use an older version of F4SE. ; ; ; ; Returns the version of this script (when someone has not forgotten to update it :) ) Float Function GetLLFPScriptVersion() global return 52.0 endFunction ; Returns the version of the plugin and servers to verify it is properly installed. Float Function GetLLFPPluginVersion() native global ; Custom profile: written into "Data\F4SE\Plugins" ; =============== ; Returns the full path for custom profile name. IE "WhereverYourGameIs\Data\F4SE\Plugins\name". Don't forget to provide the .ini extension. string Function GetCustomConfigPath(string name) native global ; Get the value of custom config string option string Function GetCustomConfigOption(string name, string section, string key) native global ; Get the value of custom config integer option (Use 0/1 for boolean) int Function GetCustomConfigOption_UInt32(string name, string section, string key) native global ; Get the value of custom config float option Float Function GetCustomConfigOption_float(string name, string section, string key) native global ; Sets the value of custom config string option (at most 66535 characters per option). The directories and path will be created as needed. If the result is false, the set did not happen. bool Function SetCustomConfigOption(string name, string section, string key, string value) native global ; Sets the value of custom config integer option. The directories and path will be created as needed. If the result is false, the set did not happen. bool Function SetCustomConfigOption_UInt32(string name, string section, string key, int data) native global ; Sets the value of custom config float option. The directories and path will be created as needed. If the result is false, the set did not happen. bool Function SetCustomConfigOption_float(string name, string section, string key, float data) native global ; Get all the keys and values contained in a section. Both at once to avoid discrepancies in the order. ; The keys are in VarToVarArray(Var[0]) as String[] and the values in VarToVarArray(Var[1]) as String[] Var[] Function GetCustomConfigOptions(string fileName, string section) native global ; Set a list of keys and values in a section. Any other existing key will be left alone. bool Function SetCustomConfigOptions(string fileName, string section, string[] keys, string[] values) native global ; Reset all the keys and values contained in a section. ; Any exiting key value pair will be suppressed first, so providing none arrays will effectivly removes all keys from the section. bool Function ResetCustomConfigOptions(string fileName, string section, string[] keys, string[] values) native global ; Get all the sections in a file. string[] Function GetCustomConfigSections(string fileName) native global ; For all array functions: ; The implementation as an arbitrary limitation of 32767 bytes buffer for all Keys, Values or sections involved. ; If needed because the limitation becomes a problem, another implementation can be done using memory allocation, though there will remain a limit imposed by Windows. ; When arrays for keys and values are provided, the count of elements in both arrays must be identical or the function fails on purpose. ; An empty value should be provided as a zero length string. TO BE TESTED ; ; Camera functions ; ================ ; ; Forces the FlyCam state. ; if activate is true and the FlyCam is not active AND the FXCam is not active either, the FlyCam will be activated. ; if activate is false and the FlyCam is active, the FlyCam will be deactivated. ; if the requested state is identical to the current state nothing is done. ; Returns whether the FlyCam was active or not before the call so mods can restore the previous state if needed. bool Function SetFlyCam(bool activate) native global ; TO BE TESTED ; Forces the FlyCam state. Alternative version that allows to pause/unpause the game when entering FlyCam ; if activate is true and the FlyCam is not active AND the FXCam is not active either, the FlyCam will be activated. ; if pause then the game will be paused ; if activate is false and the FlyCam is active, the FlyCam will be deactivated. ; otherwise if the requested activate is identical to the current state nothing is done. ; Returns whether the FlyCam was active or not before the call so mods can restore the previous state if needed. ;TBT; bool Function SetFlyCam2(bool activate, bool pause) native global ; TO BE TESTED - So far this is useless as scripts seem to be stopped while in pause mode :( ; Get the current state of the FlyCam bool Function GetFlyCam() native global ; Get the current pause state of the game bool Function GetPaused() native global ; Get the current state of the FXCam bool Function GetFXCam() native global ; Select the speed at which the FlyCam moves (identical to SetUFOCamSpeedMult/sucsm console command) ; The console command supports an optional second parameter to control rotation speed. ; The way it handles default value is not compatible so I use an explicit bool to select which speed to change ; Returns the previous value of the selected speed. float Function SetFlyCamSpeedMult(float speed, bool rotation=False) native global ; ; Power Armor/Race/Skeleton functions ; =================================== ; ; Returns the actor's race when in PowerArmor Race Function GetActorPowerArmorRace(Actor akActor) native global ; Returns the actor's skeleton when in PowerArmor string Function GetActorPowerArmorSkeleton(Actor akActor) native global ; Returns the actor's current skeleton, not affected by PowerArmor string Function GetActorSkeleton(Actor akActor) native global ;Chosen Clue Edit ; ; String functions ; ================ ; ; Returns the first index of the position the toFind string starts. You can use this to check if an animation has a tag on it. Is not case sensitive. Int Function StringFind(string theString, string toFind, int startIndex = 0) native global ; Returns the selected substring from theString. If no length is set, the entire string past the startIndex number is returned. string Function StringSubstring(string theString, int startIndex, int len = 0) native global ; Splits the string into a string array based on the delimiter given in the second parameter. ; As this function does ignore whitespace, putting a space as the delimiter will only result in a string being returned without spaces. string[] Function StringSplit(string theString, string delimiter = ",") native global ; Opposite of StringSplit. string Function StringJoin(string[] theStrings, string delimiter = ",") native global ; Converts an integer of any base to a hexadecimal string representation string Function IntToHexString(Int num) native global ; Converts a hexadecimal string to an integer Int Function HexStringToInt(String theString) native global ; ; Array functions ; =============== ; ;Just a precursor: This does not mean we can use Alias based scripts to store animations like sexlab does, as the F4SE team has yet to include a typedef of them in the F4SE CPP files. I am guessing that they haven't reverse engineered it yet. Form[] Function ResizeFormArray(Form[] theArray, int theSize, Form theFill = NONE) native global String[] Function ResizeStringArray(String[] theArray, int theSize, String theFill = "") native global Int[] Function ResizeIntArray(Int[] theArray, int theSize, Int theFill = 0) native global Float[] Function ResizeFloatArray(Float[] theArray, int theSize, Float theFill = 0.0) native global Bool[] Function ResizeBoolArray(Bool[] theArray, int theSize, Bool theFill = False) native global Var[] Function ResizeVarArray2(Var[] theArray, int theSize) native global Var[] Function ResizeVarArray(Var[] theArray, int theSize) global ; Because filling with invalid values will CTD ; Bugged for any version prior to 14 ; theFill will be ignored, but kept for compatibility. Anyway nobody used it ever as it would have CTD. Please use ResizeVarArray2 Int theFill = 0 return ResizeVarArrayInternal(theArray, theSize, theFill) endFunction ; if the int theSize is negative, the resulting array is a copy of the original array unchanged. ; Sets the minimum array size required by a mod. Returns false if the current value was greater. Bool Function SetMinimalMaxArraySize(int theMaxArraySize) native global ; This patches ArrayAdd and ArrayInsert so they respect that maximum. The value is memorised in ToolLib.ini ;[Custom Arrays] ;uMaxArraySize=nnnnnn ; ; !! Creating arrays that are too large will adversaly affect your game !! ; ; Keyword functions ; ================= ; ; Return the first keyword whose editorID is akEditorID Keyword Function GetKeywordByName(string akEditorID) native global ; Adds a keyword to a form (not only a reference). Does not persists. bool Function AddKeywordToForm(Form akForm, Keyword akKeyword) native global ; Delete a keyword from a form (not only a reference). Does not persists. bool Function DelKeywordFromForm(Form akForm, Keyword akKeyword) native global ; Return an array of all keywords loaded in game. Keyword[] Function GetAllKeywords() native global ; ; CrossHair functions ; ==================== ; ; Returns the Reference that is currently under the CrossHair. Returns None if there isn't one currently. ObjectReference Function LastCrossHairRef() native global ; Returns the last Actor that is or was under the CrossHair. Returns None until there is one since the game was (re)started. Actor Function LastCrossHairActor() native global ; ; ObjectReference functions ; ========================= ; ; Set the reference display name as a string without token. TO BE TESTED bool Function ObjectReferenceSetSimpleDisplayName(ObjectReference akObject, string displayName) native global ; Sets reference angle in degrees. Will not cause load screen if called on Player Function SetRefAngle(ObjectReference akRef, float x, float y, float z) native global ; Sets no-collision state on reference Function SetRefNoCollision(ObjectReference akRef, bool abState) native global ; Get the scale of a reference Float Function GetScale(ObjectReference akRef) native global ; Set the scale of a reference Function SetScale(ObjectReference akRef, Float afScale) native global ; ; Actor functions ; =============== ; ; Check if the ActorBase has a specific skin. TO BE TESTED bool Function ActorBaseIsClean(Actor akActor) native global ; Return the WNAM ARMO of either the actor base or the actor's race Form Function GetActorBaseSkinForm(Actor akActor) native global ; Copy the base skin of one actor onto another as a skin override, similar to what LooksMenu does bool Function CopyActorBaseskinForm(Actor akSourceActor, Actor akDestActor) native global ; MFG morph function provided by EgoBallistic ; Apply a MFG Morph to the actor bool Function MfgMorph(Actor akActor, int morphID, int intensity) native global ; Set all MFG Morph values to zero on an actor bool Function MfgResetMorphs(Actor akActor) native global ; Save an actor's MFG Morph values to an array of float Float[] Function MfgSaveMorphs(Actor akActor) native global ; Restore an array of saved MFG morph values to an actor bool Function MfgRestoreMorphs(Actor akActor, Float[] values) native global ; Copy the MFG morph values from one actor to another bool Function MfgCopyMorphs(Actor a0, Actor a1) native global ; Apply a set of MFG morphs to an actor. Morph ID morphIDs[x] will be set to values[x] bool Function MfgApplyMorphSet(Actor akActor, int[] morphIDs, int[] values) native global ; Return an Actor's actor flags (not the same as the Form flags) Int Function GetActorFlags(Actor akActor) native global ; Reset an actor's persistent Essential / Protected data ; Calling Actor.SetEssential() overrides the actor base value. Changing the state on the actor base will no longer have any effect, and ; neither will the Essential flag on Aliases. This function resets the override so ActorBase and alias flags will work again. bool Function ResetActorEssential(Actor akActor) native global ; Sets an actor's position. Directly moves the ref so does not cause load screen if called on player Function SetActorPosition(Actor akActor, float x, float y, float z) native global ; Enable collisions for specific actor Function EnableActorCollision(Actor akActor) native global ; Disable collisions for specific actor Function DisableActorCollision(Actor akActor) native global ; Snap actor out of whatever interaction (furniture, etc) they are in Function ActorStopInteractingQuick(Actor akActor) native global ; Force AI package Function ActorSetPackageOverride(Actor akActor, Form pkg) native global ; Clear forced AI Package Function ActorClearPackageOverride(Actor akActor) native global ; Returns whether the actor is currently ignoring combat (e.g. due to package flags) Bool Function ActorGetIgnoringCombat(Actor akActor) native global ; Force the actor to ignore combat or not, overriding any package flags Function ActorSetIgnoringCombat(Actor akActor, Bool abIgnoreCombat) native global ; Update actor 3D equipment only (less expensive than QueueUpdate 0xC) Function ActorUpdateEquipment(Actor akActor) native global ; Update Player Character 3D Function PlayerUpdateEquipment() native global ; ; Collision functions ; =================== ; ; Set the collision state of a reference. Returns the previous state. TO BE TESTED _ currently fails. ;TBT; bool Function ObjectReferenceSetCollision(ObjectReference akObject, bool enable=True) native global ; Get the collision state of a reference. If akObject is None, return the global collision state (controlled by TCL). TO BE TESTED ;TBT; bool Function ObjectReferenceGetCollision(ObjectReference akObject) native global ; ; Cell Functions ; ============== ; ; Returns the number of references of type formType in cell. Use GetFormType() below for formType values. If formType is 0 this returns the count of all refs in the cell. Int Function GetNumRefsInCell(Cell akCell, Int formType) native global ; Returns nth reference of type formType in cell. If formType is 0 this returns the nth reference of any type. ObjectReference Function GetNthRefInCell(Cell akCell, Int index, Int formType) native global ; ; Misc. Form functions ; ==================== ; ; Returns the Editor ID of a Race. Originally GetFormEditorID, but passing in a form and using the F4SE function GetEditorID() has only worked on Quest and Race forms. So I've just made it for race forms only. String Function GetRaceEditorID(Race akForm) native global ; Returns the name of the plugin that created a form String Function OriginalPluginName(Form akForm) native global ; Returns the persistent ID of a form (excluding the load index) Should be compatible with esl files. (Fixed as of v18) Int Function OriginalPluginID(Form akForm) native global ; Returns whether a form is in a given leveled item list bool Function GetInLeveledItem(Leveleditem akList, Form akForm) native global ; Return a form's record flags Int Function GetRecordFlags(Form akForm) native global ; Return a form's formType Int Function GetFormType(Form akForm) native global ; Return whether form is persistent or not - updated in v51 Bool Function IsPersistent(Form akForm) native global ; Set a form persistent or not. Returns false if form does not exist - updated in v51 Bool Function SetPersistent(Form akForm, bool akFlag) native global ; Return an array of all the forms in a FormList Form[] Function FormListToArray(FormList akFormList) native global ; Return the form with the given formID from any type of plugin (esm, esl, esp) Form Function GetFormFromPlugin(String modName, Int formID) native global ; Return an array of forms given an array of plugin names and an array of form IDs Form[] Function GetFormArray(String[] modNames, Int[] formIDs) native global ; Given an array of FormID Ints that was packed as Var via VarArrayToVar(), return the array of corresponding forms Form[] Function GetFormArrayFromVar(Var akVar) native global ; Populate a formlist with the forms given an array of plugin names and a corresponding array of form IDs Function PopulateFormlist(FormList akFormList, String[] modNames, Int[] formIDs) native global ; ; AAF functions ; ============== ; ; Return an array of actors near akRef who qualify for AAF animations Actor[] Function AAF_PerformActorScan(ObjectReference akRef, float radius) native global ; Return the actor gender as seen by AAF Bool Function AAF_GetGender(Actor targetActor) native global ; Collects statistics on an actor for use by the Scaleform Var[] Function AAF_MakeActorData(Actor targetActor, Bool includeDistance, Keyword[] conditionKeywords) native global ; Collects statistics on location objects for use by the Scaleform Var[] Function AAF_MakeLocationData(ObjectReference target, Bool includeDistance = False) native global ; Returns whether an object is suitable for use as an animation location Bool Function AAF_IsValidLocation(ObjectReference targetLocation, Var[] actorGroup) native global ; Converts the internal representation of AAF's furniture list to an array of Forms as Var Var[] Function AAF_ProcessFurnitureList(Var[] akArgs) native global ; Returns an array of LocationData, packed as a Var, of all the valid locations for animations within the given radius from the scan location Var Function AAF_GetLocationData(int scanLocation, Var[] furnitureForms, Var[] furnitureSources, Var[] actorGroup, Bool quickScan, Float scanRadius) native global ; Returns whether an actor has any keywords in the blocked keywords list Bool Function AAF_GetBlockedStatus(Actor akActor) native global ; Returns whether an actor is valid for AAF use (not dead, not disabled/deleted, etc.) Bool Function AAF_IsValidActor(Actor akActor) native global ; Returns whether an actor is valid for use and not currently in an animation Bool Function AAF_IsAvailableActor(Actor akActor) native global ; ; Misc functions ; ============== ; ; Prints a message to the debug console. Exposes the internal F4SE function Console_Print using the code found in Papyrutil in Skyrim. bool Function PrintConsole(String text) native global ; Enable or disable blinking. Disabling allows MFG morphs to work on eyelids (morph ID 18 and 41) Function SetAllowBlinking(Bool allowed) native global ; ; HIDDEN Functions. Never call directly. ; ; hidden function, use ResizeVarArray instead Var[] Function ResizeVarArrayInternal(Var[] theArray, int theSize, Var theFill) native global ; ; Wav function (by Fedim) ; ; Plays a WAV file. FileName relative to "Data\Sound\Voice\" ; Option is possible "Data\Sound\Voice\MyPlugin\sound001.wav" Function PlaySoundWav(string FileName) native global ; Returns the current volume level of the player (-1 = 0xFFFFFFFF -> max) ; LowWord - left channel volume ; HeighWorg - right channel volume ; 0 <= volume <= 65535 (0xFFFF) int Function GetVolumeWav() native global ; Sets the volume of the player channels ; 0 <= volume <=65535 (0xFFFF) int Function SetVolumeWav(int volumeA, int volumeB) native global ; Randomly selects a line from the SectionText section of the "Data\F4SE\Plugins\PluginName.ini" file, plays the WAV and returns the text ; ini file must be UTF-8 encoded ; Sounds should be in the "Data\Sound\Voice\PluginName.esp\" String Function VoiceMessage(String PluginName, String SectionText) native global ; ; INI setting functions ; ===================== ; ; Functions to retrieve INI settings, e.g. Fallout4.ini, Fallout4Prefs.ini, Fallout4Custom.ini, mod .ini files in Data folder ; These functions retrieve the settings from the game engine, not from the INI files themselves. ; Parameter is the .ini setting name and section, fSettingName:SectionName. For example, fMinCurrentZoom:Camera ; Note that typing is strict, e.g. you cannot call GetINIFloat on an Int setting ; ; Return Float setting value or 0.0 if not found float Function GetINIFloat(string ini) native global ; Return Int setting value or 0 if not found int Function GetINIInt(string ini) native global ; Return Bool setting value or false if not found Bool Function GetINIBool(string ini) native global ; Return String setting value or NONE if not found String Function GetINIString(string ini) native global ; ; Animation functions ; =================== ; ; Functions to play animations on actors. They do basic sanity checking on the inputs so that None idles and actors, ; actors who are deleted or disabled, and actors with no AI middle process will not attempt to play idles. ; ; Make one actor play an idle Function PlayIdle(Actor akActor, Form akIdle) native global ; Make an array of actors play a corresponding array of idles, in synch Function PlayMultipleIdles(Actor[] akActor, Form[] akIdle) native global ; Stop the actor's current idle Function StopCurrentIdle(Actor akActor) native global Looks like I delteted the list of updates Well the first post is a lot shorter now. Also there is now a GitHub site to host the sources for this and other tools of mine at https://github.com/Lkdb5RDr v52-20240902 is a hotfix for v52-20240821 v53-20250105 fixes loading in fallout 1.10.163. v54-20250330 Hotfix for issue describe on March 30th by EgoBallistic v55 : deleted. v56 for 1.11.137.0 v57-20251120 adds support for Game version 1.11.159.0 (~AE Hotfix) paired with F4SE 0.7.5. Maintains support with 1.10.163.0, 1.10.984.0 and 1.11.137.0 (temporary) Tested successfully with basic functionality. v58-20251126: Adds support for Fallout v1.11.169.0 and F$SE 0.7.6. Submitter jaam Submitted 07/22/17 Category Modders Resources Requirements Fallout 4 version 1.11.159.0 or 1.11.137.0 or 1.10.984.0 or 1.10.163 only. Use the correct related F4SE
-
Version 2.3
197448 downloads
Real-Time Body Physics is a highly experimental mod for the Sims 4 that attempts to add real-time body physics to sims. Currently, only the breasts and butt are targeted, but other parts could be added in the future. The mod works via a fake DirectX DLL that behaves just like the real deal, but injects a little extra code into the rendering loop (See: https://en.wikipedia.org/wiki/Hooking). Please read the included "ReadMe.html" file before using this mod. It explains how to install, configure, and control the mod in-game. RTBP 11 (DirectX 11): RTBP for DirectX 11 is now available. You can expect all functionality from the DirectX 9 version in RTBP11, but the better performance of the Sims 4's newer DirectX 11 renderer. https://streamable.com/0ukdjd Be warned that it is a little buggy compared to the DirectX 9 version, but things should improve with time. DirectX 11 is quite a bit more complicated than DirectX 9, so getting everything working has been more of an ordeal. Most of the bugs are very minor, small visual glitches while everything else appears to be solid as a rock. That being said, don't forget to save often and backup your save games. Hopefully the small visual bugs aren't deal breakers for most of you. If they are, you can eliminate almost all of them by disabling butt physics. If you haven't used the internal GUI yet, try it out in game by pressing F11. The internal GUI will eventually replace the Commander, but for the time being both can be used to tweak RTBP to your liking. To avoid confusion, I'm calling this release RTBP v2.0. That way you'll know that and RTBP release with a version number of 2.0 and above is the DirectX 11 version and anything below is DirectX 9. Known Issues: * For some meshes, one of the butt cheeks looks deflated and sags downward. * Some sims glich out and their geometry shoots out in random directions. * Sims might look a little weird in the portrait images. * Probably more. These issues ought to be fixed in time. Let me know if you have any problems. Please enjoy and have a happy new year. Real-Time Body Physics Experimental Builds Fixing bugs can be difficult, especially when you can't reproduce the error that has befallen so many users. If you're up for it, try out an experimental build in testing and report your findings in the support thread. 2026-05-04: Built with Clang-CL. RTBP v2.2~4 2026-05-04 (Clang-CL).zip RTBP Legacy (DirectX 9, Depreciated): The DirectX 9 version of RTBP has been superseded by the DirectX 11 version and is no longer being developed. Use the DirectX 9 version only if you have to. RTBP v0.4-p8 2024-04-12.zip Note for those with an Intel GPU: You'll need to tweak a Sims 4 configuration file for RTBP to work. Go to your game installation directory + "/Game/Bin/" (the same place you put "d3d9.dll"), and open the file "GraphicsRules.sgr". Find the line that says "setProp $ConfigGroup EnableSoftwareSkinning true" (for me it was on line 117) and replace the part that says "true" to "false". This will enable hardware skinning for Intel hardware and allow RTBP to work. Note on DirectX 11: A recent update added DirectX 11 support to the Sims 4. RTBP was designed around the original version of the game that uses DirectX 9. For RTBP to function, the D3D9 version of the game needs to be used (D3D11 support is coming). To explicitly launch the D3D9 version of the Sims 4, find your installation directory and execute "...\Game\Bin\TS4_DX9_x64.exe". You can also choose to switch to the D3D9 version of the game in the game options. RTBP 2020-08-12.webm Butt Physics.webm RTBP 2020-08-12.webm Bonus: If you'd like, you can try out the super duper, highly experimental, RTBP GUI tool that allows you to Alt+Tab out of the game and change settings on the fly via the RTBP Command Server using a user friendly GUI interface: * Screenshot is out of date. The RTBP GUI Tool is a work in progress and more features will be added soon. Beware that you can send values to RTBP that might break it and cause body parts to disappear. RTBP GUI Preview Breasts.webm RTBP GUI Preview Ass.webm RTBP GUI Preview Breasts.webm Bonus 2: Having a bit of trouble installing RTBP? Try out the RTBP installer. Just select the RTBP zip file you'd like to install, your Sims 4 installation directory, and your Sims 4 mods directory. The RTBP Installer will attempt to automatically detect these paths, so if you're unsure, I recommend going with the default values. Update 2023-11-11: The new versions of the RTBP Commander and Installer have been bundled to save space. Note that this version of the installer is incompatible with older versions of RTBP. Download both of them here: Update 2023-04-01: Origin has been depreciated and replaced with the EA App. The RTBP installer will no longer look for your Sims 4 installation in the Origin game directory. Update 2023-03-24: Added the EA App game installation directory to the list of potential Sims 4 game installation directories. The requisite libraries required for RTBP to function will be individually tested during installation. Update 2022-08-13: The RTBP Installer should now detect when GShade is installed and make the changes necessary for RTBP compatibility. Update 2022-07-26: Improved logging. Update 2021-11-18: The RTBP Installer now has an uninstallation wizard. Bonus 3: Looking for a more bleeding edge version of RTBP? Download the latest preview and/or experimental release here. These releases need to be manually installed, so they're for more advanced users. Documentation and script mods aren't typically included with these: RTBP v0.4-p9-e3 2025-12-11.zip RTBP GUI Tools 2026-03-04.zip- 14 reviews
-
394
-
- experimental
- boobs
-
(and 2 more)
Tagged with:
-
Version 1.3.3
1053 downloads
TRANSLATE! Its Movie Time| ВРЕМЯ КИНО от TANK |18+| RU добавлен перевод для PATREON-версии⭐) https://boosty.to/pussybattlesad/posts/9150938d-57fb-4625-ab27-b8a309ab2419 ‼️ТРЕБУЕТСЯ:Дополнение "Жизнь в городе" TanksMods Mod Central (переведено) Предпочтения от TANK (переведено) https://www.patreon.com/posts/custom-sim-2-1-3-115045096 The Custom Preferences от Zebru https://clck.ru/3LPeBU СКАЧАТЬ МОД: СКАЧАТЬ 💾КОЛЛЕКЦИИ ДИСКОВ: БОЛЬШЕ МОИХ ПЕРЕВОДОВ https://vk.com/topic-212181903_49580210-
3
-
- tank
- itsmovietime
- (and 14 more)
-
View File Dynamic Traps SE (WIP) New in 0.2: Death Worms and Mimics from Traps NTR(Need Trappy Reality). Spawn traps in dungeons at random locations. Some traps can appear at chokepoints (doorways, narrow corridors), while others - on random walkable surfaces. Optional integration with Deviously Cursed Loot, Skyrim Chain Beasts, Devious Curses NG - activating a trap can trigger events from these mods. Mod in incomplete, I would like to test its core mechanics before adding new stuff. Available Traps: 1) Fire, Frost and Shock Rune - spawns on the ground, behaves like vanilla runes. Can be disarmed by firing a spell from safe distance. Can appear in narrow corridors and basically anywhere as long as the area has NavMesh. 2) Tripwire - spawns in doorways, in front of doors and narrow corridors. Can be disarmed by firing a spell or manually activating it (Warning: will still trigger a Basic Event). 3) Death Worm - Requires "Traps NTR(Need Trappy Reality)" and "Dynamic traps - TNTR addon.esp" to be installed. A giant worm hides in the ground. Can spawn in narrow corridors, similar to tripwires. Triggers when walking over it. 4) Mimic Chest - Requires "Traps NTR(Need Trappy Reality)" and "Dynamic traps - TNTR addon.esp" to be installed. A mimic that replaces large boss chests. Grabs Player when activated or when mad. more to come Trigger Events Trigger Events - events that fire when a trap is activated. NPCs and Followers can trigger only Basic Events - damaging explosions and poking spikes. Available Events for the Player depend on installed mods and settings. Basic Events - explosions and spears poking through the ground, similar to what vanilla traps do. Deviously Cursed Loot Events - requires Deviously Cursed Loot to be installed - will start an event as if the Player opened a cursed chest. Deviously Cursed Loot will choose what happens based on it settings. Chain Beasts - requires Skyrim Chain Beasts to be installed - will spawn a number of random Chain Beasts, pretty self-explanatory. Devious Curses - requires Devious Curses NG to be installed - will trigger a random Event. Special trap description Death Worms Death Worms can be spotted by a large pile of dirt on the ground. They will attack anyone that steps on it. Two possible outcomes: 1) Death Worm will emerge from the ground and push away its target while dealing damage. Works on Player and NPCs; 2) Death Worm grabs its victim and starts a QTE Struggle Event; Death Worm can be tricked into emerging by strafing left and right in front of the dirt pile. When it appears, damage the Worm with a spell to force it into hiding for a few minutes. Mimics Mimics replace large boss chests and will grab Player when they try to open it. To open a chest safely you need to appease the Mimic by giving it a treat. There are 3 types of Mimics that prefer different offerings: Meat dishes, Alcohol and Sweet Rolls. Drop a treat in front of the Mimic and if it's the right type of item, Mimic will gobble it up. If satisfied, Mimic won't attack when you click on it and will let you access the chest it's replacing. Although Mimics prefer different treats there is a certain item adored by all Mimics. Panties. Offering this specific item will satisfy any Mimic and will grant you rewards. QTE Struggle Event Being grabbed by Mimics and Death Worms will start a QTE Event. Fill the Struggle Bar by sequentially pressing the keys shown above the Bar. For example, A-D-A-D-A-D. Fill amount depends on your current Stamina Percentage. Struggling with full Stamina Bar is much more effective. Press and hold Left Shift to replenish Stamina, but deplete Struggle Bar. Pressing correct keys consecutively will grant you a small bonus to fill amount. Hitting the wrong key will reset this bonus. Struggle Bar passively depletes over time with increasing speed. Mimics will also damage your Magicka. Once Magicka is fully depleted, Mimic will cast a shock spell that will deplete some amount of your Stamina. Issues Some traps might will spawn at weird locations - inaccessible areas, under furniture or being partially submerged underground making them hard to notice. This happens because we are not spawning traps at pre-determined placed - I'm not placing traps manually in every cell. Dynamic Traps analyses dungeons and their NavMeshes, looks for specific items and structures, and tries to calculate suitable locations for traps. Unfortunately, technical limitations make it complicated to check for all possible circumstances. I will continue to look for ways to improve calculation methods, but there will always be some level of imperfection. Compatibility 1) To prevent breaking other mods, Dynamic Traps won't spawn or trigger traps if the Player is considered to be enslaved by ZaZAnimationPack. 2) Mimic are incompatible will O.M.N.O.M.S. Both mods are basically doing the same thing. If you would like to use O.M.N.O.M.S. than set the Mimic spawn chance in Dynamic Traps MCM to 0. Future plans 1) Bug fixes, obviously; 2) More trap variations - vanilla frost and shock Runes, explosive gas trap; 3) Optional integration of Traps NTR, specifically Skeleton trap, Snare rope and Worms; SKSE Source Code (for mod makers): Submitter AndrewLRG Submitted 12/14/25 Category Regular Mods Requirements PapyrusUtil, Address Library for SKSE Plugins Regular Edition Compatible No Install Instructions
-
Version 0.2.3
3782 downloads
New in 0.2: Death Worms and Mimics from Traps NTR(Need Trappy Reality). Spawn traps in dungeons at random locations. Some traps can appear at chokepoints (doorways, narrow corridors), while others - on random walkable surfaces. Optional integration with Deviously Cursed Loot, Skyrim Chain Beasts, Devious Curses NG - activating a trap can trigger events from these mods. Mod in incomplete, I would like to test its core mechanics before adding new stuff. Available Traps: 1) Fire, Frost and Shock Rune - spawns on the ground, behaves like vanilla runes. Can be disarmed by firing a spell from safe distance. Can appear in narrow corridors and basically anywhere as long as the area has NavMesh. 2) Tripwire - spawns in doorways, in front of doors and narrow corridors. Can be disarmed by firing a spell or manually activating it (Warning: will still trigger a Basic Event). 3) Death Worm - Requires "Traps NTR(Need Trappy Reality)" and "Dynamic traps - TNTR addon.esp" to be installed. A giant worm hides in the ground. Can spawn in narrow corridors, similar to tripwires. Triggers when walking over it. 4) Mimic Chest - Requires "Traps NTR(Need Trappy Reality)" and "Dynamic traps - TNTR addon.esp" to be installed. A mimic that replaces large boss chests. Grabs Player when activated or when mad. more to come Trigger Events Trigger Events - events that fire when a trap is activated. NPCs and Followers can trigger only Basic Events - damaging explosions and poking spikes. Available Events for the Player depend on installed mods and settings. Basic Events - explosions and spears poking through the ground, similar to what vanilla traps do. Deviously Cursed Loot Events - requires Deviously Cursed Loot to be installed - will start an event as if the Player opened a cursed chest. Deviously Cursed Loot will choose what happens based on it settings. Chain Beasts - requires Skyrim Chain Beasts to be installed - will spawn a number of random Chain Beasts, pretty self-explanatory. Devious Curses - requires Devious Curses NG to be installed - will trigger a random Event. Special trap description Death Worms Death Worms can be spotted by a large pile of dirt on the ground. They will attack anyone that steps on it. Two possible outcomes: 1) Death Worm will emerge from the ground and push away its target while dealing damage. Works on Player and NPCs; 2) Death Worm grabs its victim and starts a QTE Struggle Event; Death Worm can be tricked into emerging by strafing left and right in front of the dirt pile. When it appears, damage the Worm with a spell to force it into hiding for a few minutes. Mimics Mimics replace large boss chests and will grab Player when they try to open it. To open a chest safely you need to appease the Mimic by giving it a treat. There are 3 types of Mimics that prefer different offerings: Meat dishes, Alcohol and Sweet Rolls. Drop a treat in front of the Mimic and if it's the right type of item, Mimic will gobble it up. If satisfied, Mimic won't attack when you click on it and will let you access the chest it's replacing. Although Mimics prefer different treats there is a certain item adored by all Mimics. Panties. Offering this specific item will satisfy any Mimic and will grant you rewards. QTE Struggle Event Being grabbed by Mimics and Death Worms will start a QTE Event. Fill the Struggle Bar by sequentially pressing the keys shown above the Bar. For example, A-D-A-D-A-D. Fill amount depends on your current Stamina Percentage. Struggling with full Stamina Bar is much more effective. Press and hold Left Shift to replenish Stamina, but deplete Struggle Bar. Pressing correct keys consecutively will grant you a small bonus to fill amount. Hitting the wrong key will reset this bonus. Struggle Bar passively depletes over time with increasing speed. Mimics will also damage your Magicka. Once Magicka is fully depleted, Mimic will cast a shock spell that will deplete some amount of your Stamina. Issues Some traps might will spawn at weird locations - inaccessible areas, under furniture or being partially submerged underground making them hard to notice. This happens because we are not spawning traps at pre-determined placed - I'm not placing traps manually in every cell. Dynamic Traps analyses dungeons and their NavMeshes, looks for specific items and structures, and tries to calculate suitable locations for traps. Unfortunately, technical limitations make it complicated to check for all possible circumstances. I will continue to look for ways to improve calculation methods, but there will always be some level of imperfection. Compatibility 1) To prevent breaking other mods, Dynamic Traps won't spawn or trigger traps if the Player is considered to be enslaved by ZaZAnimationPack. 2) Mimic are incompatible will O.M.N.O.M.S. Both mods are basically doing the same thing. If you would like to use O.M.N.O.M.S. than set the Mimic spawn chance in Dynamic Traps MCM to 0. Future plans 1) Bug fixes, obviously; 2) More trap variations - vanilla frost and shock Runes, explosive gas trap; 3) Optional integration of Traps NTR, specifically Skeleton trap, Snare rope and Worms; SKSE Source Code (for mod makers): -
Castration Framework (Up for Adoption) View File IMPORTANT: Make sure XPMSE is installed correctly. This mod is up A quick-and-dirty mod that can be used to remove the balls from any NPC seen as Male by Sexlab. This blocks their arousal. (NOTE: Does not currently prevent pregnancy except through SGO, more coming soon) Use AddItemMenu to get the castration knife. Requirements: -Racemenu (for NiOverride) -XP32 Maximum Skeleton Extended (node scaling is used) -Sexlab Aroused (preferably SLAX) -Schlongs of Skyrim -Gender Bender (recommended, not required) for futa support Features: -Castration and decastration via MCM menu or knife -Penectomies (nullification, removes the dick but not the balls) Known bugs: -Certain revealing armors may not realize the NPC is castrated Coming later: Nothing Submitter brrrryes Submitted 12/28/2021 Category Framework & Resources Requires Racemenu, XPMSE, SLAX, SOS, SkyUI Special Edition Compatible Yes
- 117 replies
-
- castration
- wip
-
(and 1 more)
Tagged with:
-
View File [XCL] [0.23] Bad Habits What is this mod? This is just a small immersion mod that adds smoking (both cigarettes and weed) to the game. Cigarettes can be purchased at machines at the mall, and bar. Weed can be purchased from the new dealer character at the bar (who always appears on Fridays, but has a chance to show up every day). I think there's enough here that you can roleplay a smoker, hah. Also, befriend a wholesome stoner who'll sell you weed, hah. Alpha/beta release: Not fully done, but the basics are down, and I think it's running quite well (bug free 🤞), so is ready for feedback and stuff! Currently able to: Smoke cigarettes at various outdoor locations (and some indoor), Basic addiction system (the more you smoke, the more you need to smoke) Smoking cigarettes can be done after sex, and can be hit on while smoking. Smoking images for characters: alina, jade, jia, kayley, kendra, lauren, littleblonde, liya, madisonivy, mia, rae, riley, scarlit, skylar vox. Generic images used for others and male characters. Smoke weed at home, the beach, and the dealer's house. Simple "high" meter. Smoke the right amount, good effects. Smoke too much, worse effects. Basically just an alternative alcohol system right now (heavily based on the existing one, haha). Dealer has scenes and stuff set up to hang out and smoke and do other stuff, hah. (Yes, you may tell from the size of the file, there seems to be a hidden bar girl I'm not telling you about, hah). Integration is currently fairly basic, e. g.: no real reaction from others on your smoking yet. Character support (additional images and such) for: All base characters Playable characters: Alexa Casey Kayley Lauren Littleblonde Will be working on this slowly over time, so let me know (preferably on the XCL discord) of any features you'd want to see! Installation: Open the mod loader, click add mods, select this mod, load mods, done! Compatibility: (If you have any requests for mods to make compatible, let me know, and I'll do it if it's easy or really makes sense, hah). Harder Exits Mod (by request) Now counts smoking as a $time_event compatible with this mod. Submitter Melodious Melia Submitted 09/25/2025 Category Gameplay Changes & Events Requirements
-
Robert S Male v3 WIP - Preset Goodie Bag View File Misc RS/RS-Ex v3 presets to go with the WIP version on Allnarta's Official Discord, you can use them to batch build directly or feel free to mess around with them if you want (there's also a good bit of overlap or pre-existing presets in there, so sorry for the slight bloat in advance) 01) Download Bodyslide & Outfit Studio MANUALLY from the Fallout 4 Nexus Page 02) Drag and drop it as-is into the downloads section of MO2 and install like a regular mod 03) In the mods folder for MO2 look for the now installed "Bodyslide and Outfit Studio" folder and open it 04) If there is a folder named "CalienteTools" rename it to just "Tools" (FO4 version's filepath SHOULD be fine) 05) Open the Tools folder then Bodyslide folder 06) Copy the filepath and add a new program to MO2 (gamerpoets on youtube can give you a short video on this) 07) Add Bodyslidex64.exe and/or Bodyslide.exe, add OutfitStudiox64.exe and/or OutfitStudio.exe 08) Make sure its enabled in your modlist and select the program from the program drop down menu 09) Make sure you have Robert S v3 from Allnarta's official Discord (or Nexusmods and/or LoversLab when it officially releases) 09a) Select the "a_RS Base Body Nude" or "a_RS Body Nude Ex" project in bodyslide and select a preset and/or customize it, then hit the batch build button You should now have your preset body built in-game 👍 Submitter incubaddon Submitted 06/04/2025 Category Modders Resources Requirements Robert S Male Body Replacer v3 WIP, Robert S Male Body Replacer Extended(?), FO4's BodySlide & Outfit Studio
-
- males
- roberts male
-
(and 8 more)
Tagged with:
-
yfMM_SheerPinkTextTop_(78swatches) View File Filename actually says it all; female Maxis Match sheer pink top with different texts, slogans and some images (currently 78 swatches total). Will probably list all the slogans/texts included at some point, but basically these these include stuff like: Bimbo, Slut, Daddy's Princess, Fucktoy, Babydoll, etc... Wanted to test how Sims 4 content creation works at it's easiest, so took basegame sportstop and recoloured it to be little bit more intriguing. I also wanted to check out how file uploads work on this forum. Hopefully somebody finds this useful. Beware, this is kind of work in progress, so I may remove or recolour some of the textures that do not please my eye in the future. Submitter Sk0fox Submitted 01/12/2023 Category Clothing Requires
-
Cyber resources WIP View File My first attempt at modding. I am posting here for suggestions on what more to add/advice on how to improve it. The armor sets are in the lucky 38 penthouse next to the big computer. You may use this in your own mods without permission. Submitter Voidson22222 Submitted 08/07/2023 Category Models & Textures Requirements
-
Post Quests NPCs Show Player Character Due Respect WIP View File War, war never changes. And because Bethesda didn't implement ANY conditions to Generic Dialogue which might ACKNOWLEDGE your Player Character's in-game accomplishments properly, you may begin to feel that what you do in game doesn't even matter. This mod WIP aims to fix that as much as possible. Till then. Mod On! Game On! SO...if you are tired of being disrespected by RE Merchants, SCAV Babes, Diamond City NPCs, other Generic NPC's and Caravan Guards despite the fact that you are the Castle Storming, Monster Slaying GENERAL of the Minutemen and you feel like I do that the PC should receive better treatment in dialogue by these NPCs whenever they have accomplished something momentous in the game, then this mod will make that happen for you. Why Bethesda didn't take the time to condition out the random dialogue of Diamond City Generic NPC's who say, "You ain't gonna last once you leave the Wall, so don't get chummy." DESPITE the fact that you've been successful at defeating NUMEROUS raider gang leaders AND took out the QUEEN Mirelurk at the Castle, I will never understand. They also don't condition out the generic dialogue which says, "If you don't live here, you ain't nobody. Got it?" EVEN after you've bought Home Plate. Seriously? AND as a bonus, if you also happen to use the Flirty Commonwealth mod by VaultFalcone then the Generic Diamond City NPC's will actually have something more to say than, "Yeah?" once you activate this mod. ROFL! Yep. That's the ONLY thing they say normally that isn't rude. My ESP-ESL includes ALL UFO4P dialogue corrections for every dialogue line I edited so it is OK to place it BELOW/AFTER the UFO4P and BELOW/AFTER the Flirty Commonwealth mod because I didn't touch the vanilla edits of Flirty Commonwealth which was only one that removed the "Random END" flag on the last dialogue entry that says, "Yeah?" Oh, and Caravan Guards aren't gonna keep warning you not to "eye" the Brahmin or threaten to "end you wastelander" anymore after you have been given Bunker Hill as a settlement, because they work for YOU now! I definitely give them the Minuteman dialogue faction because Bethesda really didn't give them that much to say. It's nice to hear them say, "Hello Sir" and "General" instead. Feel me? IF you don't use the Flirty Commonwealth mod, then most of the Diamond City Generic NPC's won't have much to say to you anymore if you completed "Taking Independence" OR made Diamond City into a working Workshop Settlement (which should add the LocTypeWorkshopSettlement keyword to its Location DATA), but, "Yeah?" UNLESS - you do what I do and give these NPC's the Minutemen Dialogue Faction with the console. Here is a sample of the batch files I use to #1. Make any NPC the PC Ally & Friend. #2. Make ANY Generic Voiced NPC a member of the Minutemen with the Minutemen Dialogue Faction. (NOT Old People, Ghouls or Children...they don't have any Minutemen Dialogue voice files) #1. MA.txt (Make Ally) setfactionrank 106C30 0 setfactionrank 106C31 0 #2. MD.text (Minutemen With Dialogue) setfactionrank 68043 0 setfactionrank 17E8A7 0 NOW, if you DON'T want to complete the Minuteman quests BUT you are using a Diamond City Settlement mod, then giving Generic NPC's there the Workshop Dialogue Faction/GenericFarmerDialogue Faction will ALSO expand their "Hello's" which my mod basically gets rid of because MOST all of them were rude. Nobody gets to be rude to the famous General of the Minutemen in my game. Feel me? #3. MS.txt (Make Settler with GenericFarmer Dialogue) setfactionrank 337F3 0 setfactionrank c8608 0 setfactionrank 155251 0 There's actually more stuff you can put in the MS.txt which can allow you to assign ANY NPC to a settlement, but that's not the focus of this mod. Getting them to have something to SAY after you take away the rudeness.....is. Oh, and there's few things that Generic Farmers say which aren't all that respectful to the PC either, but IMHO, Thuggy's PiperCaitCurieDialogueOverhaul.esp from Settler and Companion Dialogue Overhaul adds more than enough "respectful" dialogue which makes up for the difference. BUT....it really needs to be patched for the BEST results. See the pic I uploaded for an example. (Yes, I've been editing FlirtyCommonwealthMale.esp for my own uses for quite awhile, but the basics which make it a great mod are still intact.) But again, Diamond City would need to be a full settlement and the Generic Diamond City resident would have to have that dialogue faction. Small price to pay. SO.....need play testers and suggestions about what other RUDE dialogue should be conditioned to GO AWAY after certain quests are completed. Those who are following this mod and provide feedback that is implemented will be credited for their input. OH, and there are way TOO many Diamond City & Caravan NPC beautification mods out there for me to even think about making hard edits to those records just to add dialogue factions. Easier to use the console on a case by case basis. Just saying. There is ONE very popular Diamond City quest mod that I know of which also makes edits to random Diamond City dialogue by adding conditions which relate to it's quests which stop the rudeness AFTER you become the mayor I guess. You can decide when you want the dialogue to go away, BEFORE or AFTER their quests complete by where you put my mod. Since they don't actually ADD to the dialogue like I do, it's probably best to ensure my mod "wins" the edit conflict. Your choice. These edits basically accomplish the same thing in the same technical way but for different reasons. There's also ONE exterior DC guard comment in the FENS Sheriff mod that will conflict because they conditioned it not to play after a certain quest stage but it's easily patched or ignored. NOBODY gets to call my PC a "Scavver" if I can find a way to condition it out. The Pip-Boy on my wrist, my shiny POWER ARMOR and the DC Radio should be all the "introduction" any Commonwealth denizen needs to decide it's best to treat my SS with respect. Many Unique Voiced NPC's who are ALWAYS rude "after hours" or in general have been given new lines to say or their rudeness was just "Conditioned" out after you are the Famous General of the Minutemen OR, Diamond City is a working settlement. Some of the dialogue will help you to "roleplay" an off-hours romance with them if you are so inclined, but you may have to take them to an interior cell and give them the CA_IsRomantic = 1 setting to make that work. No, I don't plan to make a "Romance Myrna" quest, despite her being SMOKING hot in my game. Colette (if she's alive in your game of course), Ellie (Not rude but she gives you the brush off after her normal Hellos are done playing), Geneva (Brush Off not rude per se), Moe (Totally rude), Myrna (Scary Rude), Polly (rude), Becky (Boring Three Repeating Lines Rude), Mrs Codman (Stuck-up Rude), etc., etc., etc., WIP. As an added BONUS because this mod was originally intended to only change the RE Merchants dialogue to NOT be rude to compliment my SCAV Babes mod, I have EXPANDED the Generic Merchant Dialogue pool to allow you to drop ANY FemaleBoston/FemaleRough/MaleBoston/MaleRough voiced NPC with the appropriate factions (Mine or Vanilla Workshop Factions) into ANY game cell, workshop or not, AND they will be WORKING vendors. You don't have to make my mod a master file if all you are going to do is use the basic workshop factions for Bar, Clothing, Armor & Weapons. The RE General Merchants already cover MISC items so I didn't bother with that. The only problem arises if your BASE workshop container references that the BASE game Factions point to are EMPTY. I highly recommend the DLC Leveled List Integration mod to help with that OR any other mod which "enhances" the base Workshop Vendor BASE Containers. I've found that Doctor dialogue already works "out of the box" by giving the NPC Record the appropriate factions and the in-game reference a "virtual" settlement location. You can see how I did it in the SCAV Babes mod. Easy Peasy. Credits: Bethesda for F04 & the CK ElminsterAU and the xEdit Team for https://www.nexusmods.com/fallout4/mods/2737/ LeahTheUnknown who recently made a comment on her Discord about how nothing she did in F04 mattered because it didn't CHANGE anything. Hopefully, I can change that for her since she's given SO much to the community over the years. FYI - IF you aren't doing the Minuteman quest line and you don't want Diamond City to actually have a "WORKING" settlement, you CAN just add the proper KEYWORDS to the Worldspace LOCATION data to allow the RUDE dialogue to be conditioned to go away for you. Here's an example of my "NON-working" Settlement WIP, that has the appropriate Keywords. I used the LocHasKeyword - LocTypeWorkshopSettlement condition SO...that's really all the Location Data needs to have for the dialogue edits to work for you IF you aren't going to do "Taking Independecne." Submitter Tinman2u Submitted 04/02/2023 Category WIP / Beta Requires
-
NukaFlowAbyss More Radiant WIP Patch
Tinman2u posted a topic in Downloads - Fallout 4 Non Adult Mods
NukaFlowAbyss More Radiant WIP Patch View File IMHO, M150's NukaFlowAbyss (With VATS Patch) is one of the most thrilling dungeon crawls you will ever find. It took me and my three followers ALL night to clear that dungeon and we had a BLAST! But once you clear it, there's really no pressing reason to go back whenever the cells reset except maybe to mine the rocks. Until now I hope. So far the radiant quest system hasn't picked that location for me but I'm hoping that with more players using the mod, I'll get feedback as to whether it actually works as intended. FYI - for a dungeon to be picked by the vanilla game radiant quest system there are at least three or four things it's LOCATION data needs to have: #1. LocTypeDungeon keyword. #2. Persistent BossRef #3. Persistent BossContaineRef #4. MapMarkerRef Now, certain radiant quests also need the following Location keywords for the specific radiant quest to pick that location: LocEncRaiders or LocEncSupermutant, etc. The Location Data M150 created for NukaFlowAbyss has all of the first four but then it has a LocEncWildlife keyword so I added LocEncBugs but so far I haven't had any radiant Wildlife or Bug hunting quests pop up although I think Thuggy's Piper radiant "ink hunting" quest sent me to a wildlife location recently, just NOT this one. LOL! And finally, certain radiant quests require the location to have a persistent CaptiveMarkerRef. (Institute Reclamation, Settlement Captives, etc.) What I have done so far is add a keyword to the main NukaFlowAbyss Location AND created separate Location Data for the NukaFlow Offices, which has ALL of those radiant quest keywords AND the persistent ref types that are required. (Because M150's mutants ARE Super AND they fight like Raiders AND they want to capture and eat humans no doubt. Why they would capture a synth is a bit iffy on the lore wagon but, Who Cares?) I also created a new map marker ref which is placed very near the original one, so they may look weird, but all that matters is that the radiant quest system knows its there. Eventually, I may create new location data with the proper (mostly appropriate) keywords for every cell that the main location leads to and maybe drop in something that actually FILLS the keyword requirement in a lore friendly way if necessary. SO....Hard Requirements - NukaFlowAbyss & NukaFLow Abyss VATS ON Patch (Which Overwrites The Original ESP). My Patch is an ESL-ESP so just put it anywhere BELOW the master file. BUT.....to make the captive side work, I had to edit the vanilla CAPTIVE Faction (And M150's Enemy Faction) to play nice with each other. IF you have ANY mod which also edits the vanilla Captive Faction then things will go bad based upon which mod in your load order wins the EDIT conflict, without YOU patching it . To find out if you DO have a conflict, just load up F04Edit and look for the Captive faction I edited in my mod and see if any of your other mods also edits it. Make a quick ESL override patch that includes ALL the edits necessary to keep your game the way you want it to be and you are done. Easy peasy. There's no way I could make a patch for every mod on the Nexus which also edits the captive faction and I personally don't have any mods in my load order right now that DO edit it, except for my own additions of certain M150's Abominations factions for my own personal dungeon projects that I can't share. Feel me? Please let me know whenever you DO get a radiant quest to pick up the NukaFlow Abyss location so that I can breath a sigh of relief. Please don't feel like a guinea pig. There's nothing in the mod that touches any quests or scripts. It just makes it so the GAME can find this wonderful dungeon and fill it's quest alias's properly. I'm definitely looking forward to going back down that dark and dangerous rabbit hole again. Because it's FUN! Till then, Mod On! Game On! Submitter Tinman2u Submitted 03/24/2023 Category WIP / Beta Requires NukaFlowAbyss & NukaFlowAbyss VATS ON Patch- 2 replies
-
- radiant quests
- wip
-
(and 1 more)
Tagged with:
-
Lore-friendly NSFW Skyrim (a.k.a. Craftable ZaZ) View File Lore-friendly NSFW Skyrim (A community project) Introduction: This mod's main goal is to provide a completely new way to play NSFW skyrim without compromising lore. This is achieved by changing visuals from other mods and adding new game mechanics. It replaces some visuals from other mods (like Devious Devices's Catsuits and ZaZ/MME's Milking Machines) to something more rustic/medieval/dwemer style. It also add new mechanics (still W.I.P.) to the game by using the game official lore. For example: You can craft zaz devices using dwemer schematics, which you can buy from a very talented dwemer schoolar named Calcelmo. Inspiration: Messing around through LoversLab mods and realized a few things: 1. The only mods that gives you access to BDSM clothes without adding a crazy lore or crazy mechanics, are shop mods like Laura's Bondage Shop (awsome mod, by the way) 2. The only way to get zaz furnitures is using commands or with Zaz Animation Pack 8.0 Helper 3. There are almost no simple NSFW dwemer mods 4. There are little to no dwemer sex machines resources 5. The best way to make a lore-friendly NSFW Sykrim is by not adding characters, nor creating a sidestory from scratch but using the own game lore. Concept: Dwemer were known for being "cruel, intelligent, industrious and careful". Their technology was really advanced. They used high quality materials, and created machines as good as it. But even in advanced societies, where people use their skill to help each other, there are always some individuals who use it for your own benefit. These individuals would use their skills to create things that would satisfy their needs. And they really did it: created Latex Clothes, Leather Harness, Sex Machines, Restraining Contraptions, and more. These creations disappeared, but the "Blueprints" used to create them, can still be found in dwemer ruins (although they are very rare). When you found a blueprint it will unlock a few recipes, these recipes can be used to craft "Machine Parts", and the "Machine Parts" to craft "Machine Items". When you craft a machine item, the machine itself will be in your inventory. Equiping it, places it on the ground and you can only move it using a positioner. To do list: Blueprint Items - Progress [■■■■■■■■■■] = 100% Machine Parts - Progress [■■■■■■■■■■] = 0% Machine Items - Progress [■■■■■■■■■■] = 100% Crafting Recipes - Progress [■■■■■■■■■■] = 10% Recipe unlocking system - Progress [■■■■■■■■■■] = 10% Scripts - Progress [■■■■■■■■■■] = 30% Mod Menu - Progress [■■■■■■■■■■] = 0% Textures - Progress [■■■■■■■■■■] = 10% Meshes - Progress [■■■■■■■■■■] = 10% Machines - Progress [■■■■■■■■■■] = 0% Zaz Animation Pack 8 Integration - Progress [■■■■■■■■■■] = 10% Devious Devices Integration - Progress [■■■■■■■■■■] = 10% AND MORE (WILL UPDATE LATER) Files Status: For Moderators/Administrators/Original Modders: Credits: GIFs: Craftable Dwemer Milking Machine Submitter EthernalNoob Submitted 04/11/2023 Category WIP / Beta Requirements Milk Economy Mod, Zaz Animation Pack V8.0, Devious Devices 5.2, Jaxonz/Cobb Positioner, 3BA/CBBE and BodySlide Special Edition Compatible Yes
- 36 replies
-
2
-
- lore-friendly
- replacer
- (and 16 more)
-
[BETA] Stylized coochies View File A fool's quest of mine - these are three rigged vagina conversions of the bag of baginas meshes on Smutbase. But instead of a competent mesh engineer, you got me. All three variants are rigged with vaginal and anal opening bones, and are for both female and male sims. They can be added via CAS, or assigned via the Wicked Whims body selector function. Keep in mind this set is definitely in a 'BETA' level of polish, and will receive updates as I am able to iron them out more. Please read below for known caveats, and what you can do to help, if you'd like to. You may use, modify, or expand upon these as much as you see fit! My one request is that you do not paywall these or modifications of them in any way, shape, or form. CAVEATS (aka known issues): The overlay these use to blend into the skin is pretty 'heavy' , and works best with 'cartoony'/soft overlays/skins. The overlay used in the preview is one of the cartoon overlays by Northern Siberia Winds. It may not blend perfectly under all lighting settings, even then. The body's morphs and shading can look a bit crunchy in some areas, at the moment. Because the parts partially use the penis UV space, they will run into issues with 'heavier' amounts of pubic hair. I'm working on a set compatible, and it will likely be the first update to this file. The male models are... of questionable quality. The puffy and nofrills vaginas for men have been marked as EXPERIMENTAL until I can iron them out a bit more. Due to the sheer amount of different animations and creators and how they do things, these vaginas are not 100% going to 'line up' with every single animation. Additionally, I am unable to test effectively as a single person, which is why I have chosen to make a beta release - so other people can help hone in on specific issues. If you'd like to help speed up the polishing process, screenshots of any kind of mesh weirdness would be appreciated! This allows me to target specific issues instead of running in circles trying to fix everything at once. LAUNDRY LIST: Pubic hairs Fix up specific rig/uv_1/shading bugs Improve overlay texture Submitter BorderofExtacy Submitted 07/31/2024 Category Body Parts Requires Wickedwhims by TURBODRIVER
-
palutena Your favorite Goddess, but thick
Sfyri posted a topic in Super Smut Bros's Requests and WIP
-
Environment Cubemapping Framework [01/07/24] View File QUICK NOTES > THIS IS A WORK IN PROGRESS, for each description need to be more explicit ! It takes long time to edit and update everytime, with LL open, since it has no Save for later button. > I call it ECF (Environment Cubemapping Framework), cause it contains cubemaps, and for each materials have to be setup with environmental mapping scale values... But now that was included, i also added something else, find out more below what's included... > Would be cool if you don't redistribute to somewhere else without my approval! The only place you can find me or where i host, is my discord server. === STORY ACTION COMPENDIUM [ unavailable ] *I host my mods in my server and LL for now on. I terminated NexusMods for Fallout 4 ! *Keep in track with my stories / mod status news, in my server, or nothing but chill like home. === [ INTRO ] > This is a mod, and a framework for Users and Modders. > ECF is a repository. The links are not hosted here. > Cubemaps, material files, ... are added into one place, so i don't have to duplicate all of them for all my mods (100 times...), while i could simply use FROM it, for all, without adding anything. [ Find out about How to patch a mod with ECF, ONLY if you are a modder ! ] *Permission granted by Ajhakra for custom cubemaps. > Follow my topic, in case any updates arrive sometimes... === [ INSTALL ] ECF_ENGINE Placeholder (2.12) ECF_AJ_Cubemaps (2.0) *I recommend you installing both, then merge into one mod using MO2. I don't know about Vortex how you guys handle it. [ MODS - PATCHED UP with ECF ] == LOGS == =================================================================== [ USER MODE ] > ECF is a 'install and play', mod index-free. It's required only for patched mods. *Self-troubleshooting > If you see anything black/purple meshes as missing textures in game, that's cause cubermaps are NOT included in a mod you installed. *Solution: It's patched up by ECF. Re-read, and install ECF > If there's anything missing (wrong location) or something else, i figure out where and update it. In rare cases, broken textures that makes your game crash... *DM me on Discord >.< =================================================================== =================================================================== [ MODDER MODE - INTRO - What contains ECF ? ] > CORE PLUGIN: ECF.esl Material Swaps: BGSM + BGEM - Emissive colors (Glowing in the dark), Cubemaps Keywords: Attach points and Mod associations - DEFAULT Swaps; for Emissive Colors, cubemaps, flat colors, etc... OMODs: Default setup along with material swaps, in a mod slot > LOOSE TEXTURES The main things to know, before patching a mod - What's the use for certain cases? Case 1: BlackDiffuse_d.dds [ Used for covering meshes / Cubemaps passing over your meshes ] *Sometimes, it's used along with Emissive Per Colors ... when getting your meshes brighter and glowy. *Mostly, for diffuse, it's used as a protection, without having to paint the vertex color of your mesh: Black. Case 2: Disabled_d.dds [ Used to hide one of your mesh parts, invisible. / Default Stickers OFF ] *It's a temporary way of hiding your parts, using BGSM material. Otherwise, it can be done by just flagging the '(1) Hidden' enabled, with Nifskope... Case 3: GlassOverlay_d.dds (dds integrated with nifskope, only) [ Used for Glass overlays ] *Don't confuse one with gray one from Flat Colors! This has 50% alpha map, exported. BGEM only, because of better alpha blending for glass! ========== [ MODDER MODE - CONTENT / MATERIAL LOCATIONS (BGSM / BGEM) ] I suggest you, not to put anything from Textures folder in your mod folder! --- > Black Diffuse (.bgsm + .bgem) Location: ( ./ECF ) > Disabled (.bgsm) Location: ( ./ECF ) --- CUBEMAPS (Ajhakra) (source) [ colors and rainbow ] Location: ( ./ECF/Cubemaps ) CUBEMAPS (ENGINE) [ More colors, gradients, unused vanilla cubemaps ] [ WIP ] Location: ( ./ECF/Cubemaps ) Location: ( ./ECF/Cubemaps_Gradient ) Location: ( ./ECF/Cubemaps_Vanilla ) --- Flat Colors (+ No Specular) Location: ( ./ECF/FlatColors ) Location: ( ./ECF/FlatColors (NoSpecular) ) > No details, unless you want your meshes look realistic... Flat Colors_Reflections (+ No Specular) Location: ( ./ECF/FlatColors_Reflection ) Location: ( ./ECF/FlatColors_Reflection (NoSpecular) ) > Pale, Unsaturated colors, with or without specular, that doesn't look bright (Ref: vanilla coffee cup that can be replaced for a good looking ceramic cup) --- Alpha, Transparent, Translucent, Opague Overlays [ WIP ] Location: ( ./ECF/Alpha_Maps ) > Differences are by how alpha blending behaves. These overlays work for any types of glass: Windows, lenses, screens, etc. > Only works for BGEM-integrated meshes --- Stickers / Patches [ WIP ] Location: ( ./ECF/STICKERS ) > Logo and text stickers for fun, memes. > This can only be done on a plane mesh, either by square shaped for patches or by ratio sized for text. EMISSIVE / GLOWING [ BGSM + BGEM ] Emissive Location: ( ./ECF/Emissive ) > This protects your meshes with BlackDiffuse_d.dds which securely covers everything. (+ You skip painting them to black) Emissive (Protected) Location: ( ./ECF/Emissive (Protected) ) > This is alternative protection, using Flat Colors instead of vertex colors, to cover your meshes completely. > Example: You want one Red, the emissive protected for it, contains flat colors red as a temporary "vertex color" cover. > Without that, it would cause your mesh to behave like the emissive color uses 50% opacity, 50% empty textures with vertex colors off. > NOTE: if vertex color is off OR it's painted white, the emissive colors MIGHT glow up brighter than ever in game. If so, enable vertex and paint them black. Emissive (Vertex) Location: ( ./ECF/EmissivePerColors ) > This doesn't provide any protections. You MUST have your meshes' vertex color 100% black (or any colors), in order to integrate this! > To paint your mesh pieces, refer to ([ MODDER MODE - Common problems ]) section. === [ MODDER MODE - HOW TO PATCH A MOD - with ECF ? ] ===[ NIFSKOPE ]====[ OUTFIT STUDIO ]=== Manual Injection ( ECF integrations with(-out) ECF.esl master dependencies ) *Note that if you going to inject a material with different colors and not default-ready one, it WONT work with material swaps done by ECF.esl in game! *Default-ready materials are necessary for ECF.esl integrations. Even if you don't wanna use ECF.esl, you can still inject it. *Default-ready materials integrated = Material swaps with ECF.esl + swap ANY colors you want in game! *Tools for MATERIAL INJECTION: Nifskope or Outfit Studio (Object Properties)! > Default-ready Cubemaps: Inject a BGSM for any matal pieces you have ( ./ECF/Cubemaps_Vanilla/DefaultOutside1.bgsm ) > Default-ready Emissive: Inject a BGSM or BGEM for any pieces with vertex color painted black ( ./ECF/Emissive/EmissiveOFF.bgsm ) ( ./ECF/Emissive/EmissiveOFF.bgem ) > Default-ready Emissive (Vertex) ( ./ECF/Emissive (Vertex)/EmissiveOFF.bgsm ) ( ./ECF/Emissive (Vertex)/EmissiveOFF.bgem ) > Default-ready Emissive (Protected) [ Default material is reductant cause it also contains diffuse black = No any glow. But name changed to avoid duplications for material swap slot ] ( ./ECF/Emissive (Protected)/EmissiveOFF.bgsm ) ( ./ECF/Emissive (Protected)/EmissiveOFF.bgem ) > Default-ready Flat Colors (+Reflection and NoSpecular) ( ./ECF/FlatColors/_Default.bgsm ) > Default-ready Stickers: Inject a BGSM on a plane you created from blender or 3ds max (You can check Braindance model as example) [WIP] ( ./ECF/STICKERES/StickerPatch_1.bgsm ) ( ./ECF/STICKERES/StickerPatch_2.bgsm ) ( ./ECF/STICKERES/StickerPatch_3.bgsm ) ========== ===[ NIFSKOPE ]====[ OUTFIT STUDIO ]=== Manual Injection ( Simple integrations for no-plugin mods ) > If you don't plan to use ECF.esl, it's still required because of the textures! > Tools for MATERIAL INJECTION: Nifskope or Outfit Studio (Object Properties)! > Inject any BGSM / BGEM material from ECF for your meshes! (e.g. Emissive RED that will be red only.... or Cubemap Gold that will never change) > If you have your diffuse/normal/specular textures you wanna use, with cubemaps, you can have/create your BGSM material, BUT with path folder locations from ECF for cubemaps! ========== ===[ FO4EDIT ]======= ECF.esl ( DEPENDENCY ) - [ *Used for attaching material swaps for your ARMO meshes ] 1. LINK YOUR MOD - SETUP 2.1. INTEGRATE [ AP + MA ] IN YOUR ARMOR ENTRY 2.2. INTEGRATE [ MATERIAL SWAP ] IN YOUR ARMOR / STATIC / FURN / PROPS ENTRIES *The rest, ECF.esl will do the job for your mods, as it gives you all the options you can swap, using SAM or armor bench. ========== =================================================================== =================================================================== [ MODDER MODE - Common problems ] =================================================================== Submitter EngineGaming Submitted 11/11/2023 Category WIP / Beta Requirements