Jump to content


  • Posts

  • Joined

Everything posted by alex77r4

  1. https://www.creationkit.com/index.php?title=Stats_Tab_-_NPC Bleedout Override: If checked, this value is used instead of the Bleedout Default specified on the Class.
  2. I read again all yours messages and i have two things that i can't understand: First of all... Why are you making the Clean SexLab? Why you need execute it? And second... Why are you cleaning your save game with ReSaver? What have your save game to need clean it? Apart of all that... Seems that your CTD not have any relation to SexLab or PapyrusUtil... Is evident that the crash happen in (PapyrusUtil.dll+9EF7) and the DLL is included inside SexLab and the crash show when you run the Clean SexLab.... But I'm thinking SexLab and PapyrusUtil not have any relation with your CTD. Simply because SexLab not access the NiNodes while make the Clean System = Reset Sexlab. Really is a process to stop and restart the sexlab quest, the related script, the configuration and, of course, not need access the NiNodes to make it. SexLab only use NiOverride to change the scale of the actors when run the animation. Not use NiOverride to make the Clean System = Reset Sexlab. Then, i'm thinking your CTD is caused by other mod that detect the stop and start of SexLab and make a process that is causing the CTD. Additionally, the XPMSSE skeleton can be correct and the skeleton in the bikini armors can be correct because the problem can be related to the exact version of the DLL of RaceMenu, called SKEE that include NiOverride, that is used to access the NiNodes that show in: Possible relevant objects (4) { [ 65] TESNPC(Name: `Yohanna Bringly`, FormId: 00000007, File: `Skyrim.esm`) [ 65] PlayerCharacter(FormId: 00000014, BaseForm: TESNPC(Name: `Yohanna Bringly`, FormId: 00000007, File: `Skyrim.esm`)) [ 403] NiNode(Name: `Default Bow and Quiver`) [ 504] BSTriShape(Name: `Material.000001_sheath_dae.dds_1`) } First, verify that your version of RaceMenu match the version of the game and the version of SKSE. Second, disable mods with scripts that use PapyrusUtil, RaceMenu or NiOverride to try find what is that other mod that is causing the CTD.
  3. Maybe the problem is related to that skeleton... Or maybe some of the bikini armors not have the correct skeleton... Practically, every armor have the body and the skeleton included inside the armor nif. When you equip the armor the game discard the actual body, skeleton and armor and replace it entirely with the models that come from the new armor. Maybe using nude body or using another armor the crash not happen.
  4. Again crash on PapyrusUtil when access NiNodes. Seems that really you have some problem with the skeleton and, when the clear process of Sexlab try access the nodes, you get the crash. I presume you can get a similar crash if you try alter your body with the sliders in racemenu. Probably, if you change the sex of your Player character to MAN the clear process of Sexlab works whitout any problem. Something in the body model is not correct, maybe the skeleton, or the armors or some problem in HDT or SMP.
  5. Have you make some test in a New Game? Maybe, your actual save game is broken or have some strange problem. Try ussing an older save game.
  6. Same as the others, exactly in the same address again about NiNodes: Unhandled native exception occurred at 0x7FFD20E29EF7 (PapyrusUtil.dll+9EF7) on thread 15384! Possible relevant objects (4) { [ 65] TESNPC(Name: `Yohanna Bringly`, FormId: 00000007, File: `Skyrim.esm`) [ 65] PlayerCharacter(FormId: 00000014, BaseForm: TESNPC(Name: `Yohanna Bringly`, FormId: 00000007, File: `Skyrim.esm`)) [ 405] NiNode(Name: `CME L Shoulder`) [ 510] BSTriShape(Name: `Material.000001_sheath_dae.dds_1`) } But i remember a crash in SexLab related to PapyrusUtil in Legendary that have some relation to save and load the game. Is this. I not know if can be the same problem but you can try the same solution.
  7. The crash show in PapyrusUtil.dll: Unhandled native exception occurred at 0x7FFD03EF9EF7 (PapyrusUtil.dll+9EF7) on thread 2780! Unhandled native exception occurred at 0x7FFD0F319EF7 (PapyrusUtil.dll+9EF7) on thread 15156! Then, first verify the correct installation of PapyrusUtil. If you are using Sexlab 1.63 Beta 8 download and install the version 3.9 from Nexus and overwrite the version included in Sexlab. If you are using Sexlab 1.63 Beta 9 be sure the PapyrusUtil from Sexlab Beta 9 is NOT overwrited by other mod. More clear, Beta 8 include an OLD version of PapyrusUtil and you must upgrade it to 3.9 But Beta 9 have a NEW version of PapyrusUtil that has not been published in Nexus. You must preserve it. Additionally, the crash happen when access NiNodes: [ 81] NiNode(Name: `NPC L Hand [LHnd]`) [ 217] NiNode(Name: `CME L Forearm [LLar]`) [ 367] NiNode(Name: `NPC L Forearm [LLar]`) [ 509] NiNode(Name: `CME L UpperArm [LUar]`) That can be a problem with the skeleton. Be sure you have XPMSSE 4.80, reinstall it, select Physics skeleton and not allow other mod overwrite XPMSE except the specific mods that must make it, like MNC or ABC.
  8. The spam in the Papyrus Log is not a problem. You can have a script in a eternal loop constantly writing lines in the log with Debug.Trace and you can not notice it while playing the game. Sometimes i have log's files of 100 megabytes in less than half hour while i develop my tests and that is not a problem for the game. The problems of XPMSE in my game was related to the tremendous ACCUMULATION of scripts caused by XPMSEWeaponStyleScaleEffect. Sometimes, when open my save game in ReSaver, i see up to 800 active scripts all of them running XPMSEWeaponStyleScaleEffect, each one of them in different lines, causing a tremendous slow down in the Script Engine.
  9. If the problem normally happen when change from exterior to interior you can add the event OnCellDetach() in YamActor and YamFollower. Seem that is reliably fired and we have 3DLoaded while the game process the events. See my code: Of course, my log say we have 3DLoaded over that actors AFTER 5 SECONDS. Log: I think 5 seconds is enough time to make everything that we want over that actors.
  10. Then, if i understand you correctly, this problem only happen when mix, for example, the following conditions: 1 - The actors are very far from the player inside a REPEAT animation loop and just have finished an animation NOW. 2 - When the animation end call EnterBleedout() that call Main.BleedOutEnter(mySelf, 0) that put Debug.SendAnimationEvent(me, "BleedoutStart") Of course, if that animation is not corrected the NPC go to make the Bleedout animation forever. But, while the Animation Framework make the necessary work, the actors must be in a false Bleed-out. Additionally, the spell Yam_BleedoutMark0_EFF disappear after 5 or 10 seconds and the actor lost the keyword. 3 - The player just cross a cell border while the Animation Framework is preparing the animation causing the actors lost their 3DLoaded 4 - Of course, the animation start FAIL because the actors not have 3DLoaded. 4 - The call to ResetGroup(!fromScene) is made and call Main.standUp(mySelf) but, as the actor NOT have 3DLoaded, can NOT execute Debug.SendAnimationEvent(me, "BleedoutStop") Result, the actor is locked in an eternal Bleed-out Animation. The most simple solution can be verify the distance from the player inside Main.BleedOutEnter(mySelf, 0) When the actor is very far with distance from player > 2000 or 3000, not make Debug.SendAnimationEvent(me, "BleedoutStart") If the actor is too far away from the player.... Why play an animation like BleedoutStart if the player can NOT see it? We are the Player and is fantastic see an actor in Bleed-Out when we are near them. But, when the actor are as so far that We (the Player) can NOT see it... why play that animation??? I think adding that simple verification can solve the problem. If not, simply say it... I have more possible solutions...
  11. Create some alias in Yam_ScanReload with special conditions like IsActor, IsBleedingOut, HasLoaded3D, GetDistance > 4000 or 4500 and attach a script to reset the Bleeding state and the animation. I thing the maximum distance to have 3DLoaded is 5000. With distance 4500 the actor must be inside the loaded cells but too far to see it. If you not want break Yam_ScanReload or have problems to include and process that actors create another quest. The idea is to select only bleed-out actors that are too far from the player and reset their bleed state and animation before they unload. That way the player can run away and leave the battle with the bleeding actors behind, but as they move far away from them the quest captures him and restores his bleeding state before losing 3DLoaded.
  12. That happen when SetPlayerAIDriven was enabled but not disabled. Is a Papyrus command that, as i know, not have equivalent in Console Command. Then, the only way to enable and disable SetPlayerAIDriven is, in a strictly and obligatory way, execute a script that make it. I presume you have Aroused. Then, press the aroused key, by default N, for at least 3 second and release it to launch a masturbation over the player and solve the problem. Additionally, if you have ZAZ Animation Pack, you can go to the MCM and, in Player Control Center, press Force Player AI and Release.
  13. Seems that you not understand the problem. Papyrus never return a false positive, until the code is bad, because Papyrus always make what the code say. When i say "your mod is executing multiple scripts at the same time and the scripts overlap" is because that was in that way. Any developer can understand it but i go to explain it again in other way. You have a quest with 8 alias what can be filled by followers and 15 alias that can be filed by bandits. The followers are attached to the script Yam_Follower and the bandits are attached to Yam_Actor. When one Follower alias is filled the game create a instance of the script Yam_Follower and when the bandit are filled a instance of Yam_Actor is created. What do you think that go to make Papyrus when the follower start fighting against the bandit? By pure logic, each hit over each actor are cached by each OnHit() of each alias. When the bandit hit the follower the papyrus log say: Onhit on follower 5555 catch hit from bandit 6666 When the follower hit the bandit the papyrus log say: Onhit on bandit 6666 catch hit from follower 5555 Each onhit() on each script of each actor call EnterKnockdown() that change the State and force the execution of OnBeginState() that have the lines: mySelf.AddSpell(calmMark, false) aggressor.AddSpell(calmMark, false) Inside the script Yam_Follower self is 5555 and aggressor is 6666 Inside the script Yam_Actor self is 6666 and aggressor is 5555 In that way, each hit of one actor over the other cast again the spells over the TWO actors, no matter if is myselft or aggressor, and re-apply the spells and renew the expire time causing that, sometimes, the spells not disappear for a very long time. Simply, because the actors are fighting one against the other. Really, papyrus was executing in parallel at the same time the hits of one actor over the other. But as the actors are crossed the scripts are crossed. The same happen when a mage launch a fire ball. Each actor affected by the fireball execute their own OnHit causing multiple and simultaneous executions of the same code at the same time because all the alias share practically the same source code. The State Busy only protect from execute multiple times OnHit() over the same actor. OnHit can be called multiple times for each real hit when using enchanted weapons or spells. The State Busy cover us to execute only one of them. But that is applied to each individual OnHit of each actor. Not protect from the cross execution caused when, in the script Yam_Follower myself is 5555 and aggressor is 6666 and, in the script Yam_Actor, myself is 6666 and aggressor is 5555. That is covered only with the New Lock FormList.
  14. That is the key but was a bit hard to determine exactly was happening because, really, my Player Character not fail always in the second try. Sometimes fail in the first, others times in the second, but others times in the next try. For other side, if i disable my followers and go alone practically always works but when i have my 3 followers around me a lot of times fail. That was not happening yesterday but, as we add the New Lock FormList, i start thinking in a problem on it. Then, i disable it and practically always works but sometimes fail. That was one of the things i'm investigating.... Why sometimes fail and only sometimes??? Well... the answer is a bit complex.... and is caused by the multiple execution of the scripts. The first thing i go to see was the time of the spells. You talk about 10 seconds but my ESP have only 5 seconds for the spells Yam_BleedoutMark0, 1 and 2 but the Yam_BleedoutMark3 only have one (1) second.... I not know why... But that spells was working practically always yesterday... Why not works today??? Because yesterday we not have the New Lock FormList. Then, we have multiple and simultaneous execution of OnHit() at the same time over different actors. Each one of that OnHit() call EnterKnockdown() that change the State and fire multiple executions of OnBeginState() and each one of them call Main.BleedOutEnter(mySelf, 0) that apply the spell multiple times. In that way, when Papyrus check the verification: If(!mySelf.HasMagicEffectWithKeyword(bleedoutMarkKW) || mySelf.IsDead()) As the spell has been applied multiple times the elapsed time of the spell practically always was below the 5 seconds and the check pass. But whit the New Lock FormList we only have one Onhit() running, only one EnterKnockdown and the GotoState is executed only one time. As the OnBeginState() only apply the spell one time calling Main.BleedOutEnter(mySelf, 0) and we have a Utilit.Wait(3.4) the game only have 1.6 seconds to make a lot things. When i'm alone, without followers, my game have less work and, a lot of times, can run enough fast to run the check before the 5 seconds expire. But when i carry my followers, the game have more work, more mesh, more textures, less frames and, of course, Papyrus have more work to do... then, the 5 seconds of time is not enough and the check fail. Log lines of one fail: From 20:24 to 20:29 was elapsed, exactly, the 5 seconds of the spell and the check fail. I up the time of the spells to 10 seconds and now the check never fail and every actor in Knock Down is processed. If the animation not show can be by others motives like MCM parámeters or problems in SexLab. Another problem solved. I go to make more test because i think we have more problems.
  15. Your FormList not work correctly but after making a small change seems start working correctly. Look here: GoToState("Busy") If(!akAggressor as Actor || StorageUtil.FormListFind(Scan, "YamProcessing", akAggressor) > -1 || StorageUtil.FormListFind(Scan, "YamProcessing", mySelf) > -1) GoToState("") return ElseIf(!StorageUtil.FormListAdd(Scan, "YamProcessing", akAggressor, false) || !StorageUtil.FormListAdd(Scan, "YamProcessing", mySelf, false)) ; I think that must not be made here because if we can not add it, probably, is because allready are inside the FormList ; Do you know another motive? Then, if they are inside the FormList left the others function remove them when correspond ; StorageUtil.FormListRemove(Scan, "YamProcessing", akAggressor) ; StorageUtil.FormListRemove(Scan, "YamProcessing", mySelf) GoToState("") return EndIf With that small change seem to works very good and the OpCode is making CALLSTATIC = instant call to StorageUtil: The only CALLMETHOD = delayed calls was the GotoState and we can't remove it. Now, i'm a bit more near to locate others problems but this time i need your help. I explain: The first time my Player character is knocked down by a bandit everything works, the scene is launched and i'm not attacked. But the second time not works. I follow the code to the OnBeginState() in State Rushed, exactly this verification fail: At this point i'm a bit lost. You have a lot of keywords, spells and code and i not know why that check fail and can't solve the problem.
  16. I'm making some test and can't use Faction because add and remove from faction are delayed calls that suspend the script at least one frame. Practically, any access to the default store class from the base game is delayed and we can't use them for this. We are forced to use StorageUtil because is made in DLL and all the calls to DLL's are instant = non delayed no matter how many time need the DLL to process the call. Use FormList is a bit slow but i think is much better than store the data directly over each actor because the FormList can say us globally all the actors that are locked in an exact moment and, if some clear is not made, exist inside the FormList and we can revise the code to find where fail. I go to include your FormList addition inside my version and go to make more test.
  17. I come from the wiki and say it very clear: GotoState Notes GotoState doesn't return until the OnEndState event of the current state and the OnBeginState event of the new state finish running. (And the events won't overlap) That mean, the function of the script that execute GotoState is suspended and not resumed until OnEndState and OnBeginState are completely executed. I start analyzing your mod this weekend and i go directly to the most easy and evident problem. I'm investigating the rest of the problems. Probably, another of the most big problem come from cross execution over multiple actors. I presume the OnHit() and all their derived cascade calls are executed in a simultaneous way by multiple actors. I see in my log something like: dd/mm/aaaa 12:00:00 [Yamete] asa llamamos a EnterKnockdown con mySelf: 1234 y Aggressor: 5678 dd/mm/aaaa 12:00:00 [Yamete] asa llamamos a EnterKnockdown con mySelf: 5678 y Aggressor: 1234 That are two simultaneous executions, in the same second, of the two same actors that put them-self in Bleed-out at the same time. Probably caused because one of them(1234) was affected, for example, by a fire spell, while hit the launcher of the spell(5678). Of course, that cause a clearly cross execution and one of them can end in sex scene while the other fail and break everything. I see log lines where one mage (4455) launch a fire ball and hit multiple actors causing the execution of multiple OnHit over different actors having all of them the same aggressor. For example, a fire ball with a range of 5 meters that hit 3 actors generate this: dd/mm/aaaa 12:00:00 [Yamete] asa llamamos a EnterKnockdown con mySelf: 1234 y Aggressor: 4455 dd/mm/aaaa 12:00:00 [Yamete] asa llamamos a EnterKnockdown con mySelf: 5678 y Aggressor: 4455 dd/mm/aaaa 12:00:00 [Yamete] asa llamamos a EnterKnockdown con mySelf: 1111 y Aggressor: 4455 That cause the multiple processing of the same aggressor and cause the crossing execution of the scripts where one of them, for example the 1111, can pass all the verification's and start a scene, theoretically, adding the necessary spells for the actors not be attacked by others... but... as the others two tries have failed, the failed running scripts remove the protection spells causing the actors are in scene but without the protection spells. I'm thinking on how solve this problems in an easy way and the only solution, for now, is create a new faction like Yam_Processing to add the actors to this faction immediately in the first line of OnHit. In that way, i try reduce the possibility of the same actor can be processed, at the same time, by simultaneous OnHit over multiple actors. But this is only a idea. I must implement it, test it and look the different results to determine if is a real solution.
  18. I have investigated the problem "X knocked down by [no entry]" and seems that i found it. I add some special trace log lines using getcurrentRealTime() to see, exactly, when was really executed the code and the exact order of execution: Do you see the lines Debug.Trace("[Yamete] ASA? Look what say my Papyrus0.log: What i think is happening: EnterKnockdown() change the State and, as the State has a function OnBeginState(), Papyrus suspend the function EnterKnockdown() Papyrus create another execution thread that run the function OnBeginState() in the State Rushed The code inside OnBeginState() is completely executed while the function EnterKnockdown() is suspended When OnBeginState() end Papyrus resume the execution of EnterKnockdown() Of course, when EnterKnockdown() show the notification the Aggressor is NONE and show the error. This problem can be the motive of all the strange things that is making Yamete like scenes not start, actors attacked while the sex act, followers and player not removed from the friend faction... All that seems not have any relation to Papyrus inconsistency. Seems to be a simple problem of execution order. The mod is very good made, plenty full of events, but when we work with events, the execution order is not guaranteed.
  19. The only way i know to lost the aliases is stop and start the quest or reset it. Check your code and revise one by one the values of the linked properties. If the problem persist clear the values of the linked properties, save the ESP and exit CK. Open CK and fill again the values of the linked properties. Additionally, you can put a debug.trace() in the OnInit() of the Quest.
  20. I not know where you get that idea but not have any sense. For the Script Engine all the scripts are equals. None script have priority. The DD scripts are not executed before of after any other scripts. All the scripts have the same priority. The simple fact of we have hundreds of scripts from DD not mean the NON-DD was to be locked, or hanged, or not executed... Every script is executed, always, not matter how overloaded was the Script Engine. Of course, we go to have script delay, but that only mean the scripts are not executed instantly or immediately. Depending of the Script Overload we can have a noticeable delay but, a lot of times, is a simple and punctual delay caused by a spike in the script that disappear after some seconds. Also, the idea about the Suspended Stack are dangerous or problematic not have any fundament. If you take a look to the Non-Delayed functions you can see that only a very small group of Papyrus functions go to this category. The other 90% of Native functions are Delayed and force the SUSPENSION of the script. That make the script show in the Suspended Stack section of the save game. If you look what are making the script in that moment always is a Delayed Native Call that, of course, SUSPEND the script until the call return. Lookin whit detail any save game we have this: In that screenshot we can see how each one of the Suspended Stack match with an Active Script that is making a Delayed Native Call and exactly for that is SUSPENDED, because simply is waiting for the answer of the Delayed Native Call. That not mean the script is lost or broken. Simply is SUSPENDED and waiting. The simple idea the scripts can be hanged or blocked ethernally in the Suspended Stack not have any sense. Every script, in one or other moment, go to be in the Suspended Stack section waiting the answer of the Native functions and, when the answer is received, the script continue their normal execution. A script never can be inside the Suspended Stack forever. The scripts constantly enter and exit the Suspended Stack section multiple times while their execution. If a script is sucked in that section for more than a bit of frames only can be caused by a problem in the script, the mods or the game.
  21. I not know where is the problem of the Suspended Stack. While making my test i make some manual saves and, yes, i have a lot of Active Scripts and Suspended Stack. But that is not a problem for the game: Practically, my 48 Suspended Stack was from Devious Training. This save game have 296 Suspended Stack and come from ZadLibs. But this another save made only after some seconds only have 74 Suspended Stack If we look the save game made automatically have 940 Active Scripts, 879 Function Messages and 44 Suspended Stack But my game works whitout any problem, the load screens need less than 10 seconds, my Script Latency is below 150 ms and my game not have any problem. Then, seems me the Script Overload problem is in nowhere. Mi saved games: overload_whiterun1.skseoverload_whiterun1.essautosave3.skseautosave3.essoverload_banedmare1.skseoverload_banedmare1.essoverload_banedmare2.skseoverload_banedmare2.ess
  22. After locating the problem related to the items in different colors i try locate where is the script overload. Remember that i playing with your DD version for Vanilla + Wenches + SlaverRun and, of course, i have another 235 plugins. I'm not having any problem of any kind. All my scripts are executed whitout any problem and i not see the overload. You say the problems start at 12-24 NPC's but as i not have many NPC's open the console and place some copies of the DCUR girls in WhiteRun. I make the same in the Banned Mare and place copies for Hulda and Sadia to get that number. None problem. I duplicate the copies. None problem. I duplicate it again. None problem. I modify the DDNF scripts to say how many NPC's are monitored by the mod. I have more than 50. None problem. Some times say Aliases FULL. Index:64 but when the alias are cleared the new NPC's are processed. When i say "None problem" i mean the loading screens to enter and exit Banned Mare need less than 10 seconds: The stops of 1 second was caused by Stack Dumps but that is not a problem. The script latency reported by Elephant is below 150 ms: Some times is high but are only in the punctual Load Screens or Stack Dumps. Then, i not see any problem in Script Load apart of the normal things that must make the game. My log: Papyrus.0.log
  23. Excuse me again but some times i'm a bit stupid... Skyrim is a Master, flagged as MASTER with extension ESM. The plugins flagged as MASTERS not have all their references loaded in memory. Only the references marked as PERSISTENT are always loaded. The husband of Synda is Dravin and have a quest to search a bow and that make the reference 19E15 always available. But their wife Synda, with ID bb33c, as not have any related quest, is not marked as PERSISTENT and, as is stored inside a plugin marked as MASTER their reference bb33c is loaded ONLY when we are near them. Flag the ESP's as MASTERS is one the solutions to the Reference Count Limit in Skyrim. From the main menu: After load my save game inside the Mara temple: Using the same save game after exit the Mara temple: After exit Riften: And of course, the log say again Wearing CONFLICTING devices: Seems that the problem is caused by how works the game and not have a direct relation with the DD scripts.
  • Create New...