movomo Posted April 12, 2019 Share Posted April 12, 2019 Introduction I've been working on female versions of vanilla creatures recently for Lovers Creature update, but the thing is it takes QUITE some time to make a decent creature model. I've got more things to do with Lovers Creature, not even counting my RL, so I decided to post the resources in public. To draw more attention, and hopefully attracting some helping hands in the process. The Female Creature Workshop The main purpose of this project and thread is to contribute to the long-overdue upcoming new version of Lovers Creature (which will let you bang female creatures), but also it can be a separate greatness on its own, to have female versions of creatures. Because why the hell not, chicks have tits and are cool. There are a few female creature mods already. While I generally suck at collecting and locating stuff, let me first point you to the glorious Oblivion Sexualized Monsters (OSM) by Rebel o Conner. There are a few on Nexus as well, at least Xivilai and Lich. Especially, OSM contains the female version of almost all monsters. So technically we should say, we're done with the female part.... right? RIGHT? Except we aren't quite so. OSM is an old mod and the models and textures there often don't meet today's higher standards. So we still have some room for improvement. So I started working on them. On this post, I'll write down my finished works, WIPs, their progresses and future plans. None will be released in a cookie-cutter installer form, they're primarily a modder's resource. You can create your own mod with them though. If the textures in the uploaded packages are not assigned a proper path, know that they are supposed to be at the standard location ("textures\creatures\<creaturefolder>") when included in the LoversCreature distribution package. Quote How to contribute: If you can make models, that's really great. You can pick a creature you want and make a female version and post it here. If you can't model but can do some texturing, that's still great too, because texturing is an equally time-consuming process (if not more so). A 3d modeler is not necessarily a great texturer. You can help by picking up a finished/unfinished model and making a texture for them. Contact the author of the model to do so, they'll be very happy to hand you the model. Maybe you could provide a design idea or sketch. If you can't do any of the above, you can still help by trying them out in game and spot problems, or finding a decent female creature mod on the internet and link here. As I said, I suck at collecting stuff, so it is very possible that I try to re-invent the wheel when there is a great creature resource out there already. Quote In case you decided to contribute: The female model must use the same skeleton with the male version. Otherwise it is of no use for LoversCreature. Know that the creatures will regularly appear as random monsters, so please refrain from making your model with absurdly many polygons or obcenely large textures. The design of your model is completely free. Whether you include your work files (.blend, .psd, etc.) in the package is totally up to you. It's helpful to have them, but you're not compelled. If multiple contributors compete over the same creature, if ever, then (probably) the most popular one will be included as default in LoversCreature. The others will (again, probably) still be included as options. License: By posting your models/textures here, you are agreeing that it may be included in the LoversCreature mod without further of your express permission. You will get one line of credit, maybe the community's heartfelt gratitude and perhaps some fame, but definitely not a fortune. Other than those you will get nothing, as is usual in all things voluntary. Status Flesh Atronach: DONE Spoiler fem-fleshatronach.7z No variants, other than their gemstone color. The gemstones are glossy (somewhat similar to glass) and glowy. (screenshot by sunhawken) Frost Atronach: Texture WIP (on hold) Spoiler fem-frostatronach-model.7z Rigging, uv mapping all done. The package includes uv map (joined all together for convenience) and two kinds of ambient occlusion maps - one with the shades cast by clipping objects, and one without. The spider daedra face texture is there simply for a guide. I kinda don't have much idea on how to paint a nice ice-like texture for this one, so I'm procrastinating. Unless someone else does it of course, which seems unlikely... There are two potential problems here: I want to make it partially transparent, and transparency in a skinned model tends not to play nice with other such objects. This is especially so if it has to be only partially transparent and not to be done with a test threashold (such as the combination of flag 4845 & 4846 with high threshold which you often see in wig meshes). I'll try 4333 first. If I can't get it working, it will have to do without transparency. I want to apply a refraction shader instead of envmap reflection, like the Chameleon effect. Problem is I don't know if refraction shader works for the skinned model, I've never tried it. As to why it can be bad: I once had enabled parallax occlusion for an armor model in the past. It looked cool, but some people reported CTD. Looks like some graphics cards/drivers handle unusual things better than others. Again, if this fails, she will have to carry on without the 20% cooler factor. Goblin: Not started (don't know if this is needed) Imp: Not started Lich: Not started Spoiler Minotaur: Not started (don't know if this is needed; OSM may be good enough) Ogre: Not freshly done, but I think OSM version is good enough. Spoiler Slightly fixed OSM model. Originally by Rebel'O'Conner. Scamp: Not started Spider Daedra: WIP, Based on Myst's Spoiler Spriggan: Already female, but I have a plan to improve them (using Myst's Beatiful Spriggan as base) Xivilai: DONE Spoiler fem-xivilai.7z They come with 3 clothing variants: skirt (default), bikini and a clothing resembles kimono (the usual Daedric theme, if you ask me why) Auroran: Not started (Not present in OSM) Spoiler Zombie: Modified Tbsk's Zombie Spoiler fem-zombie.7z *Reuploaded with the fixed hairs* It's a modified Tbsk's Zombie Race. I chopped the models by body parts and standarized the seams. So now this has two variants for each body part (just like vanilla) and all of them can be assembled freely (again, just like vanilla). I also ended up fixing one of the AGS hairs in the process... gah. (fixed normals artifact caused by wrong uv mapping and totally reordered the hair layers.) It's AGS 03, if anybody cares. The others, I don't think they really need female version. But you can argue that if you think differently. General Resource rt--hgec-el.nif An HGEC E/L body model mapped to Robert Female texture. Robert Female is much easier for texturing. rt--hgec-el--laz-kexw.nif Said RF-HGEC body converted to ZKEC Kaiaku E/XWide using the Clothing Converter. 6 Link to comment
movomo Posted April 12, 2019 Author Share Posted April 12, 2019 LoversCreature test plugin femswap.esp femswap-data-0.2.3.7z (data) femswap-esp-0.2.2.7z (esp only) femswap-esp-0.2.3.7z (esp only) femswap-esp-0.3.0.7z (esp only) Version: 0.3.0 Changes: Spoiler 0.3.0 new: Pregnancy-specific model switching. (Enabled for all 4 types: b, c, p, v) 0.2.3 fix: Update3D logic issue change: Different cache structure for more effective partial purge. change: Now purges cache after walking nearby creatures, not before. new: Now contains ALL vanilla creature penis. 0.2.2 fix: properly use original model even if none found for a specific gender change: More frequent purge (after {iCachePurgeThreshold} sessions: current 3) new: Mountain lion, horse ap, dog ap (need fix), ogre ap penis meshes 0.2.1 fix: ini setting retrieval (I was doing it wrong, cell buffer guessing was completely not functional) change: Optimization change: fsFnFormatPretty rewritten as fsFnPrettyPrint, fsFnPrettyFormat new: fsFnSetFemale new: Deer, Sheep penis meshes Abstract: This plugin sets all creatures' gender to either male or female (by 50% chance each) in the vicinity of the player character. It then parses the creature's model list and modifies it according to certain rules, making him/her look properly masculine/faminine. Also, it responds to the common Lovers sex event and equip 'genital' models when a creature is engaged in sex. This is merely a 'proof of concept' kind of plugin. It will not be maintained steadily. Once the model switch mechanic is deemed successful enough, this mod will be merged into LoversCreature. Detail: There are 2 kinds of genders: male ("m") and female ("f"). Also 4 kinds of model types: body ("b"), clothing ("c"), penis ("p") and vagina ("v") femswap-compatible model is recognized by the model's file name with a speicial suffix consisting of "_Lc" and model type / gender described above. No messing with ini or model path changing via esp necessary. File names: MODELNAME = [ BASENAME + ] "_Lc" + TYPE [ + GENDER ] + ".nif" # All letters are case-insensitive. @optional BASENAME = "Any filename accepted by filesystem" and not ("_Lc" or ".nif") @mandatory TYPE = "b" or "c" or "p" or "v" @optional GENDER = "f" or "m" # Pregnancy was added as of 0.3.0, but I'm too lazy to update the doc. # Enabled by appending t# to any of the above 4 types, such that it would be like "basename_Lcbft3.nif". # https://www.loverslab.com/topic/119906-female-creature-workshop/?do=findComment&comment=2629449 Simply put, you append a suffix "_LcXX" between your original file name and file extension (".nif") and you're done. If BASENAME is omitted, TYPE must be PENIS or VAGINA. If GENDER is omitted, the model is considered neuter / unisex. (both male and female can use it) Now I'll explain what each type does. Do note that I only specify when each type of model is enabled/disabled, but not how it should look. Each type's name is merely a 'nickname' that I think most suitable for its designed role. BODY ("b"): BODY model stays enabled at all times. Given a BASENAME, first femswap.esp searches if at least one BODY model can be found for it. If one is found, then the original model is disabled and the newfound BODY model is used instead; If none is found, the original model is left alone. CLOTHING ("c"): CLOTHING model is enabled while not having sex and disabled during sex. Even if a CLOTHING model is found for BASENAME, the original model is not disabled, unless BODY model is also found. PENIS ("p"): PENIS model is only enabled during sex, and the creature must be in the giving position (aka "offence" in LAPF terms). VAGINA ("v"): VAGINA model is only enabled during sex, and the creature must be in the receiving position (aka "defence" in LAPF terms). All of the above four may be combined with an optional GENDER. This makes some interesting combinations, notably female penis and male vagina. Now you might ask "What in Nocturnal's divine keyhole a male vagina is???" In case such a faithless question plagues your embarrassed mind; do penance, and recall that I do not enforce your model to resemble a certain phallic/yonic object. Such a thing is allowed to give more freedom to modders, and in turn players as well. A special note on PENIS/VAGINA models: If BASENAME is omitted in the file name (such as "_Lcp.nif" or "_Lcvf.nif") then such models are recognized as 'fallback' genital model. For creatures about to have some fun, femswap.esp counts the number of genital models found. If none is found, it attempts to locate the fallback genital model for the creature. models with GENDER takes precedence over a neuter model. If a model with matching gender (such as "_Lcbf") and an unisex model (such as "_Lcb") are both found, the unisex one is not used. Quest stages: Some quest stages are (or will be) assigned some debug functionalities. Notably, type: SetStage femswapMain, 100 to display help message. As of this writing, only one though: (101) Dump creature model cache on the console. Link to comment
myuhinny Posted April 12, 2019 Share Posted April 12, 2019 Looks good. I unfortunately have no skills in this area. Link to comment
LongDukDong Posted April 15, 2019 Share Posted April 15, 2019 Well, I think you did mention that the 'Goblins' are just plain ugly. The OSM does have ugly Goblin women.... and probably why they prefer to go out after OTHER humanoid women. Minotaurs? I agree with you. But I think the cows NEED to lose the horns. Have you seen a cow with horns? The head is basically it for an edit of the OSM version I think. Ogres. Well, the males in the OSM have those blasted loin cloths. Whoever heard of a loin cloth made with an erection hole in place? Imps and Scamps? The OSM has em and are just too damn ugly... But then again, a scamp might think the same of Scarlett Johansson. I think I saw a Female Lich mod in Nexus Mods. Nice work on the Xivilai femme. At least this one looks decent compared to the OSM version, and uses the same skeleton instead of the Female Xivilai mod at Nexus Mods. Damn, that sucked not working. On 4/12/2019 at 7:26 AM, movomo said: The female model must use the same skeleton with the male version. Otherwise it is of no use for LoversCreature. Thankfully, both the male and female Hitode and Mushroom creatures in Lovers Creatures share skeletons. But what of the Tentacle Monster? Or can we tell it to go fuck itself? EDIT: On 4/12/2019 at 7:26 AM, movomo said: Auroran Okay, Not withstanding Mr. Spammy McGee (below), what the heck is an Auroran? *GOOGLES* Hrm... If doing that, why not the Twilight (spriggan model?) or Guar from Morrowwind (Horse model? Some mount mods were made). Link to comment
movomo Posted April 15, 2019 Author Share Posted April 15, 2019 On 4/13/2019 at 12:24 AM, myuhinny said: Looks good. I unfortunately have no skills in this area. Showing your interest is good enough for me, thanks. I forgot to comment about this. Ah, yes. Minotaur girls really do need to lose their horns. And no I have not seen a cow with the horns, well except in the glorified monstergirl stuff. I [want to] think of the Imps and Scamps as some sort of little cute devils. Mischief, but still adorable. At least in everything except appearance. And voice. So why not make their chick version better? Espcially when their OSM version are sub-optimal. I want to do them if I can spare some time. (low priority) The lich mod on Nexus used different skeleton last time I checked. Duh... 5 hours ago, LongDukDong said: EDIT: Okay, Not withstanding Mr. Spammy McGee (below), what the heck is an Auroran? *GOOGLES* Hrm... If doing that, why not the Twilight (spriggan model?) or Guar from Morrowwind (Horse model? Some mount mods were made). I plan to do Aurorans because they are from an official plugin that is Knights of the Nine, friend. Not originally from ESO, I assure you. Although, for some unknown (but imaginable) reason, not included in LoversCreature. I do want to work Twilight also, believe me. But those already on the list alone will take at least months. Link to comment
sunhawken Posted April 15, 2019 Share Posted April 15, 2019 Female zombie is already done > Zombie Race HGEC and Robert Male WIP. Link to comment
sunhawken Posted April 15, 2019 Share Posted April 15, 2019 https://www.nexusmods.com/oblivion/mods/49016 Female Ogres (playable resource) Link to comment
sunhawken Posted April 15, 2019 Share Posted April 15, 2019 https://www.nexusmods.com/oblivion/mods/26642 Female Lich Link to comment
movomo Posted April 15, 2019 Author Share Posted April 15, 2019 Thanks. err.. Unfortunately, the zombie (I presume it's Colourwheel's) sounds like they use human skeleton. Female Lich uses human skeleton too. Though I might have to check if I can easily convert them before I waste time. Only the Ogre one is usable, but I'm not quite sure if it's any better than OSM's. Link to comment
movomo Posted April 21, 2019 Author Share Posted April 21, 2019 Female Flesh Atronach finally done, so bumping. 3 Link to comment
LongDukDong Posted April 23, 2019 Share Posted April 23, 2019 Nice.... bumps. So we're gonna have attractive scamps and imps? Seriously? This is like having Sofia Boutella as the Mummy! I seriously never thought I'd be attracted to the Mummy. Will there be a means to remove clothing during sex? That heavy loin cloth would obviously get in the way. Link to comment
movomo Posted April 23, 2019 Author Share Posted April 23, 2019 I have little idea on how should the imps and scamps look like without utterly breaking their original theme. On the other hand, I do have some thoughts on the Frost Atronach so I think maybe I'll do them next time. Btw removing clothings during sex is supposed to be one of the core features of the upcoming 2.5 update. I'm fairly certain it could be done. Link to comment
LongDukDong Posted April 24, 2019 Share Posted April 24, 2019 Hey. Here's some CODE I used. * THERE'S NO SPOILERS? THE CODE BOXES DON'T RESIZE? * This one obtains an ID for the creature based on model and texture-type. That way, you can have various horses as they all have the same model. Scn OGCTestModel ; FUNCTION: Modeled after the 'xLoversCmnGetCreatureType' script, this script ; examines the subject and acquires its ID based on Model or FormID. ;; Define values for script ref me ; Function Reference: Subject Reference short iRet ; Function Return: Numeric ID value for Creature Detected short zombiemix ;ref testHitodeF ; Variable: Temporary Holder for Female Hitode Reference ;ref testHitodeM ; Variable: Temporary Holder for Male Hitode Reference ;ref testMushroomF ; Variable: Temporary Holder for Female Mushroom Reference ;ref testMushroomM ; Variable: Temporary Holder for Male Mushroom Reference ;ref testTentacle ; Variable: Temporary Holder for Tentacle Monster Reference ;; Define Function Begin Function { me } ;; Define the return values Set iRet to 0 SetFunctionValue 0 ;; Create New References for test ; set testHitodeF to xSSDCV.xLCVHitodeF ; set testHitodeM to xSSDCV.xLCVHitodeM ; set testMushroomF to xSSDCV.xLCVMushroomF ; set testMushroomM to xSSDCV.xLCVMushroomM ; set testTentacle to xSSDCV.xLCVTentacle ; Exit if not a valid creature ; Return value already set if me.GetIsCreature == 0 return endif ;; Otherwise, branch on Creature Model if( me.ModelPathIncludes "\Baliwog\" == 1 ) ; Baliwog Set iRet to 1 elseif( me.ModelPathIncludes "\Bear\" == 1 ) ; Bear if me.HasModel "BlackBearHead.nif" == 1 Set iRet to 2 else Set iRet to 3 endif elseif( me.ModelPathIncludes "\Boar\" == 1 ) ; Boar Set iRet to 4 elseif( me.ModelPathIncludes "\Clannfear\" == 1 ) ; Clannfear Set iRet to 5 elseif( me.ModelPathIncludes "\Daedroth\" == 1 ) ; Daedroth Set iRet to 6 elseif( me.ModelPathIncludes "\Deer\" == 1 ) ; Deer Set iRet to 7 elseif( me.ModelPathIncludes "\Dog\" == 1 ) ; Dog (Continue test on model) Set iRet to 8 elseif( me.ModelPathIncludes "\Elytra\" == 1 ) ; Elytra if me.HasModel "ManiaHead1.nif" == 1 Set iRet to 10 elseif me.HasModel "ManiaHeadset2.nif" == 1 Set iRet to 10 elseif me.HasModel "ManiaHeadset3.nif" == 1 Set iRet to 10 else Set iRet to 9 endif elseif( me.ModelPathIncludes "\FlameAtronach\" == 1 ) ; Flame Atronach Set iRet to 11 elseif( me.ModelPathIncludes "\FleshAtronach\" == 1 ) ; Flesh Atronach Set iRet to 12 elseif( me.ModelPathIncludes "\FrostAtronach\" == 1 ) ; Frost Atronach Set iRet to 13 elseif( me.ModelPathIncludes "\GateKeeper\" == 1 ) ; Gatekeeper Set iRet to 14 elseif( me.ModelPathIncludes "\Ghost\" == 1 ) ; Ghost Set iRet to 15 elseif( me.ModelPathIncludes "\Gnarl Dementia\" == 1 ) ; Gnarl - Dementia Set iRet to 16 elseif( me.ModelPathIncludes "\Gnarl\" == 1 ) ; Gnarl Set iRet to 17 elseif( me.ModelPathIncludes "\Goblin\" == 1 ) ; Goblin if me.HasModel "shamanbag.nif" == 1 Set iRet to 21 elseif me.HasModel "skirmisherfront.nif" == 1 Set iRet to 19 elseif me.HasModel "skirmisherfront2.nif" == 1 Set iRet to 19 elseif me.HasModel "goblinhelmet.nif" == 1 Set iRet to 20 else Set iRet to 18 endif elseif( me.ModelPathIncludes "\Grummite\" == 1 ) ; Grummite if me.HasModel "Grummitem.nif" == 1 Set iRet to 23 elseif me.HasModel "GrummitemArmor.nif" == 1 Set iRet to 23 else Set iRet to 22 endif elseif( me.ModelPathIncludes "\Horse\" == 1 ) ; Horse if me.HasModel "Horseheadblack.nif" == 1 Set iRet to 25 elseif me.HasModel "Horseheadchestnut.nif" == 1 Set iRet to 26 elseif me.HasModel "Horseheadgrey.nif" == 1 Set iRet to 27 elseif me.HasModel "Horseheadpaint.nif" == 1 Set iRet to 28 else Set iRet to 24 endif elseif( me.ModelPathIncludes "\Hunger\" == 1 ) ; Hunger Set iRet to 29 elseif( me.ModelPathIncludes "\Imp\" == 1 ) ; Imp Set iRet to 30 elseif( me.ModelPathIncludes "\Jyggylag\" == 1 ) ; Jyggylag Set iRet to 31 elseif( me.ModelPathIncludes "\LandDreugh\" == 1 ) ; Land Dreugh Set iRet to 32 elseif( me.ModelPathIncludes "\Lich\" == 1 ) ; Lich Set iRet to 33 elseif( me.ModelPathIncludes "\MehrunesDagon\" == 1 ) ; Mehrunes Dagon Set iRet to 34 elseif( me.ModelPathIncludes "\Minotaur\" == 1 ) ; Minotaur if me.HasModel "HeadLord.nif" == 1 Set iRet to 36 else Set iRet to 35 endif elseif( me.ModelPathIncludes "\MountainLion\" == 1 ) ; Mountain Lion if me.HasModel "LstGel.nif" == 1 Set iRet to 38 else Set iRet to 37 endif elseif( me.ModelPathIncludes "\MudCrab\" == 1 ) ; Mud Crab Set iRet to 39 elseif( me.ModelPathIncludes "\MurkDweller\" == 1 ) ; Murk Dweller / Scalon if me.HasModel "murk.nif" == 1 Set iRet to 41 elseif me.HasModel "murkarmor.nif" == 1 Set iRet to 41 else Set iRet to 40 endif elseif( me.ModelPathIncludes "\Ogre\" == 1 ) ; Ogre Set iRet to 42 elseif( me.ModelPathIncludes "\Rat\" == 1 ) ; Rat if me.HasModel "LDKRabbit.nif" == 1 Set iRet to 44 elseif me.HasModel "LDKRabbit.nif" == 1 Set iRet to 44 elseif me.HasModel "LSTRabbitWhiteBlack.nif" == 1 Set iRet to 45 elseif me.HasModel "LSTRabbitWhiteBlackF.nif" == 1 Set iRet to 45 elseif me.HasModel "LSTGangChong2.nif" == 1 Set iRet to 46 elseif me.HasModel "LSTGangChongF.nif" == 1 Set iRet to 46 elseif me.HasModel "LSTWorm2.nif" == 1 Set iRet to 47 elseif me.HasModel "LSTWormF.nif" == 1 Set iRet to 47 else Set iRet to 43 endif elseif( me.ModelPathIncludes "\Scamp\" == 1 ) ; Scamp Set iRet to 48 elseif( me.ModelPathIncludes "\Shambles\" == 1 ) ; Shambles Set iRet to 49 elseif( me.ModelPathIncludes "\Sheep\" == 1 ) ; Sheep if me.HasModel "LSTDickInsectSheep.nif" == 1 Set iRet to 51 elseif me.HasModel "LSTDickInsectSheepF.nif" == 1 Set iRet to 51 else Set iRet to 50 endif elseif( me.ModelPathIncludes "\Skeleton\" == 1 ) ; Skeleton Set iRet to 52 elseif( me.ModelPathIncludes "\Slaughterfish\" == 1 ) ; Slaugherfish if me.HasModel "LstPeter1.nif" == 1 Set iRet to 54 elseif me.HasModel "LstPeter1.nif" == 1 Set iRet to 54 elseif me.HasModel "LstPaul1.nif" == 1 Set iRet to 55 elseif me.HasModel "LstPaul1F.nif" == 1 Set iRet to 55 elseif me.HasModel "LstMarry1.nif" == 1 Set iRet to 56 elseif me.HasModel "LstMarry1F.nif" == 1 Set iRet to 56 else Set iRet to 53 endif elseif( me.ModelPathIncludes "\SpiderDaedra\" == 1 ) ; Spider Daedra if me.HasModel "Spiderling.nif" == 1 Set iRet to 58 elseif me.HasModel "Spiderling-E.nif" == 1 Set iRet to 58 else Set iRet to 57 endif elseif( me.ModelPathIncludes "\Spriggan\" == 1 ) ; Spriggan Set iRet to 59 elseif( me.ModelPathIncludes "\StormAtronach\" == 1 ) ; Storm Atronach Set iRet to 60 elseif( me.ModelPathIncludes "\Troll\" == 1 ) ; Troll if me.HasModel "MS14TrollF.nif" == 1 Set iRet to 62 elseif me.HasModel "MS14TrollME.nif" == 1 Set iRet to 62 else Set iRet to 61 endif elseif( me.ModelPathIncludes "\WillOTheWisp\" == 1 ) ; Will o the Wisp Set iRet to 63 elseif( me.ModelPathIncludes "\Wraith\" == 1 ) ; Wraith if me.HasModel "WraithLordHead.nif" == 1 Set iRet to 65 else Set iRet to 64 endif elseif( me.ModelPathIncludes "\Xivilai\" == 1 ) ; Xivilai if me.ModelPathIncludes "xBitchWWWerewolf" set iRet to -1 else set iret to 66 endif elseif( me.ModelPathIncludes "\Zombie\" == 1 ) ; Zombie if me.HasModel "lefttorsof01.nif" == 1 Set zombieMix to 1 elseif me.HasModel "lefttorso01.nif" == 1 Set zombieMix to 1 else Set zombieMix to 0 endif if me.HasModel "Righttorsof01.nif" == 1 Set zombieMix to (zombieMix + 2) elseif me.HasModel "Righttorso01.nif" == 1 Set zombieMix to (zombieMix + 2) endif if me.HasModel "leftlegf01.nif" == 1 Set zombieMix to (zombieMix + 4) elseif me.HasModel "leftleg01.nif" == 1 Set zombieMix to (zombieMix + 4) endif if me.HasModel "Rightlegf01.nif" == 1 Set zombieMix to (zombieMix + 8 ) elseif me.HasModel "Rightleg01.nif" == 1 Set zombieMix to (zombieMix + 8 ) endif if zombiemix == 0 ;; left2 / Right 02 / Left Leg02 / Right Leg02 Set iRet to 67 elseif zombiemix == 1 ;; left1 / Right 02 / Left Leg02 / Right Leg02 Set iRet to 68 elseif zombiemix == 2 ;; left2 / Right 01 / Left Leg02 / Right Leg02 Set iRet to 69 elseif zombiemix == 3 ;; left1 / Right 01 / Left Leg02 / Right Leg02 Set iRet to 70 elseif zombiemix == 4 ;; left2 / Right 02 / Left Leg01 / Right Leg02 Set iRet to 71 elseif zombiemix == 5 ;; left1 / Right 02 / Left Leg01 / Right Leg02 Set iRet to 72 elseif zombiemix == 6 ;; left2 / Right 01 / Left Leg01 / Right Leg02 Set iRet to 73 elseif zombiemix == 7 ;; left1 / Right 01 / Left Leg01 / Right Leg02 Set iRet to 74 elseif zombiemix == 8 ;; left2 / Right 02 / Left Leg02 / Right Leg01 Set iRet to 75 elseif zombiemix == 9 ;; left1 / Right 02 / Left Leg02 / Right Leg01 Set iRet to 76 elseif zombiemix == 10 ;; left2 / Right 01 / Left Leg02 / Right Leg01 Set iRet to 77 elseif zombiemix == 11 ;; left1 / Right 01 / Left Leg02 / Right Leg01 Set iRet to 78 elseif zombiemix == 12 ;; left2 / Right 02 / Left Leg01 / Right Leg01 Set iRet to 79 elseif zombiemix == 13 ;; left1 / Right 02 / Left Leg01 / Right Leg01 Set iRet to 79==80 elseif zombiemix == 14 ;; left2 / Right 01 / Left Leg01 / Right Leg01 Set iRet to 81 elseif zombiemix == 15 ;; left1 / Right 01 / Left Leg01 / Right Leg01 Set iRet to 82 endif else Set iRet to 0 ; Else... no base detected endif ;; Additional considerations for Lovers Creatures and ;; Werewolf model From Lovers Bitch and/or Bravil Underground ;if me.getisid testHitodeF == 1 ; set iRet to 46 ;elseif me.getisid testHitodeM == 1 ; set iRet to 47 ;elseif me.getisid testMushroomF == 1 ; set iRet to 48 ;elseif me.getisid testMushroomM == 1 ; set iRet to 49 ;elseif me.getisid testTentacle == 1 ; set iRet to 50 ;elseif me.ModelPathIncludes "xBitchWWWerewolf" ; set iRet to 51 ;endif ;; Redefine the Function Return SetFunctionValue iRet End And the other code runs the above code to get the model ID, but requires the creature's reference and two ID flags for gender: call OGCSwitchGender refOwner 0 1 .... if the creature's gender is becoming female call OGCSwitchGender refOwner 1 0 .... if the creature's gender is becoming male scn OGCSwitchGender ref target ; Variable: Object/Actor Reference ;short tofemaleflag ; Variable short modelval short togglemale short togglefemale Begin function {target togglemale togglefemale} set modelval to call OGCTestModel target ;if tofemaleflag == 1 ; set togglemale to 0 ; set togglefemale to 1 ;else ; set togglemale to 1 ; set togglefemale to 0 ;endif printC "the target is a %n and a model value of %.0f" target modelval printc "male value is %.0f while female value is %.0f" togglemale togglefemale if modelval == 1 target.ToggleCreatureModel "BaliwogArmor.Nif" togglemale target.ToggleCreatureModel "Baliwog.Nif" togglefemale elseif modelval == 2 target.ToggleCreatureModel "BlackBearArmor.Nif" togglemale target.ToggleCreatureModel "BlackBearBody.Nif" togglefemale elseif modelval == 3 target.ToggleCreatureModel "BearArmor.Nif" togglemale target.ToggleCreatureModel "BearBody.Nif" togglefemale elseif modelval == 4 target.ToggleCreatureModel "BoarArmor.Nif" togglemale target.ToggleCreatureModel "BoarBody.Nif" togglefemale elseif modelval == 5 target.ToggleCreatureModel "ClannfearArmor.Nif" togglemale target.ToggleCreatureModel "Clannfear.Nif" togglefemale elseif modelval == 6 target.ToggleCreatureModel "DaedrothArmor.Nif" togglemale target.ToggleCreatureModel "Daedroth.Nif" togglefemale elseif modelval == 7 target.ToggleCreatureModel "antlar8point.Nif" togglemale target.ToggleCreatureModel "skindoearmor.Nif" togglemale target.ToggleCreatureModel "skindoe.Nif" togglefemale elseif modelval == 8 target.ToggleCreatureModel "DogD.Nif" togglemale elseif modelval == 9 target.ToggleCreatureModel "elytraarmor.Nif" togglemale target.ToggleCreatureModel "elytrabody.Nif" togglefemale elseif modelval == 10 target.ToggleCreatureModel "maniaelytraarmor.Nif" togglemale target.ToggleCreatureModel "maniaelytrabody.Nif" togglefemale elseif modelval == 11 target.ToggleCreatureModel "FlameAtronachM-E.Nif" togglemale target.ToggleCreatureModel "FlameAtronachF-B.Nif" togglefemale elseif modelval == 12 target.ToggleCreatureModel "FleshAtronachArmor.Nif" togglemale elseif modelval == 13 target.ToggleCreatureModel "FrostAtronachArmor.Nif" togglemale target.ToggleCreatureModel "FrostAtronachF.Nif" togglefemale elseif modelval == 14 target.ToggleCreatureModel "GatekeeperArmor.Nif" togglemale target.ToggleCreatureModel "Gatekeeper.Nif" togglefemale elseif modelval == 15 target.ToggleCreatureModel "InnerbodyMissiveArmor.Nif" togglemale target.ToggleCreatureModel "OuterBodyMissive.Nif" togglemale target.ToggleCreatureModel "InnerbodyMissiveF.Nif" togglefemale target.ToggleCreatureModel "OuterBodyMissiveF.Nif" togglefemale elseif modelval == 16 ;; Elytra have no change elseif modelval == 17 ;; Elytra have no change elseif modelval == 18 target.ToggleCreatureModel "GoblinChest01.Nif" togglemale target.ToggleCreatureModel "GoblinLegsArmor.Nif" togglemale target.ToggleCreatureModel "LegF01.Nif" togglefemale target.ToggleCreatureModel "ChestF02.Nif" togglefemale elseif modelval == 19 target.ToggleCreatureModel "GoblinLegsArmor.Nif" togglemale target.ToggleCreatureModel "SkirmisherFront.Nif" togglemale target.ToggleCreatureModel "LegF01.Nif" togglefemale target.ToggleCreatureModel "ChestF02.Nif" togglefemale target.ToggleCreatureModel "SkirmisherFrontF02.Nif" togglefemale elseif modelval == 20 target.ToggleCreatureModel "GoblinLegsArmor.Nif" togglemale target.ToggleCreatureModel "BerserkerChest.Nif" togglemale target.ToggleCreatureModel "LegF01.Nif" togglefemale target.ToggleCreatureModel "ChestF02.Nif" togglefemale elseif modelval == 21 target.ToggleCreatureModel "GoblinLegsArmor.Nif" togglemale target.ToggleCreatureModel "ShamanChest.Nif" togglemale target.ToggleCreatureModel "LegF01.Nif" togglefemale target.ToggleCreatureModel "ChestF02.Nif" togglefemale elseif modelval == 22 target.ToggleCreatureModel "GrummiteArmor.Nif" togglemale target.ToggleCreatureModel "Grummited.Nif" togglefemale elseif modelval == 23 target.ToggleCreatureModel "GrummitemArmor.Nif" togglemale target.ToggleCreatureModel "Grummitem.Nif" togglefemale elseif modelval == 24 target.ToggleCreatureModel "HorseArmor.Nif" togglemale target.ToggleCreatureModel "Horse.Nif" togglefemale elseif modelval == 25 target.ToggleCreatureModel "HorseArmorBlack.Nif" togglemale target.ToggleCreatureModel "Horse.Nif" togglefemale elseif modelval == 26 target.ToggleCreatureModel "HorseArmorChestnut.Nif" togglemale target.ToggleCreatureModel "HorseChestnut.Nif" togglefemale elseif modelval == 27 target.ToggleCreatureModel "HorseArmorGrey.Nif" togglemale target.ToggleCreatureModel "HorseGrey.Nif" togglefemale elseif modelval == 28 target.ToggleCreatureModel "HorseArmorPaint.Nif" togglemale target.ToggleCreatureModel "HorsePaint.Nif" togglefemale elseif modelval == 29 target.ToggleCreatureModel "HungerTentacleTungue.Nif" togglemale target.ToggleCreatureModel "HungerTungue2.Nif" togglefemale elseif modelval == 30 target.ToggleCreatureModel "ImpArmor.Nif" togglemale target.ToggleCreatureModel "ImpF.Nif" togglefemale elseif modelval == 31 target.ToggleCreatureModel "JyggalagArmor.Nif" togglemale target.ToggleCreatureModel "Jyggalag.Nif" togglefemale elseif modelval == 32 target.ToggleCreatureModel "LandDreughArmor.Nif" togglemale target.ToggleCreatureModel "LandDreugh.Nif" togglefemale elseif modelval == 33 target.ToggleCreatureModel "LichM2.Nif" togglemale target.ToggleCreatureModel "LichClothesM02.Nif" togglemale target.ToggleCreatureModel "LichF.Nif" togglefemale target.ToggleCreatureModel "LichClothesF02.Nif" togglefemale elseif modelval == 34 target.ToggleCreatureModel "MehrunesDagonArmor.Nif" togglemale target.ToggleCreatureModel "MehrunesDagon.Nif" togglefemale elseif modelval == 35 target.ToggleCreatureModel "MinotaurArmor.Nif" togglemale target.ToggleCreatureModel "MinotaurF.Nif" togglefemale elseif modelval == 36 target.ToggleCreatureModel "MinotaurLordArmor.Nif" togglemale target.ToggleCreatureModel "MinotaurLordF.Nif" togglefemale elseif modelval == 37 target.ToggleCreatureModel "Lion_BodyArmor.Nif" togglemale target.ToggleCreatureModel "Lion_Body.Nif" togglefemale elseif modelval == 38 ;target.ToggleCreatureModel "LstGelArmor.Nif" togglemale ;target.ToggleCreatureModel "LstGel.Nif" togglefemale elseif modelval == 39 target.ToggleCreatureModel "skincrabArmor.Nif" togglemale target.ToggleCreatureModel "skincrab.Nif" togglefemale elseif modelval == 40 target.ToggleCreatureModel "MurkDementiaArmor.Nif" togglemale target.ToggleCreatureModel "MurkDementia.Nif" togglefemale elseif modelval == 41 target.ToggleCreatureModel "MurkArmor.Nif" togglemale target.ToggleCreatureModel "Murk.Nif" togglefemale elseif modelval == 42 target.ToggleCreatureModel "OgreArmor.Nif" togglemale target.ToggleCreatureModel "OgreF.Nif" togglefemale elseif modelval == 43 target.ToggleCreatureModel "RatArmor.Nif" togglemale target.ToggleCreatureModel "Rat.Nif" togglefemale elseif modelval == 44 ; HAHAH elseif modelval == 48 target.ToggleCreatureModel "ScampArmor.Nif" togglemale target.ToggleCreatureModel "ScampF.Nif" togglefemale elseif modelval == 49 target.ToggleCreatureModel "ShamblesArmor.Nif" togglemale target.ToggleCreatureModel "Shambles.Nif" togglefemale elseif modelval == 50 target.ToggleCreatureModel "SheepArmor.Nif" togglemale target.ToggleCreatureModel "RamHornL.Nif" togglemale target.ToggleCreatureModel "RamHornR.Nif" togglemale target.ToggleCreatureModel "Sheep.Nif" togglefemale elseif modelval == 51 ; HAHAH elseif modelval == 52 target.ToggleCreatureModel "SkellieArmor.Nif" togglemale target.ToggleCreatureModel "Skellie.Nif" togglefemale elseif modelval == 53 target.ToggleCreatureModel "SlaughterfishArmor.Nif" togglemale target.ToggleCreatureModel "Slaughterfish.Nif" togglefemale elseif modelval == 57 target.ToggleCreatureModel "DaedraHairM.Nif" togglemale target.ToggleCreatureModel "SpiderDaedraM-E.Nif" togglemale target.ToggleCreatureModel "DaedraHair.Nif" togglefemale target.ToggleCreatureModel "SpiderDaedraF.Nif" togglefemale elseif modelval == 58 target.ToggleCreatureModel "Spiderling-E.Nif" togglemale target.ToggleCreatureModel "Spiderling.Nif" togglefemale elseif modelval == 59 target.ToggleCreatureModel "SprigganME03.Nif" togglemale target.ToggleCreatureModel "SprigganF.Nif" togglefemale elseif modelval == 60 target.ToggleCreatureModel "StormAtronachArmor.Nif" togglemale target.ToggleCreatureModel "StormAtronach.Nif" togglefemale elseif modelval == 61 target.ToggleCreatureModel "TrollArmor.Nif" togglemale target.ToggleCreatureModel "TrollF.Nif" togglefemale elseif modelval == 62 target.ToggleCreatureModel "MS14TrollME.Nif" togglemale target.ToggleCreatureModel "MS14TrollF.Nif" togglefemale elseif modelval == 63 ; What is a Will o the Wisp? elseif modelval == 64 target.ToggleCreatureModel "WraithArmor.Nif" togglemale target.ToggleCreatureModel "Wraith.Nif" togglefemale elseif modelval == 65 target.ToggleCreatureModel "WraithLordArmor.Nif" togglemale target.ToggleCreatureModel "WraithLord.Nif" togglefemale elseif modelval == 66 target.ToggleCreatureModel "XivilaiArmor.Nif" togglemale target.ToggleCreatureModel "XivilaiF.Nif" togglefemale elseif modelval == 67 target.ToggleCreatureModel "LeftTorso02.Nif" togglemale target.ToggleCreatureModel "RightTorso02.Nif" togglemale target.ToggleCreatureModel "LeftLeg02.Nif" togglemale target.ToggleCreatureModel "RightLeg02.Nif" togglemale target.ToggleCreatureModel "PenisE01.Nif" togglemale target.ToggleCreatureModel "LeftTorsoF02.Nif" togglefemale target.ToggleCreatureModel "RightTorsoF02.Nif" togglefemale target.ToggleCreatureModel "LeftLegF02.Nif" togglefemale target.ToggleCreatureModel "RightLegF02.Nif" togglefemale elseif modelval == 68 target.ToggleCreatureModel "LeftTorso01.Nif" togglemale target.ToggleCreatureModel "RightTorso02.Nif" togglemale target.ToggleCreatureModel "LeftLeg02.Nif" togglemale target.ToggleCreatureModel "RightLeg02.Nif" togglemale target.ToggleCreatureModel "PenisE01.Nif" togglemale target.ToggleCreatureModel "LeftTorsoF01.Nif" togglefemale target.ToggleCreatureModel "RightTorsoF02.Nif" togglefemale target.ToggleCreatureModel "LeftLegF02.Nif" togglefemale target.ToggleCreatureModel "RightLegF02.Nif" togglefemale elseif modelval == 69 target.ToggleCreatureModel "LeftTorso02.Nif" togglemale target.ToggleCreatureModel "RightTorso01.Nif" togglemale target.ToggleCreatureModel "LeftLeg02.Nif" togglemale target.ToggleCreatureModel "RightLeg02.Nif" togglemale target.ToggleCreatureModel "PenisE01.Nif" togglemale target.ToggleCreatureModel "LeftTorsoF02.Nif" togglefemale target.ToggleCreatureModel "RightTorsoF01.Nif" togglefemale target.ToggleCreatureModel "LeftLegF02.Nif" togglefemale target.ToggleCreatureModel "RightLegF02.Nif" togglefemale elseif modelval == 70 target.ToggleCreatureModel "LeftTorso01.Nif" togglemale target.ToggleCreatureModel "RightTorso01.Nif" togglemale target.ToggleCreatureModel "LeftLeg02.Nif" togglemale target.ToggleCreatureModel "RightLeg02.Nif" togglemale target.ToggleCreatureModel "PenisE01.Nif" togglemale target.ToggleCreatureModel "LeftTorsoF01.Nif" togglefemale target.ToggleCreatureModel "RightTorsoF01.Nif" togglefemale target.ToggleCreatureModel "LeftLegF02.Nif" togglefemale target.ToggleCreatureModel "RightLegF02.Nif" togglefemale elseif modelval == 71 target.ToggleCreatureModel "LeftTorso02.Nif" togglemale target.ToggleCreatureModel "RightTorso02.Nif" togglemale target.ToggleCreatureModel "LeftLeg01.Nif" togglemale target.ToggleCreatureModel "RightLeg02.Nif" togglemale target.ToggleCreatureModel "PenisE01.Nif" togglemale target.ToggleCreatureModel "LeftTorsoF02.Nif" togglefemale target.ToggleCreatureModel "RightTorsoF02.Nif" togglefemale target.ToggleCreatureModel "LeftLegF01.Nif" togglefemale target.ToggleCreatureModel "RightLegF02.Nif" togglefemale elseif modelval == 72 target.ToggleCreatureModel "LeftTorso01.Nif" togglemale target.ToggleCreatureModel "RightTorso02.Nif" togglemale target.ToggleCreatureModel "LeftLeg01.Nif" togglemale target.ToggleCreatureModel "RightLeg02.Nif" togglemale target.ToggleCreatureModel "PenisE01.Nif" togglemale target.ToggleCreatureModel "LeftTorsoF01.Nif" togglefemale target.ToggleCreatureModel "RightTorsoF02.Nif" togglefemale target.ToggleCreatureModel "LeftLegF01.Nif" togglefemale target.ToggleCreatureModel "RightLegF02.Nif" togglefemale elseif modelval == 73 target.ToggleCreatureModel "LeftTorso02.Nif" togglemale target.ToggleCreatureModel "RightTorso01.Nif" togglemale target.ToggleCreatureModel "LeftLeg01.Nif" togglemale target.ToggleCreatureModel "RightLeg02.Nif" togglemale target.ToggleCreatureModel "PenisE01.Nif" togglemale target.ToggleCreatureModel "LeftTorsoF02.Nif" togglefemale target.ToggleCreatureModel "RightTorsoF01.Nif" togglefemale target.ToggleCreatureModel "LeftLegF01.Nif" togglefemale target.ToggleCreatureModel "RightLegF02.Nif" togglefemale elseif modelval == 74 target.ToggleCreatureModel "LeftTorso01.Nif" togglemale target.ToggleCreatureModel "RightTorso01.Nif" togglemale target.ToggleCreatureModel "LeftLeg01.Nif" togglemale target.ToggleCreatureModel "RightLeg02.Nif" togglemale target.ToggleCreatureModel "PenisE01.Nif" togglemale target.ToggleCreatureModel "LeftTorsoF01.Nif" togglefemale target.ToggleCreatureModel "RightTorsoF01.Nif" togglefemale target.ToggleCreatureModel "LeftLegF01.Nif" togglefemale target.ToggleCreatureModel "RightLegF02.Nif" togglefemale elseif modelval == 75 target.ToggleCreatureModel "LeftTorso02.Nif" togglemale target.ToggleCreatureModel "RightTorso02.Nif" togglemale target.ToggleCreatureModel "LeftLeg02.Nif" togglemale target.ToggleCreatureModel "RightLeg01.Nif" togglemale target.ToggleCreatureModel "PenisE01.Nif" togglemale target.ToggleCreatureModel "LeftTorsoF02.Nif" togglefemale target.ToggleCreatureModel "RightTorsoF02.Nif" togglefemale target.ToggleCreatureModel "LeftLegF02.Nif" togglefemale target.ToggleCreatureModel "RightLegF01.Nif" togglefemale elseif modelval == 76 target.ToggleCreatureModel "LeftTorso01.Nif" togglemale target.ToggleCreatureModel "RightTorso02.Nif" togglemale target.ToggleCreatureModel "LeftLeg02.Nif" togglemale target.ToggleCreatureModel "RightLeg01.Nif" togglemale target.ToggleCreatureModel "PenisE01.Nif" togglemale target.ToggleCreatureModel "LeftTorsoF01.Nif" togglefemale target.ToggleCreatureModel "RightTorsoF02.Nif" togglefemale target.ToggleCreatureModel "LeftLegF02.Nif" togglefemale target.ToggleCreatureModel "RightLegF01.Nif" togglefemale elseif modelval == 77 target.ToggleCreatureModel "LeftTorso02.Nif" togglemale target.ToggleCreatureModel "RightTorso01.Nif" togglemale target.ToggleCreatureModel "LeftLeg02.Nif" togglemale target.ToggleCreatureModel "RightLeg01.Nif" togglemale target.ToggleCreatureModel "PenisE01.Nif" togglemale target.ToggleCreatureModel "LeftTorsoF02.Nif" togglefemale target.ToggleCreatureModel "RightTorsoF01.Nif" togglefemale target.ToggleCreatureModel "LeftLegF02.Nif" togglefemale target.ToggleCreatureModel "RightLegF01.Nif" togglefemale elseif modelval == 78 target.ToggleCreatureModel "LeftTorso01.Nif" togglemale target.ToggleCreatureModel "RightTorso01.Nif" togglemale target.ToggleCreatureModel "LeftLeg02.Nif" togglemale target.ToggleCreatureModel "RightLeg01.Nif" togglemale target.ToggleCreatureModel "PenisE01.Nif" togglemale target.ToggleCreatureModel "LeftTorsoF01.Nif" togglefemale target.ToggleCreatureModel "RightTorsoF01.Nif" togglefemale target.ToggleCreatureModel "LeftLegF02.Nif" togglefemale target.ToggleCreatureModel "RightLegF01.Nif" togglefemale elseif modelval == 79 target.ToggleCreatureModel "LeftTorso02.Nif" togglemale target.ToggleCreatureModel "RightTorso02.Nif" togglemale target.ToggleCreatureModel "LeftLeg01.Nif" togglemale target.ToggleCreatureModel "RightLeg01.Nif" togglemale target.ToggleCreatureModel "PenisE01.Nif" togglemale target.ToggleCreatureModel "LeftTorsoF02.Nif" togglefemale target.ToggleCreatureModel "RightTorsoF02.Nif" togglefemale target.ToggleCreatureModel "LeftLegF01.Nif" togglefemale target.ToggleCreatureModel "RightLegF01.Nif" togglefemale elseif modelval == 80 target.ToggleCreatureModel "LeftTorso01.Nif" togglemale target.ToggleCreatureModel "RightTorso02.Nif" togglemale target.ToggleCreatureModel "LeftLeg01.Nif" togglemale target.ToggleCreatureModel "RightLeg01.Nif" togglemale target.ToggleCreatureModel "PenisE01.Nif" togglemale target.ToggleCreatureModel "LeftTorsoF01.Nif" togglefemale target.ToggleCreatureModel "RightTorsoF02.Nif" togglefemale target.ToggleCreatureModel "LeftLegF01.Nif" togglefemale target.ToggleCreatureModel "RightLegF01.Nif" togglefemale elseif modelval == 81 target.ToggleCreatureModel "LeftTorso02.Nif" togglemale target.ToggleCreatureModel "RightTorso01.Nif" togglemale target.ToggleCreatureModel "LeftLeg01.Nif" togglemale target.ToggleCreatureModel "RightLeg01.Nif" togglemale target.ToggleCreatureModel "PenisE01.Nif" togglemale target.ToggleCreatureModel "LeftTorsoF02.Nif" togglefemale target.ToggleCreatureModel "RightTorsoF01.Nif" togglefemale target.ToggleCreatureModel "LeftLegF01.Nif" togglefemale target.ToggleCreatureModel "RightLegF01.Nif" togglefemale elseif modelval == 82 target.ToggleCreatureModel "LeftTorso01.Nif" togglemale target.ToggleCreatureModel "RightTorso01.Nif" togglemale target.ToggleCreatureModel "LeftLeg01.Nif" togglemale target.ToggleCreatureModel "RightLeg01.Nif" togglemale target.ToggleCreatureModel "PenisE01.Nif" togglemale target.ToggleCreatureModel "LeftTorsoF01.Nif" togglefemale target.ToggleCreatureModel "RightTorsoF01.Nif" togglefemale target.ToggleCreatureModel "LeftLegF01.Nif" togglefemale target.ToggleCreatureModel "RightLegF01.Nif" togglefemale endif target.Update3D end Link to comment
movomo Posted April 24, 2019 Author Share Posted April 24, 2019 You should be able to put them in the spoilers if you edit the html source directly. Or not. Codes in the spoilers seems to work just fine even in the wysiwyg mode. Spoiler #! /usr/bin/env python3 # -*- coding: utf-8 -*- import subprocess if __name__ == '__main__': import this subprocess.run(['pause'], shell=True) My idea of switching creature models revolves around hardcoding as few stuff as possible. For that I need their model name set in my way, and that's what my "bash-creature" script (you see that in the pm) is about. Now I think I have to write a proof-of-concept plugin soon to show off what it will be like. Oh, but it's good to know that Update3D works for ToggleCreatureModel. I've been contemplating what would disabling a creature for one frame imply (this includes things like spell scripts on disabled actors sometimes going postal) which is the canonical (documented) way of refreshing creature graphics. But now that I know you're doing it with update3D, I guess I'll do it that way too. Link to comment
LongDukDong Posted April 25, 2019 Share Posted April 25, 2019 21 hours ago, movomo said: My idea of switching creature models revolves around hardcoding as few stuff as possible. So there's an outside 'ini' file to cover creatures and their models? Schweet. I hope it can be expandable to cover creatures from other mods. Granted, Crowning Isles horses are still horses. Oh, and if a 'gender flag' is not present, it should assume the creature is male. Just saying that having a 'male flag' would ensure/force that the model IS male. Yeah, update3D worked well enough for LoversGenderbender that I used it with a Creature version, the code you see presented. I first had that in the Creature version of Genderbender until I realized that it should be in Oblivion Gendified instead, using just the tokens as keys to change their appearance. Link to comment
movomo Posted April 25, 2019 Author Share Posted April 25, 2019 6 hours ago, LongDukDong said: So there's an outside 'ini' file to cover creatures and their models? Schweet. I hope it can be expandable to cover creatures from other mods. Granted, Crowning Isles horses are still horses. Doesn't exactly work like that. Configuring things through a .ini file is a popular method, but the ini file itself becomes complicated very quickly as the complexity of things to configure increases. Just look at the SetBody custom menuing feature and see how horrifically, apocalyptically complicated it is to anyone short of half-programmer. I'm not doing that shit this time. Instead this time, I'm going to alter their base model paths directly using bashed patch. I even wrote a script to automate the process. (This automation also means it can be applied to any external mod, so yes, it's expandable.) Unfortunately, no one gave any input regarding the viability of that approach. But I'm going ahead anyway. I have a feeling that I won't hear of any input until it's too late. Anyways, the process of making some mod female-switchable involves renaming nif files according to some preset rules, sometimes changing their texture paths using NifSkope, sometimes modifying creature models at worst cases, and ultimately making an override plugin (which is automated, as I said I wrote a script for this) to override their model paths via bashed patch. These 'overriders' will sometimes be shipped with LoversCreature itself as optional component if the mod is deemed popular/important, or the end-users will have to make one themselves with the provided tools. So how does this sound to you? Easy enough? Or too complicated? Because if at all possible, I want to entrust you with making existing Lovers-based mods compatible with this, because you are a scripter in the team and have the ability to make sense of technical things. And I'm sure it's related your gender bender project as well. Link to comment
fejeena Posted April 25, 2019 Share Posted April 25, 2019 As I said before, I do not really need any female animals. They are nice for realism, but what do we do with them? I see a lot of problems. I do not want to be raped by female animals. Lovers Joburg and Rapers need a "female block" funktion." How should a female horse, a dog or a deer force you to mount it? OK a female ogre can force you to fuck her ( And if you do not want to, she'll rip off of one of your arms and use it at dildo. ... ? LoversMB2Creatures ???? ) Lovers Bitch needs a "do not train with females dogs" funktion. .... OK we can fuck female creatures .... The bashed patch / script ? I hope I do not need WryeBash, I do not use it ( and will never use it) And yes, all creatures should be changed by default to male creatures models , and all unchanged should be male ( except the female deer, sheep ) Or two or more scripts to change Mod creatures. One realism scripts with 50% creatures will be female. And Mods that you deactivate in the Modmanager before you run the script are unchanged = male ( like Crowning isle, LoversBitch, HorseRider, BravilUnderground,...) And one 100% male script, so only creatures that are changed in a Mod/patch to female will be females. What about futa? I like my futa spriggan and flame Atronach . Would be nice when they can fuck like males (rape) and can be raped. What interests me more in the LC2.5 project is the model switch. No more permanent erections. Flaccid dicks can be switched during sex to erect dicks. Spoiler Horse and dog with flaccid and erect dick. I like the female creatures models. In some Mods I use female creatures ( the all have a xLoversPkrDisableH token, so they can not have sex, rape or stalk ) Link to comment
LongDukDong Posted April 26, 2019 Share Posted April 26, 2019 18 hours ago, movomo said: So how does this sound to you? Easy enough? Or too complicated? Because if at all possible, I want to entrust you with making existing Lovers-based mods compatible with this, because you are a scripter in the team and have the ability to make sense of technical things. And I'm sure it's related your gender bender project as well. My problem is figuring out a range script, one that happens every X cycles or seconds or whatever. The premise is it (1) Runs ever X seconds.... (2) At that time, it checks every creature in range.... (3) If a creature has a token, it activates/runs that token's code where gender is changed or ensured.,,, and (4) If a token is exchanged, the code for the new gender executes. Obviously, Game_Loaded/Reloaded should also activate, as well as an automatic execution when going from one cell to another. Obviously, you wouldn't need to even change any creature other than adding 'tokens' to the new creatures. Redefining their models to female versions wouldn't need be done as they would change by default. Of the above, I've had troublesome issues. *sigh* Exiting/reloading while in the same map worked, and any gender changed creatures remained changed. But not proximity or timing. Genderbender would merely need to exchange tokens for creatures. And I wouldn't be at all against 'no gender-changing' tokens. It's been a thought for a while. Now this is a pain, but do you think you could come up with a mod that can do this, if only coded to change one model's gender to another just by proximity? I'd like to see how you'd accomplish it. 8 hours ago, fejeena said: As I said before, I do not really need any female animals. They are nice for realism, but what do we do with them? There's probably a few sheep farmers that have some ideas . Link to comment
movomo Posted April 26, 2019 Author Share Posted April 26, 2019 12 hours ago, fejeena said: As I said before, I do not really need any female animals. They are nice for realism, but what do we do with them? First is indeed for the realism. Secondly and more importantly it is for the fun of it. I too don't think I'll try to bang the monstergirls on a daily, or even weekly basis, but that doesn't mean they shouldn't be there. One more point: WappyOne's draft already had an option to fine-control creature gender chance with which you can make some specific creature types 100% female, 0% female, or any arbitrary chance in between for that matter, on top of the global female chance. Besides, toggling one scripted feature on or off is one of the easiest things that can be done with an ini. I hadn't thought about this before but now that you mention it, it's fair enough to have a global on/off button for messing with creature genders in case one doesn't want such a feature. 12 hours ago, fejeena said: Lovers Joburg and Rapers need a "female block" funktion." Shame about Joburg. But RaperS does have an option to control rape chance by gender. 12 hours ago, fejeena said: The bashed patch / script ? I hope I do not need WryeBash, I do not use it ( and will never use it) I'll have to ignore this one. Wrye Bash has been the de facto standard mod manager for Oblivion for longer than I care to remember. Whether you want to use it or not is of little importance here. Besides, as an experienced oldbie, you can achieve pretty much the same thing using TES4Edit, making merged patch and whatnot. The implied inconvenience is a consequence from your own choice. On 4/25/2019 at 12:22 PM, LongDukDong said: Oh, and if a 'gender flag' is not present, it should assume the creature is male. Just saying that having a 'male flag' would ensure/force that the model IS male. 12 hours ago, fejeena said: And yes, all creatures should be changed by default to male creatures models , and all unchanged should be male ( except the female deer, sheep ) I don't quite understand why you two are specifically stressing this. Why does this matter? Male or not, they will be processed once per game session. If their model list needs an update, it will be done. Males get the male token and masculine models (usually their editor setup), females get the female token and faminine models. 12 hours ago, fejeena said: What about futa? I like my futa spriggan and flame Atronach . Would be nice when they can fuck like males (rape) and can be raped. If you examine the LC2.5 alpha03 data pack, you will find that even female creatures have their own penis model. Oh, and technically, male vagina is possible in my implementation, just like how female penis is possible. 12 hours ago, fejeena said: What interests me more in the LC2.5 project is the model switch. No more permanent erections. Flaccid dicks can be switched during sex to erect dicks. Well... that's precisely what I've been desperately working on to have it in a working order. Don't you see? Female creature and on-demand erection are heavily inter-related. Both make a heavy use of creature model toggling function, same modelname parser, same backend. Once one is working then the other is already 90% working as well, give or take. And, because you previously mentioned that you are "happy with permanent, viagra-induced male monsters" I even made an option to equip all male creatures with their sex loadout (that is, erect penis) as soon as you meet them. Seems like you've changed your mind, so we don't need that option? Because from a dev's perspective, another option is another pain. Link to comment
movomo Posted April 26, 2019 Author Share Posted April 26, 2019 7 hours ago, LongDukDong said: On 4/25/2019 at 7:36 PM, movomo said: So how does this sound to you? Easy enough? Or too complicated? Because if at all possible, I want to entrust you with making existing Lovers-based mods compatible with this, because you are a scripter in the team and have the ability to make sense of technical things. And I'm sure it's related your gender bender project as well. My problem is figuring out a range script, one that happens every X cycles or seconds or whatever. The premise is it (1) Runs ever X seconds.... (2) At that time, it checks every creature in range.... (3) If a creature has a token, it activates/runs that token's code where gender is changed or ensured.,,, and (4) If a token is exchanged, the code for the new gender executes. Obviously, Game_Loaded/Reloaded should also activate, as well as an automatic execution when going from one cell to another. Obviously, you wouldn't need to even change any creature other than adding 'tokens' to the new creatures. Redefining their models to female versions wouldn't need be done as they would change by default. Of the above, I've had troublesome issues. *sigh* Exiting/reloading while in the same map worked, and any gender changed creatures remained changed. But not proximity or timing. Genderbender would merely need to exchange tokens for creatures. And I wouldn't be at all against 'no gender-changing' tokens. It's been a thought for a while. Now this is a pain, but do you think you could come up with a mod that can do this, if only coded to change one model's gender to another just by proximity? I'd like to see how you'd accomplish it. Uh, I was asking your opinion on my bashed patch approach and if you're willing to help generating compatibility patches for Lovers mods, rather than asking you to write an esp. And what do you mean "by proximity" or "timing"? You mean they will change their gender if you get close enough to them? What's timing? Or better, where can I have a look on your codes? Anyways, here's a sample console output from my draft "femswap.esp" mod. The current state is where I'm checking if overall codes are working without runtime error. (it's at a very early stage) But this might give you an idea of what I'm trying to accomplish. Here, it show processing several nearby creatures, generating two arrays for each creature ref. One is the list of models to disable, the other is the list of models to enable. If both are empty that means the creature doesn't need an update3D call. Creature models are discovered by a special suffix in their file names, such as "_Lcp"(for penis) or "_Lcc"(clothing). This information is then stored in the model_cache to save processing resource. The cycle runs once every 5 seconds, but a same creature is never processed twice. Spoiler femswapMainScript:: CYCLE START. model_cache = { } femswapMainScript:: This cycles queue: creatures = [ [ Vulture(FF2DAF5D), -1 ], [ Skeleton(0001E5AB), -1 ], [ Skeleton(0001FEB8), -1 ] ] femswapProcScript:: creatures[1 - 1]=Vulture(FF2DAF5D), is_female=1 fsFnRedress:: skel="Creatures\Imp\Skeleton.NIF", skel_dir="data\meshes\Creatures\Imp\" fsFnRedress:: target=Vulture(FF2DAF5D): is_female=1, is_for_sex=0, is_receiving=0 -> flag=1. models = [ "vulture.nif" ] fsFnBuildCache:: name="vulture.nif", repls = [ 0, "vulture.nif" ] fsFnRedress:: models_disable = [ ] fsFnRedress:: Dumping models_enable.[ ] femswapProcScript:: creatures[2 - 1]=Skeleton(0001E5AB), is_female=0 fsFnRedress:: skel="Creatures\Skeleton\skeleton.NIF", skel_dir="data\meshes\Creatures\Skeleton\" fsFnRedress:: target=Skeleton(0001E5AB): is_female=0, is_for_sex=0, is_receiving=0 -> flag=0. models = [ "Skellie.NIF", "Skull.NIF" ] fsFnBuildCache:: name="Skull.NIF", repls = [ 0, "Skull.NIF" ] fsFnBuildCache:: name="Skellie.NIF", repls = [ 0, "Skellie.NIF" ] fsFnRedress:: models_disable = [ ] fsFnRedress:: Dumping models_enable.[ ] femswapProcScript:: creatures[3 - 1]=Skeleton(0001FEB8), is_female=0 fsFnRedress:: skel="Creatures\Skeleton\skeleton.NIF", skel_dir="data\meshes\Creatures\Skeleton\" fsFnRedress:: target=Skeleton(0001FEB8): is_female=0, is_for_sex=0, is_receiving=0 -> flag=0. models = [ "Skellie.NIF", "Skull.NIF" ] fsFnRedress:: models_disable = [ ] fsFnRedress:: Dumping models_enable.[ ] femswapProcScript:: END OF CYCLE. model_cache = { "Creatures\Imp\Skeleton.NIF": { 1: { "vulture.nif": [ 0, "vulture.nif" ] } }, "Creatures\Skeleton\skeleton.NIF": { 0: { "Skellie.NIF": [ 0, "Skellie.NIF" ], "Skull.NIF": [ 0, "Skull.NIF" ] } } } Link to comment
fejeena Posted April 26, 2019 Share Posted April 26, 2019 I am happy with my male creatures with permanent erect penis in my game. But a erect penis only during sex would be nice. I prefer that to female animals. ( Yes if we have a penis swap it is no problem to also have a pussy/female body switch. ) ---------------- Uh, I was asking your opinion on my bashed patch approach and if you're willing to help generating compatibility patches for Lovers mods,.... I don't know how it works. ( I'm too stupid, I do not understand that. ) That's why I said if a Mod is not in bashed patch all creatures in that Mod should be male. Do not add LoversBitch and all the wolves and dogs are male. Link to comment
movomo Posted April 26, 2019 Author Share Posted April 26, 2019 2 hours ago, fejeena said: That's why I said if a Mod is not in bashed patch all creatures in that Mod should be male. Do not add LoversBitch and all the wolves and dogs are male. Ah, NOW I understand. So you're basically saying that monsters should retain their appearent gender if it is not made LC2.5-compatible. But that's....... quite awkward to control gender that way. Difficult and must violate our own API. However, what you CAN do is set all dogs to be male (specified either by skeleton path or model path). This one is easily done via the .ini file. 2 hours ago, fejeena said: I'm too stupid, I do not understand that. We're all stupid bums. It takes us much time, talking and agony to grab a slightest understanding of each other. Hopefully my test plugin is working and I finally found a female ogre. Now I'll show you guys some console output and explain what all this shit is about. Because codes do not lie unless told to. This time I'll actually annotate them. Here goes the full output for a female ogre I found. Spoiler femswapProcScript:: creatures[8 - 1]=Ogre(FF2DD510), is_female=1 fsFnRedress:: skel="Creatures\Ogre\Skeleton.NIF", skel_dir="data\meshes\Creatures\Ogre\" fsFnRedress:: target=Ogre(FF2DD510): is_female=1, is_for_sex=0, is_receiving=0 -> flag=0x01 models = [ "Flask.NIF", "Furtufts.NIF", "Head.NIF", "ogre_Lccm.nif", "ogre_Lcbm.nif", "Pouch.NIF" ] fsFnBuildCache:: name="Flask.NIF" repls = [ 0, "Flask.NIF" ] fsFnBuildCache:: name="Furtufts.NIF" repls = [ 0, "Furtufts.NIF" ] fsFnBuildCache:: name="Head.NIF" repls = [ 0, "Head.NIF" ] fsFnBuildCache:: name="ogre_Lccm.nif" repls = [ 0, "ogre_Lcbf.nif", "ogre_Lccf.nif" ] fsFnBuildCache:: name="ogre_Lcbm.nif" repls = [ 0 ] fsFnBuildCache:: name="Pouch.NIF" repls = [ 0, "Pouch.NIF" ] models = [ "ogre_Lccm.nif", "ogre_Lcbm.nif" ] models_enable = [ "ogre_Lcbf.nif", "ogre_Lccf.nif" ] fsFnRedress:: target=Ogre(FF2DD510): is_female=1, is_for_sex=0, is_receiving=0 -> flag=0x01 This line shows that this ogre girl is female, not having sex, thus naturally not in the receiving position. models = [ "Flask.NIF", "Furtufts.NIF", "Head.NIF", "ogre_Lccm.nif", "ogre_Lcbm.nif", "Pouch.NIF" ] This lists all the models for this ogre, as set in the editor. Note the "ogre_Lccm.nif" and "ogre_Lcbm.nif"; These mean "clothing for male" and "body for male" accordingly. I changed their base model path (originally just "ogre.nif") using said bashed patch. Remember this ogre is supposed to be female? models = [ "ogre_Lccm.nif", "ogre_Lcbm.nif" ] models_enable = [ "ogre_Lcbf.nif", "ogre_Lccf.nif" ] Bottom lines. After some file name parsing, string fuckery and yadda yadda yadda, my script finally figured that this ogre needs two meshes disabled ("ogre_Lccm.nif" and "ogre_Lcbm.nif") and two meshes enabled ("ogre_Lcbf.nif", "ogre_Lccf.nif"), which means "body for female" and "clothing for female" accordingly. Do note the special suffixes for the basic "ogre.nif". I could figure out each model's function (clothing, body) only because they had special names. That's why I want to use a bashed patch. Without that I don't think I could write a code to recognize all the different and random model names out in the wild, at least not in a sane way. In case some incompatible creature is encountered, thusly none of its model names are recognizable, then those are simply left alone. So they won't change their appearance. The only problem is that they can still be technically female. (Although do remember that female creatures can still grow boners, just like human can, and all creatures have a final fallback penis mesh.) That's where you edit your ini to force a specific gender. Link to comment
fejeena Posted April 26, 2019 Share Posted April 26, 2019 Ok . When we have new male and female meshes we still have the vanilla meshes in the meshes\creatures folders. wolf_Lccm.nif , wolf_Lcbm.nif , wolf_Lccf.nif , wolf_Lcbf.nif , and a wolfbody.nif We have only one wolf in the Oblivion.esm for all LevelList wolves. (CreatureWolf "Wolf" [CREA:0006E912] ) If you meet a wolf in game , you system will select a male or female wolf. ??? You system do it only with wolfes in the bashed patch? Or also with Levellist wolfes from Mods that are not in the bashed patch ( LoversBitch Horny wolves) So if a Mod in not in the Patch? What happens? There is a LoversBitch wolf ( one of the Player wolfes) You system finds a wolfbody,nif... isn't possible that you system adds a male flag to all "not specified" wolfes? Not in the Patch and has wolfbody.nif = is male ( use male sex animations) For wolfbody.nif there a replacer so it get the wolf_Lccm.nif , wolf_Lcbm.nif And Not in the bashed Patch and has unkown body nif (d_dobermann.nif) = is male ( use male sex animations) For d_dobermann.nif there is NO replacer , so it use the d_dobermann.nif. Yes, such creatures can not have a penis switch, they will have one only body. There are so many Mod creatures with own meshes it will take years to change all/add new bodies,... ( I still have not added a penis to all the Mod creatures meshes. Sometimes I meet a creature in game without a penis, check the Mod and it is a Mod with bsa files which I had not yet unpacked ) Link to comment
movomo Posted April 26, 2019 Author Share Posted April 26, 2019 1 hour ago, fejeena said: ??? You system do it only with wolfes in the bashed patch? Or also with Levellist wolfes from Mods that are not in the bashed patch ( LoversBitch Horny wolves) So if a Mod in not in the Patch? What happens? There is a LoversBitch wolf ( one of the Player wolfes) You system finds a wolfbody,nif... isn't possible that you system adds a male flag to all "not specified" wolfes? Leveled list or formID doesn't matter. Only their models matter. If their models are unrecognizable, it's simply ignored. The reason I can't give a male flag to all the 'unknown' wolves is, because there is no simple way to determine if one creature is compatible or not before parsing all of its models first. And, to parse their model, you need to know their gender. See? Logical loophole. You parse a dog's models to give it a gender but to parse it you need to know the gender first. The canonical process goes like this: call the IsFemale function (written by WappyOne) to decide the gender and parse their models given that gender. Maybe I could write a probe function that peeks at the creature's model list quickly, if that is really needed. But is that really so needed? Dogs don't even have def animations so them playing wrong animation is the least of your worries. Besides female dogs will still have erect penis when they need 'em. 1 hour ago, fejeena said: Not in the bashed Patch and has unkown body nif (d_dobermann.nif) = is male ( use male sex animations) For d_dobermann.nif there is NO replacer , so it use the d_dobermann.nif. Yes, such creatures can not have a penis switch, they will have one only body. There are so many Mod creatures with own meshes it will take years to change all/add new bodies,... ( I still have not added a penis to all the Mod creatures meshes. Sometimes I meet a creature in game without a penis, check the Mod and it is a Mod with bsa files which I had not yet unpacked ) If this d_dobermann.nif consists of a single object (that is, dog body and penis are one) yeah, that is a problem. Problem because my script will try to equip a fallback penis... then he will have double penises. (derp) Maybe it's not a good idea to have a fallback penis that applies globally. Or not. The best approach is simply to make LoversBitch compatible. Which is what I was going to ask LDD to do in post #16. Naturally I wouldn't mind if you do it instead. Yeah I know there are many mods that add creatures, but only those from Lovers mods tend to have a sword sheathed under their belt. And most other mods, often only features retextured creatures. They're easy enough to work with, and it's not like we have to make every single mod out there compatible. I say we only make patches for the official mods (such as DLCs) and Lovers mods (such as LoversBitch). By the way, dogs or wolves won't have the faminine models. So in the particular case of LoversBitch, you can simply remove all the penises from the models and call it a day. They will still grow fallback boners regardless. Simple enough? Link to comment
fejeena Posted April 26, 2019 Share Posted April 26, 2019 LoverBitch wolves and dogs have two added nif parts. The dick and the balls. Only a few dogs have balls and dick in one. The added dicks the Mod once used at I have removed completely. Now only body nif with dicks and balls. But not problem to change it. Every dog race need it's own balls or dick with balls. Only a few dogs/wolves can share the same dick nif. Some dogs/wolves have "one- nif" dick and balls. If the dick and balls use the body textures or dick and balls use the flesh texture. You have about 20 different dick-balls nif. Examples Spoiler Madness dog : dick and ball use the body texture Skinned dog: dick and ball use the dick flesh texture. Other dogs and wolves use 3 part meshes. Spoiler A wolf body nif. The body and the balls use the body textue and the dick use the flesh texture. So the dogs and wolves have the balls with the right body fur. So I think dick and balls in one nif to add/remove it to the body nifs. And that are the nif from the LC3 LoversBitch file with the animated penis and the animations from the LC workshop. ------------------------ ??? If their models are unrecognizable, it's simply ignored. ???? And the creature is set to male or female? (can it rape if allowed in LoversRapers ( and use male off animations) ? Or can it be fucked and use female def animations? Link to comment
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now