dkatryl Posted September 16, 2012 Posted September 16, 2012 MiniLovers. Pretty neat mod, eh? However, at it's base form, it has an issue for the males, which is that it just uses the default version of whatever male body you use, meaning you have to choose between one of two options: 1) Your males have functional hardons at all times, which is great for MiniLovers, but every random bandit you kill and loot having hilarious post-mortem boners, or 2) Your males have a slightly more expected flaccid penis during normal activities, so stripped bandits aren't sporting wood, but when you actually *do* engage in the sex acts, let's just say that you're lacking a little lead in your pencil. Neither option is optimal, and is a slightly irksome sticking point to the mod, and one that I set out to fix, and fortunately, (at least for my own purposes), I was successful at it. However, I am not going to just upload what I did, since I am not comfortable releasing a tweaked version of someone else's mod, but I will do the next best thing: I will tell you how to do the same for yourself! Now, before some people say, "WOAH! I'M NO MODDER! I CAN'T DO THAT!" let me assure you, that most of what you need to do is done within the Creation Kit (CK). 1) Go find the nude male mesh that comes equipped with an erection that you prefer. I leave this part up to your taste, although, personally, I used 4uDIKs Real body -4RB-, because it fit well with the style and size of the normal body mesh I use. 2) THIS IS THE ONLY POTENTIALLY TRICKY PART FOR NOVICE MODDERS! Depending on which erect vs flaccid model you use, you have to take care that one doesn't try to overwrite the other. For this, you have to make sure that both the meshes and the textures are either named separately, or in different subfolders. If this is already the case, then awesome, move on to the next step. If, as in my chosen model, which is designed as a body replacer, so the mesh/texture are named the same as the default mesh/texture, I had to create a subfolder within ..Data\meshes\actors\character\character called Erection. You can call it whatever you want, but just remember where it is in a few steps from now. Similarly, if the textures are going to overwrite the existing textures for your normal 'flaccid' model, you have to rename and/or create a subfolder for them. ***HERE IS THE POTENTIALLY TRICKY PART FOR NOVICE MODDERS*** If the textures for the erect model are renamed or located in a different folder structure than expected by the mesh, the mesh will probably look wrong in game. To fix that, you can use one of many tools to change the texture(s) associated with the mesh. I recommend simply using Nifskope. (I will not explain how to relink textures to meshes using Nifskope or other programs, as that is beyond the scope of this tutorial, but there are lots of reference material on the process on the net) I am purposefully being a bit vague on the parts up to this point, because I don't want to tell you which model to use. But hopefully, you've been able to follow along, because now that you have your source meshes situated, now we move onto the meat of the tutorial, and it will get a lot more specific from this point on. 3) With the CK, open up MiniLoversAlternative.Esp. (By default, it will open up the required linked .ESM and .ESP, so just make that the active file and open normally. 4) First thing to do is make the 'Erection Suit' itself. This is something that will automatically be added to your inventory and then auto-equipped during the sex acts, and then auto-removed from your inventory, so a lot of the finer details of the actual item are not important. In fact, for my purpose, I simple made a copy of ClothesPrisonerTunic, and renamed the ID "Erection". I also gave it the name "Erection", as well as setting the weight and value to 0. 5) Once you have your base armor created, you need to change the ArmorAddon associated with it. If you used what I used, it is called PrisonerClothesAA. This won't do for our purposes, so if you double click on that, it will automatically open up the window for that. 6) Similar to our custom armor we created, we need to create a custom AA, so make a copy of it by changing the ID to "ErectionAA". Now, for Biped Model for Male, push the Select button, and then go find the erect male mesh that you setup earlier in Steps 1 & 2. If it's a properly made mesh, there is a _0 version and a _1 version. Select the _1 version. You should see the model pop up in the little view window to the right. Hit Okay. 7) Repeat this process for the Female Biped Model. This time, you are just going to select the standard Female model you use normally, since women just don't have quite the dramatic external sign of arousal. () but we have to make sure when a female equips our 'erection suit', they appropriate nekkid with the proper womanly bits, so to make this seemless! 8) Once this is done, go to the Magic Effect section, open up the one called MLARapeEffect. This has a bunch of crap we're not interested in, other than the part in the lower right that says "mlarapeeffectscript" under Script Name. (This is the part that was originally eluding me until I stumbled across it). 9) Simply double click that script, and a big list of crap will pop up in a Properties window. Click "Add Property" and another window will pop up. Change Type to "Armor", change Name to "Erection", then hit Okay. Now go find that new property in the list, and click on it, you will see to the right it asking you to Pick Object. Scroll down the list until you find "Erection", select that. Hit Okay. Then hit Okay to the Magic Effect window that is open. Go ahead and save at this point. 10) The last part is simply to modify the script that handles the stripping for the MiniLover's sex scenes, mostly just adding a few extra lines. At the top, under the Gameplay tab, select the Papyrus Script Manager. When it opens, scrolls down until you find "mlarapeeffectscript", and double click it. Just open it in the text editor of your choice. Personally, I just do it in Notepad. ************* IGNORE THIS STEP!!! THIS WILL BREAK THE SCRIPT!!! ************ ************* THIS IS HERE FOR THOSE THAT ALREADY ADDED IT SO THEY KNOW WHAT TO REMOVE!!! ************* 11) Once this is open, find the section: bool stageKeyFlag = False bool reverseKeyFlag = False bool idleSelectKeyFlag = False bool wasDead = false after that, add the line: Armor Property Erection Auto ********** THAT IS THE ONLY PART TO IGNORE. THE REST IS STILL NECESSARY! ********** 12) Shortly after that, find the line: target.AddItem(MLAIsSexCoin, 1, true) immediately after that, add the lines: target.AddItem(Erection, 1, true) target.EquipItem(Erection, false, true) 13) Immediately after that, find the line: caster.AddItem(MLAIsSexCoin, 1, true) immediately after that, add the lines: caster.AddItem(Erection, 1, true) caster.EquipItem(Erection, false, true) 14) Immediately after that, completely replace this section: ; **** MODIFY if (MLAUndressSwitch.getValue()) target.unequipItemSlot(32) target.unequipItemSlot(39) target.unequipItemSlot(46) target.unequipItem(target.getEquippedWeapon()) caster.unequipItemSlot(32) caster.unequipItemSlot(39) caster.unequipItemSlot(46) endIf with this section: ; **** MODIFY if (MLAUndressSwitch.getValue()) ; target.unequipItemSlot(32) target.unequipItemSlot(39) target.unequipItemSlot(46) target.unequipItemSlot(30) target.unequipItemSlot(31) target.unequipItemSlot(33) target.unequipItemSlot(37) target.unequipItem(target.getEquippedWeapon()) ; caster.unequipItemSlot(32) caster.unequipItemSlot(39) caster.unequipItemSlot(46) caster.unequipItemSlot(30) caster.unequipItemSlot(31) caster.unequipItemSlot(33) caster.unequipItemSlot(37) endIf (I personally thought it was silly it would leave boots/helms/gloves/etc on, so this also removes those as well.) 15) Finally, near the bottom, find this section: target.RemoveItem(MLAIsSexCoin, target.GetItemCount(MLAIsSexCoin)) caster.RemoveItem(MLAIsSexCoin, caster.GetItemCount(MLAIsSexCoin), true) after that, if you want it to function like standard MiniLovers, add the following sections: target.UnEquipItem(Erection, target.GetItemCount(Erection)) target.RemoveItem(Erection, target.GetItemCount(Erection)) caster.UnEquipItem(Erection, caster.GetItemCount(Erection), true) caster.RemoveItem(Erection, caster.GetItemCount(Erection), true) HOWEVER, as an alternative, if you want the other person to automatically get dressed after the sex scene without having to tell them "Get Dressed", only paste: target.RemoveItem(Erection, target.GetItemCount(Erection)) caster.RemoveItem(Erection, caster.GetItemCount(Erection), true) Apparently, if you "RemoveItem" before "UnEquipItem" on an NPC, they automatically re-equip their default wardrobe. I leave this up to you. 15) That's it for the script. Simply hit Save in your text editor, then back in the CK, in the Papyrus Script Manager, highlight the script we just changed, right click, and select "Compile". You should see a little window that says "Uncompiled" and then it will automatically close. If it did that, it worked, and you're done. If it says Failed, then you missed a step or have a syntax error somewhere to fix. If you made it to here, you're basically done. Once your script is compiled, make sure you Save the open .ESP once more, than launch Skyrim, find your nearest NPC and get down and dirty. If you followed this properly (again, the biggest potential hickup is going to be setting up the mesh/texture earlier in step 1 and 2) you should notice that the males involved in the sex scene have functioning hardones, and then are properly at a relaxed position after they've, let's just say, scratched their itch! Anyways, there you go. Since none of the source mods are mine, I don't feel comfortable releasing someone else's work as my own, but I don't mind sharing how I did something if people want to duplicate the process for their own enjoyment!
dkatryl Posted September 16, 2012 Author Posted September 16, 2012 [Edit] Edited original post with the full description of how to do it.
Northern Posted September 18, 2012 Posted September 18, 2012 I just searched for a solution like this for Minilovers, excellent job! but yes, we need this to be shared. Kudos.
dkatryl Posted September 19, 2012 Author Posted September 19, 2012 Edited original post with the full description of how to do it.
Dagimpyman Posted September 19, 2012 Posted September 19, 2012 Thanks a lot for this tutorial, it really helped me immensely. Before, I had to manually equip the erection suit I made every time my character had sex, which was rather annoying. I did notice something: when the "unequip" option is turned on in the config menu, the erection suit was unequipped along with all the other items as well, leaving the male actor limp once more. This is because the erection suit occupies slot 32, which gets then unequipped by the script. I removed target.unequipItemSlot(32) and caster.unequipItemSlot(32) from ; **** MODIFY if (MLAUndressSwitch.getValue()) target.unequipItemSlot(32) target.unequipItemSlot(39) target.unequipItemSlot(46) target.unequipItem(target.getEquippedWeapon()) caster.unequipItemSlot(32) caster.unequipItemSlot(39) caster.unequipItemSlot(46) endIf and that fixed it for me.
guilmonex Posted September 19, 2012 Posted September 19, 2012 What did miss? After I click add property and so on then ok, CK said script compile failed, and no erection property is added.
d2vis Posted September 19, 2012 Posted September 19, 2012 Hey this is a very helpful post! I'm glad you wrote a in depth tutorial to help people who have little to no experience with modding (much like myself).
dkatryl Posted September 19, 2012 Author Posted September 19, 2012 Thanks a lot for this tutorial' date=' it really helped me immensely. Before, I had to manually equip the erection suit I made every time my character had sex, which was rather annoying. I did notice something: when the "unequip" option is turned on in the config menu, the erection suit was unequipped along with all the other items as well, leaving the male actor limp once more. This is because the erection suit occupies slot 32, which gets then unequipped by the script. I removed [b']target.unequipItemSlot(32)[/b] and caster.unequipItemSlot(32) from ; **** MODIFY if (MLAUndressSwitch.getValue()) target.unequipItemSlot(32) target.unequipItemSlot(39) target.unequipItemSlot(46) target.unequipItem(target.getEquippedWeapon()) caster.unequipItemSlot(32) caster.unequipItemSlot(39) caster.unequipItemSlot(46) endIf and that fixed it for me. You are correct, and you could just fully remove the line. However, if you notice, I added an entire section of code to replace that entire section, including the part where I added the comment ";" before those lines, which makes the script ignore it. That allows me to retain the line for reference if need be. The additional lines I added were to remove boots/gloves/helms/etc, which the default MiniLovers didn't do.
dkatryl Posted September 19, 2012 Author Posted September 19, 2012 What did miss? After I click add property and so on then ok' date=' CK said script compile failed, and no erection property is added. [/quote'] I'm not sure what step you were on. Add Property sounds like you were on step #9. Did you do the steps before that?
Dagimpyman Posted September 19, 2012 Posted September 19, 2012 Thanks a lot for this tutorial' date=' it really helped me immensely. Before, I had to manually equip the erection suit I made every time my character had sex, which was rather annoying. I did notice something: when the "unequip" option is turned on in the config menu, the erection suit was unequipped along with all the other items as well, leaving the male actor limp once more. This is because the erection suit occupies slot 32, which gets then unequipped by the script. I removed [b']target.unequipItemSlot(32)[/b] and caster.unequipItemSlot(32) from ; **** MODIFY if (MLAUndressSwitch.getValue()) target.unequipItemSlot(32) target.unequipItemSlot(39) target.unequipItemSlot(46) target.unequipItem(target.getEquippedWeapon()) caster.unequipItemSlot(32) caster.unequipItemSlot(39) caster.unequipItemSlot(46) endIf and that fixed it for me. You are correct, and you could just fully remove the line. However, if you notice, I added an entire section of code to replace that entire section, including the part where I added the comment ";" before those lines, which makes the script ignore it. That allows me to retain the line for reference if need be. The additional lines I added were to remove boots/gloves/helms/etc, which the default MiniLovers didn't do. Oh man, you're right. I totally overlooked the comment mark when I followed your tutorial. And I was so proud of myself Nevermind then, and let me thank you once more for showing us how to do the scripting.
dkatryl Posted September 20, 2012 Author Posted September 20, 2012 It's okay, I know the feeling of overlooking something so minor and then you're like, DUH!. After all, I had the script part finished a week ago, AND. IT. JUST. WOULD. NOT. WORK!!! I could even make a custom script from scratch that automatically added and equipped the erection suit, so I knew the code worked, I just couldn't get the MiniLovers thing to work. Then I discovered the properties in the Magic Effect, and the light bulb finally went off. It took me a frustrating week of trying this, starting Skyrim, nope, trying this, starting Skyrim, nope, trying this...
guilmonex Posted September 20, 2012 Posted September 20, 2012 What did miss? After I click add property and so on then ok' date=' CK said script compile failed, and no erection property is added. [/quote'] I'm not sure what step you were on. Add Property sounds like you were on step #9. Did you do the steps before that? Yes it is step9 and no I follow your instruction step by step, I even delete the source script and install it again to try. Don't know what's wrong with the script manager.....
Funkcikle Posted September 22, 2012 Posted September 22, 2012 "9) Simply double click that script, and a big list of crap will pop up in a Properties window. Click "Add Property" and another window will pop up. Change Type to "Armor", change Name to "Erection", then hit Okay" At which point the CK fails to compile it for me, Starting 1 compile threads for 1 files... Compiling "MLArapeeffectscript"... script property Erection already has a set function defined No output generated for MLArapeeffectscript, compilation failed. Batch compile of 1 files finished. 0 succeeded, 1 failed. Failed on MLArapeeffectscript Any idea whats going wrong there ?
SoggyWaffle Posted September 23, 2012 Posted September 23, 2012 "9) Simply double click that script' date=' and a big list of crap will pop up in a Properties window. Click "Add Property" and another window will pop up. Change Type to "Armor", change Name to "Erection", then hit Okay" At which point the CK fails to compile it for me, Starting 1 compile threads for 1 files... Compiling "MLArapeeffectscript"... script property Erection already has a set function defined No output generated for MLArapeeffectscript, compilation failed. Batch compile of 1 files finished. 0 succeeded, 1 failed. Failed on MLArapeeffectscript Any idea whats going wrong there ? [/quote'] I think I am encountering the same problem. Checked to make sure I put everything in correctly. Anyone know what's going on? EDIT: more specifically, this is what I'm getting: Starting 1 compile threads for 1 files... Compiling "MLArapeeffectscript"... c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\mlarapeeffectscript.psc(781,15): script property Erection already defined c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\mlarapeeffectscript.psc(781,15): script variable ::Erection_var already defined c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\mlarapeeffectscript.psc(781,15): script property Erection already has a get function defined c:\program files (x86)\steam\steamapps\common\skyrim\Data\Scripts\Source\mlarapeeffectscript.psc(781,15): script property Erection already has a set function defined No output generated for MLArapeeffectscript, compilation failed. Batch compile of 1 files finished. 0 succeeded, 1 failed. Failed on MLArapeeffectscript
dkatryl Posted September 24, 2012 Author Posted September 24, 2012 Huh, odd. I tried to recreate this from scratch, and I got the same message on Step 9 as well. I didn't get that the first time I did it. However, I basically told it to shut up about it (Hit "Okay" or something), and I was still able to just select 'Erection' from the "Pick Object" selector. So give that a shot. If it still fails, I don't know, it worked for me?
guilmonex Posted September 24, 2012 Posted September 24, 2012 Maybe, you can upload it somewhere and we pm you for the esp?
Funkcikle Posted September 24, 2012 Posted September 24, 2012 still unable to get past step 9, compiling the new property. Has anyone got any ideas why some of us are unable to get this to compile ?. It should go without saying but i'll say it anyway, I'm a comeplete munkie when it come to scripting. no idea what I'm doing. So for me it was just a case of blindly following the instrutions.
dkatryl Posted September 24, 2012 Author Posted September 24, 2012 Maybe' date=' you can upload it somewhere and we pm you for the esp? [/quote'] The biggest problem I would potentially have with doing that is that what I have listed is not the only thing that I changed about the MiniLovers experience, or at least how I use it. I know I changed one of the scripts that autoadds the MLA Rape Spell to your spell list, because frankly, randomly casting it on NPC's seems kind of silly after the first time or two just to see the mod work. I mostly use ML so I can boink Jenassa, my NPC wife (Love that little deadly minx! ), between adventures, as well as random appreciative ladies that I have assisted through side quests, so I enter into the sex scenes through dialog, not the spells. To be honest, I think I prefer the system that Animated Prostitution uses to actually engage in the sex acts (Dialog, using Speechcraft, etc) but I prefer the actual animations and sounds from MiniLovers. Since I don't know jack about making animations, but I understand the CK and scripts, I figured it will be far easier for me to add some AP features to MiniLovers than trying to bugger around with replacing animations/sounds in AP. If that makes sense. Fortunately, I haven't really begun doing much towards blending the two, as I was dinking with AP over the weekend, seeing what I liked and didn't like from it, and that's why I ended up rebuilding MLA from scratch, which let me see what you guys were talking about on Step #9. (Of course, I was able to just ignore the error and set the property all the same.) I'd have to go and make sure that nothing in the .esp was affected in that regards (I *think* it was all done in scripts, not the actual .esp. but I'd have to verify), because then I'd be uploading a mix of tweaks that would go further than the original description of the auto-equipping erection suit.
Funkcikle Posted September 24, 2012 Posted September 24, 2012 So, has anyone been able to follow the instructons and make it work ? I just pressed on past step 9, despite the ck complaining , and was indeed able to find erection in the pick object drop down menu. so i picked it. I've cheerfully copypasted your additions to the mlarapeeffectscript in notepad ++ and it won't complie. "Starting 1 compile threads for 1 files... Compiling "MLArapeeffectscript"... e:\shitsteam\steamapps\common\skyrim\Data\Scripts\Source\mlarapeeffectscript.psc(777,15): script property Erection already defined e:\shitsteam\steamapps\common\skyrim\Data\Scripts\Source\mlarapeeffectscript.psc(777,15): script variable ::Erection_var already defined e:\shitsteam\steamapps\common\skyrim\Data\Scripts\Source\mlarapeeffectscript.psc(777,15): script property Erection already has a get function defined e:\shitsteam\steamapps\common\skyrim\Data\Scripts\Source\mlarapeeffectscript.psc(777,15): script property Erection already has a set function defined No output generated for MLArapeeffectscript, compilation failed. Batch compile of 1 files finished. 0 succeeded, 1 failed. Failed on MLArapeeffectscript" what does that actually mean, and whats wrong with it ? So, without meaning to sound overly critical but are these steps correct ? is the syntax right. Has anyone else made this work, or is it just me being a ham fisted fool making a hash of something that is quite straightforwards. ( .... stomps off out to find a cat to kick to vent his frustrations... )
dkatryl Posted September 24, 2012 Author Posted September 24, 2012 I copy/pasted the actual script changes directly out of my own source script file, so I know the syntax is correct, and mine compiles correctly. If I am able to upload the .esp, I can also upload the script source file as well, provided that it doesn't have any other changes to it beyond the scope of the auto-equipping erection suit, since I don't want to inadvertently change OTHER parts of the mod for other people. I don't think that will be the case, but I still have to double check. Either way, the earliest I can do anything is this evening, since I'm at work.
Funkcikle Posted September 24, 2012 Posted September 24, 2012 thanks very much m8ty, I know I'm implicitly implying that you've made a mistake, but i think we all know that infact its me being a dumbarse. (can u implicitly imply something ? or is the implicity already implied ?.. I think I've confuzzeled myself)
dkatryl Posted September 24, 2012 Author Posted September 24, 2012 Ah, I figured out the issue, and the fix is remarkably easy. Apparently, the issue came about from the order in which I originally did this. Remember, I was stumbling blind trying to make this work with little to no outside reference other than trying to read someone else's work and basically backwards engineer it enough so that I could make the change I wanted. Apparently, when you add the property directly into the Magic Effect as I listed in Step #9, it becomes completely unnecessary to list that particular global in the actual script itself. So when I added that global in the script, itself, when I was figuring things out, it compiled just fine, just like I said, but it didn't actually DO what I wanted. Then I stumbled across the Add Property in the Magic Effect (Step #9), and when I added that part, suddenly it all worked! But here's the thing, since it was working now, I had no real reason to go BACK to the script that had the unnecessary global added, and recompile, or else I would have discovered pretty much what some of you have reported: Failed to compile. So, to fix that, just remove the line I put in Step #11: 11) Once this is open, find the section: bool stageKeyFlag = False bool reverseKeyFlag = False bool idleSelectKeyFlag = False bool wasDead = false after that, add the line: Armor Property Erection Auto So, just remove "Armor Property Erection Auto" from the script. It should then compile just fine. The REST of the script changes I listed, do those, as those handle the actual stripping/suit wearing/removing stuff. I'm going to edit the original post now.
simple0 Posted February 23, 2013 Posted February 23, 2013 I wonder if it's possible that instead of automatically equipping an "erection armor" to automatically equip an "erection weapon"? I have a version of Skyrim (the clothes and armor folders under meshes) where all women wear only the top portion of their clothes or armor, no skirt, no panties. If I disable auto-undress, the sex acts are performed with clothes on, but there are no penises involved. If a penis weapon could be automatically equipped when the sex animation starts, then we could take advantage of all those exposed female bits, without getting everybody in the scene naked every time (more lore friendly that way)! ;-) The "weapon" could be equipped only in "auto-undress off" mode, so both clothed and naked sex be available. It looks very hot when a lot of couples f**k (like in MiniLovers or Sex Addict "Maddness Rape" mode), but only the women bottom part is exposed. Of course, this is my own perverted taste!
Recommended Posts
Archived
This topic is now archived and is closed to further replies.