Jump to content

scorrp10

Premium Member
  • Posts

    762
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by scorrp10

  1. A wrong .tri assigned to a mesh in a headpart record = an almost guaranteed CTD. That said, I got HP head, a ton of brows and eyes, Apachii hair, SS Hairs, SG Haiurs, SMP variants from Ding, Tullius hair pack etc etc, and it is stable as a rock. That said, when I tried dabbling with TeraElin Race by Acro, it definitely had issues.
  2. This looks like it should fit the bill. https://www.nexusmods.com/skyrimspecialedition/mods/111867
  3. You can't really do it with 'Add-On' pieces without also creating a special version of the main body mesh. Essentially, the 'Body' portion (Bodysuit) which includes the Body mesh, needs to 'know' about the squeeze. You need to create a single outfit that includes both body mesh and the stockings. So lets say you have a collection that has the [bodysuit + body] outfit, and 2 or 3 different versions of stockings. (If the outfit already includes stockings, you skip steps 2 and 8 below You load the main outfit in outfit studio. You do 'Add Project' and add one of stockings versions. Now in the meshes widow you have the body outfit(can be several meshes), the reference body mesh in green (CBBE or 3BA or whatever) and the stocking mesh(s) In Slider menu, you choose New Slider, and call it 'Leg Squeeze' In the meshes list, click the green body mesh to select it and Ctrl+click the stocking meshes to select them as well. Find the new 'Leg Squeeze' slider and click the pencil icon next to it. It turns purple and goes to 100%. Now, start using the 'Deflate' tool very carefully, very slowly, to create that squeeze. Don't forget about the Undo button. Play with brush settings (focus/strength/spacing). It it starts to look ugly, it is often best to just delete the slider and start anew. Consider turning off textures(T) so you can better see the shape. You basically want to get it to the maximum possible amount of squeeze. Once you got it looking the way you like, unclick the pencil icon on the slider (it will return to non-squeezed look). Play with the slider to see how your results are. You can now delete the stocking mesh(s) and save. Now that you have the main outfit with the 'squeeze' slider, and want to add it to stockings as well: Load the stockings project. Add project - add the main outfit. In the sliders list, use De/Select sliders to get all sliders unchecked. Then, check just the Leg Squeeze. Select the stocking meshes. In Slider menu, choose 'Conform Selected' You can now delete all the meshes that were part on the main outfit and body, and save. Do the same for other stocking projects. Of course, these stockings must be the same height so that the squeeze in in the same place. You now could create a variant of your favorite preset, with squeeze slider values set for low and high weight. And build both main part and stockings with it.
  4. BodySlide/Outfit Studio is quite a powerful tool. The development page for it is public, and its latest release (5.6.3) is on Nexus. So no, there is no 'More Functional Version' or BodySlide 'being kept out of people's reach'. Can's speak for High Poly Head, as it's author's hosting choice is indeed rather unfortunate. But you can get its latest version here. I do not quite understand your question about BodySlide. However, if you built a 'Body' to a particular Preset, and do not like how it looks, you just have to build it to a preset it was using before. And by the way, you can use Preview button to see how this body will look, before you build it. When you select an outfit in the Outfit/Body list, it displays target destination in lower left. If it says meshes\actors\character\character assets\femalebody_0.nif, that is the base default female body Say, if you select "CBBE Body" in Outfit/Body, you can right-click the destination path, and it will list all the other candidate bodies you have installed. I.e. CBBE Body Physics adds some bouncy bits, but requires an extended skeleton (XPMSSE32) and CBPC physics. Or, if you have 3BA installed, you should have CBBE 3BBB Body Amazing. Or, if you are in UNP camp, you would have those bodies. Next, you select a preset and Build. You basically need to recall which one you used last or which you chose when you were installing CBBE. (or UNP). For CBBE, it would likely be 'Vanilla', 'Slim' or 'Curvy'.
  5. Or you can drag-n-drop a mod archive file into the large 'Drop Files' box at the bottom of Mods tab...
  6. Can't help with lag issue, but I did notice something that appears to have worked before, but no longer works that way. I could be wrong though. A typical MCM script extends SKI_ConfigBase, which in turn extends SKI_QuestBase. And SKI_QuestBase declares an OnGameReload() event which is actually triggered via that SKI_PlayerLoadGameAlias. And the comments in SKI_QuestBase make it look like it is a 'helper' hook for mod author to add an 'on game loaded' handler to their MCM. Thus, in your MCM script, you could define 'Event OnGameReload()' that runs when game is loaded. And I think that it how it used to be - again, could be wrong. Problem is, now if your MCM script includes this event, your MCM will just fail to register and will not even show up. I suspect that registering MCM via OnPlayerLoadGame is a secondary option, and the primary one just no longer works. So, SKI_PlayerLoadGameAlias basically just has: event OnPlayerLoadGame() (GetOwningQuest() as SKI_QuestBase).OnGameReload() endEvent And if it actually calls OnGameReload in SKI_QuestBase, the MCM registers. But if a mod author defines OnGameReload() in their MCM script, that gets called instead, and MCM does not register. The way to handle this: Say, in your MCM script, you define an 'Event OnSaveGameLoad(). Then, in the MCM Quest, you define a player alias and attach to it a custom script: Scriptname MyPlayerLoadGameAlias extends ReferenceAlias event OnPlayerLoadGame() (GetOwningQuest() as SKI_QuestBase).OnGameReload() ; replicates ski_playerloadgamealias functionality (GetOwningQuest() as MyMCMQuestScript).OnSaveGameLoad() ; calls your own endEvent
  7. You said you were making NPCs. Do they have custom heads? I suggest loading into a test area (coc qasmoke) and summoning the NPCs from your mod one by one via player.placeatme to see if any of them causes a crash. I.e. pointing a high poly head NPC headpart at a non-HPH .tri is an instant CTD as soon as that NPC enters player's view. I once had a CTD cause a custom sword NPC carried had a bad texture. Create a copy of your mod, take out all the NPCs from the copy, test out the map on its own. The wayshrine (seruinswaygate01.nif) has the shrine rising animation baked directly into the .nif with 4 separate script invoked controller sequences. Messing with those controllers without knowing exactly what you are doing is a common way of getting a CTD. Are you logging your Papyrus errors? (That page is for LE, for SSE you just go to SSE directory)
  8. Sofia (even the loose files version) overrides the the Scripts/ski_playerloadgamealias.pex file from SkyUI. However, at one point I decompiled the Sofia version of it and it is exactly the same as in SkyUI 5.2 itself. So I would not worry too much about it.
  9. If this is a really original mod idea and not a rehash of something already in existence, I would most certainly run it by the author first. Or (if possible), once the mod is released, make an add-on mod that uses original as master and implements this mechanic.
  10. My general thought would be: Assuming you have a FormList of all potential locations you need to discover, and you need to select a random 3 from those. FormList Property AllPossibleLocations Auto FormList Property LocationsToDiscover Auto While LocationsToDiscover.GetSize() < 3 Int idx = Utility.RandomInt(0, AllPossibleLocations.GetSize() - 1) If !LocationsToDiscover.HasForm(AllPossibleLocations.GetAt(idx)) LocationsToDiscover.AddForm(AllPossibleLocations.GetAt(idx)) EndIf EndWhile Then, your CheckLocations() can be: GlobalVariable Property LocationsFound Auto ;; set initially to 0 Function CheckLocations() Int idx = 0 While idx < LocationsToDiscover.GetSize() ObjectReference mapMarker = LocationsToDiscover.GetAt(idx) as ObjectReference If (mapMarker && mapMarker.IsMapMarkerVisible() && mapMarker.CanFastTravelToMarker()) LocationsToDiscover.RemoveAddedForm(mapMarker) LocationsFound.SetValueInt(LocationsFound.GetValueInt() + 1) Else idx += 1 EndIf EndWhile EndFunction And the condition for NPC dialogue to open up would be for 'LocationsFound' to be 3.
  11. Script attached to quest: Scriptname MyQuestScript extends Quest GlobalVariable Property csbMagLocHunt01 Auto GlobalVariable Property csbMagLocHunt02 Auto GlobalVariable Property csbMagLocHunt03 Auto FormList Property csbScoutLocLoc Auto Function CheckLocations() If csbMagLocHunt01.GetValueInt() != 69 If IsLocationDiscovered(csbScoutLocLoc.GetAt(csbMagLocHunt01.GetValueInt()) as ObjectReference) csbMagLocHunt01.SetValueInt(69) EndIf EndIf If csbMagLocHunt02.GetValueInt() != 69 If IsLocationDiscovered(csbScoutLocLoc.GetAt(csbMagLocHunt02.GetValueInt()) as ObjectReference) csbMagLocHunt02.SetValueInt(69) EndIf EndIf If csbMagLocHunt03.GetValueInt() != 69 If IsLocationDiscovered(csbScoutLocLoc.GetAt(csbMagLocHunt03.GetValueInt()) as ObjectReference) csbMagLocHunt03.SetValueInt(69) EndIf EndIf EndFunction Bool Function IsLocationDiscovered(ObjectReference akMapMarker) Return (akMapMarker.IsMapMarkerVisible() && akMapMarker.CanFastTravelToMarker()) EndFunction Then, in TopicfInfo fragment: (GetOwningQuest() as MyQuestScript).CheckLocations()
  12. If you attach the .psc files of the script attached to the quest, and the TIF fragment file in the TopicInfo here, I might give better help. In general, you want to keep your fragments as concise as possible. I would suggest that you move that entire function into the quest script. For TopicInfo to call a function in the script of the quest it belongs to: Assuming the script attached to your quest is called 'MyQuestScript', and the function is 'CheckLocations()' then in TopicInfo: (GetOwningQuest() as MyQuestScript).CheckLocations()
  13. Seriously? Did you actually LOOK at the numbers? Explore ALL mods: Skyrim (LE) - 71426 results. SSE - 83506 results. Only 17% total over LE. And the vast majority of that difference? Translations. Once you filter out the translations, LE has 62210, and SSE has 63977 mods left. Almost even. But it gets better. Filter out the Racemenu and Bodyslide presets as well. Now LE has 59739 left. SSE has 57150. I am sure one can filter out some more superfluous categories, but even so, LE already got more 'actual' mods. And If anything, picking what to get is much harder on LE, as last I checked, it supported only ~250 .esp's . SSE can load same 250-ish 'heavy' mods, plus 4000+ light ones . So with SSE, you can happily keep piling it on before running into a limit. Updates by Bethesda? Yeah, they happen. And ways around them are very well documented. Plenty of folks running 1.5.97 or 1.6.353 or whatever version they fancy, and game updates do not affect them. I am presently running 1.6.1130 with 300+ active mods just fine. Community toxicity? Well, if you go by Steam stats, as I write this, ~22k people are playing SE. Only 2k playing LE. With a community 11 times the size, you are bound to have about 11x more 'cracked eggs'. LE community is a dead echo chamber, people from there often have to post on SE forums to get any sort of answer.
  14. The save file size and number of script instances are actually well within expected numbers, so you don't appear to have a save file bloat issue. Having stacks/frames means you might want to enable your Papyrus logging as well and see what it says. Did you check the logs of individual .dll plugins? (SMP, skee, etc)?
  15. My suggestion is to scour Nexus mods for character face presets, note those whose work you find a cut above the rest - or close to what you are looking for - and try to get in touch with authors of those presets via PM. See if any of them would be willing to tackle this one. Off the top of my head, I could recommend: LamaKreis Seraevy TheFaceSculptor Dovahkiinathay Farodaestin
  16. I mostly use Simple Mod Item Spawner . Used to use AddItem in pre-AE days, but then it broke cause it uses an SKSE plugin. Supposedly got fixed with AddItemMenuNG, but I suppose it got broken again by the recent 1130 update. In AE days (up to 1.6.640) I switched to QUI, but it also uses a plugin and was not updated past 1.6.640. Simple Mod Item Spawner is fully Papyrus-based, making it version-agnostic.
  17. Have you looked at your saves in Fallrim Tools Resaver? Specifically, first save created at game start, a save 6-7 hours into game, and the last save you make before it starts crashing? Namely the reported size of the file, as well its number of script instances, changeforms and such?
  18. For 3 numbers, this method is fine. But suppose you need 40 unique randoms in 0..100 range? Int[] slots = new int[100] Int[] results = new int[40] Int idx = 0 while idx < 100 slots[idx] = 0 idx += 1 endwhile Int ridx = 0 while ridx < 40 idx = Utility.RandomInt(0,99) while slots[idx] == 1 idx += 1 if idx > 99 idx = 0 endif endwhile slots[idx] = 1 results[ridx] = idx ridx += 1 endwhile
  19. place01 = Utility.RandomInt(0,6) place02 = place01 while place02 == place01 place02 = Utility.RandomInt(0,6) endwhile place03 = place01 while place03 == place01 || place03 == place02 place03 = Utility.RandomInt(0,6) endwhile
  20. You know, I googled po3_namedashpiles, and immediately got this https://www.nexusmods.com/skyrim/mods/97046?tab=files
  21. Here is a very good guide to get you started https://wiki.nexusmods.com/index.php/Skyui_Skse64_installation_guide However, a couple things first. It is recommended you do a clean install of Skyrim SE, or at least verify file integrity. Then launch the game at least once from Steam, make sure you can start new game. Once you are doing that cart ride, you can open console (~) and use qqq to exit. In game properties in Steam, select it to update only when you launch the game (from Steam). After this, you set the game only to be launched from Vortex via SKSE. After that, you can go ahead and start adding mods. Be sure to read descriptions and make note of requirements and conflicts.
  22. As mentioned, vast majority of mods will work just fine if installed mid-game. Especially mods that enhance the looks of things. Mods that change a certain part of the world are best installed before visiting that part of the world. I.e. a Breezehome overhaul mod should not be installed after you bought/visited Breezehome. "Creation Club" did not really wreck anything. Bethesda updating the game, did however. But 'wreck' is too strong a word. Majority of mods were not affected at all. Only those that include SKSE plugins. And since then, most of those were updated.
  23. Even that is considered dialogue. Just not player-driven kind. Except instead of using voice files, it might be pointing at SoundDescriptor forms. For example, if you load up CK, and locate quest: CreatureDialogueDog In 'Combat' tab, it has 2 categories: Hit and Death, and if you open response of the 'Hit' category, it points at "NPCDogInjured" sound file. And looking at that sound descriptor, it has 3 possible .wav files, chosen at random. And in the Misc section of that quest, the 'Hello' section. However, there is indeed a different system existing. SoundDescriptor 'NPCDogBardSD' is used by ImpactData NPCDogBarkImpact. Which is used by NPCDogBarkImpactSet, which uses NPCDogBarkImpact against pretty much any material. which is used by NPCDogBarkFootstep (tagged NPCDogBark), which is part of NPCDogFootWalkFootstepSet, which is assigned to various 'dog torso' armor addons. That FootstepSet aside from the usual FootBack/FootFront, also has Attack, AttackPower, IdleScratch, IdleShake, IdleWhine, AggroWarning 'Footsteps' My understanding is that "Footstep Tag" is what is used in a specific animation idle to indicate a moment to generate a sound. So if you create your own footstep set with same tags, potentially reusing some of the vanilla 'footsteps', but pointing at your own sounds for others, and your custom dog also belongs to DogRace and thus uses DogProject behavior graph, but has a custom body Armor Addon with a custom FootstepSet assigned, that might work...
×
×
  • Create New...