Jump to content

Recommended Posts

2 minutes ago, Blaze69 said:

Oh, I see it now. Sorry for the confusion.

 

Well, to be honest the ActorTypeNPC keyword check in the cloak conditions should still be a reliable way to exclude humanoid actors, as all playable (humanoid) races use that tag and I think so do the nonplayable ones as well; and AFAIK there is no reason for anyone to add that keyword to creature races so the chances of it mistakenly excluding an actual creature are practically non-existant. But still, yours is also a good idea.

Yeah, the keyword ActorTypeNPC works just fine for all vanilla NPCs.

But just a very few custom mods that add NPCs (usually followers) will add this keyword to them.

 

So, maybe, just a proposal, in the script attached, check with SexLab, and in case it does not pass the check FORCE the adding of this keyword to the actor, then just end the script.

So benefits from both fields.

Link to comment
3 hours ago, Ep1cL3w7z said:

Creature Framework is designed to work with any NPC intentionally. The misnomer is entirely my fault, as I couldn't think of anything to fit better at the time. Originally, it did have an arbitrary restriction preventing it from working on the non-creature races. When I was working on the framework before I released it publicly and getting feedback from lordescobar666 and dentarr, that was one of the first changes they suggested - removing that entirely arbitrary restriction. I did remove it, and I 100% agree with them. I'm not going to re-add this restriction, because it already bails out very early on NPCs that don't have registered race/skin combinations (that's what those log messages indicate), so you would hardly see any difference anyways.

well since i added "HasKeyword ActorTypeNPC = 0" to the CF spells using MNC i am getting less micro stutters in towns, humans npcs are not getting the FC active effect spell attached to them (i've been looking at npcs and creatures with the console) and my papyrus log is smaller.

 

so i must have done something different than you because the creatures are still working, even npcs that turn into werewolves still work (it looks like there keywords change with them, making them "ActorTypeNPC = 0" compatible)

 

2 hours ago, CPU said:

Yeah, the keyword ActorTypeNPC works just fine for all vanilla NPCs.

But just a very few custom mods that add NPCs (usually followers) will add this keyword to them.

 

So, maybe, just a proposal, in the script attached, check with SexLab, and in case it does not pass the check FORCE the adding of this keyword to the actor, then just end the script.

So benefits from both fields.

the npc's don't need the keyword if there race itself has it, and so far the new playable race mods i have tried have the needed keyword on the race.

 

SO THERE IS NO NEED FOR ANY SCRIPT EDITS, THE PROBLEM HAS BEEN DEALT WITH IN MNC.

Link to comment
1 minute ago, MadMansGun said:

THERE IS NO NEED FOR ANY SCRIPT EDITS.

I don't agree. But it is just my point of view. And I do NOT proclame myself to be the maximum Skyrim-modding-knowledge-guy.

Link to comment
24 minutes ago, CPU said:

I don't agree. But it is just my point of view. And I do NOT proclame myself to be the maximum Skyrim-modding-knowledge-guy.

well...script edits may be needed, just not for stopping active effects getting applied to human based npcs, just adding a spell condition does the job.

Link to comment

I don't want to add an arbitrary restriction preventing the use of human races, as I don't believe there will be any noticeable performance benefit. I can all but guarantee that checking with SexLab beforehand whether or not the NPC is a creature won't improve performance, as it's not really any different from CF checking if its race/skin are registered.

Something that you all seem to be overlooking is that CF already doesn't re-check the same actors every time the cloak is applied - the apply effect/spell has a much longer duration than the cloak rate (by default, at least), meaning the effect that does the check doesn't even get reapplied until the previous instance of it has expired. With the default settings, the cloak may be applied every 5 seconds, but a single NPC won't receive the apply effect (and henceforth will not add any Papyrus load) more than once every minute. This makes it even less likely that making the cloak spell itself not target human NPCs will make any noteworthy performance improvement.

 

4 hours ago, MadMansGun said:

well since i added "HasKeyword ActorTypeNPC = 0" to the CF spells using MNC i am getting less micro stutters in towns, humans npcs are not getting the FC active effect spell attached to them (i've been looking at npcs and creatures with the console) and my papyrus log is smaller.

 

so i must have done something different than you because the creatures are still working, even npcs that turn into werewolves still work (it looks like there keywords change with them, making them "ActorTypeNPC = 0" compatible)

 

the npc's don't need the keyword if there race itself has it, and so far the new playable race mods i have tried have the needed keyword on the race.

 

SO THERE IS NO NEED FOR ANY SCRIPT EDITS, THE PROBLEM HAS BEEN DEALT WITH IN MNC.

I feel that you may be experiencing the placebo effect for the reasons stated above. Additionally, unless there is something wrong with your configuration (too high fExtraTaskletBudgetMS, for example), Papyrus should not be able to cause stuttering in the first place.

Link to comment
44 minutes ago, Ep1cL3w7z said:

I don't want to add an arbitrary restriction preventing the use of human races, as I don't believe there will be any noticeable performance benefit. I can all but guarantee that checking with SexLab beforehand whether or not the NPC is a creature won't improve performance, as it's not really any different from CF checking if its race/skin are registered.

I don't mean to question your knowledge of scripting and the way Skyrim works, but I trus WaxenFigure's advice on the matter. Have you read the Reddit thread linked by MadMansGun? The post there goes into detail on why conditions should be used on cloak spells to prevent them from being applied on actors that are sure to be excluded afterwards (in the script).

 

To quote: "Why is selecting too many objects at once a problem? Simple, when applying scripts to objects each object selected gets it's own unique script instance which means that you have all of the overhead of creating a new script instance, running the script and then shutting down the script for every object that is selected by the cloaking spell. This is the primary cause of Stack Dumps because stack dumps are created when too many scripts are running at the same time and the game engine simply cannot add any more scripts."

 

The point is not to change the scripts (though as CPU said it's not a bad idea to have a fallback check in there just in case), but rather to add the proper conditions to the cloak so that it isn't applied to humanoid actors in the first place.

 

CF has no reason to work on humanoid actors, and I'm pretty sure in certain situations having the proper checks could indeed help save performance. For example, say we have something like 20 NPCs and a dog in a cell. After the cell loads and the CF cloak is activated, and with the current setup, 21 new script instances are created pretty much at once; 20 of them are deleted shortly afterwards, but the script load of creating all of them is still there. On the other hand, with the proper checks in place, only 1 script instance is created altogether (the dog), potentially preventing a stack dump if Papyrus is already struggling from other scripts.

Link to comment

Using CF from DefeadFixed patches archive. Its much lighter and my heavy modded game become visually more stable and no more papyrus log errors from CF. From CF light description in Defeatfixed archive;

Spoiler

The mod rewritted to get rid of magic effects. This allowed us to get rid of the cumulation these effects into the save and to escape shameless bag "no native object bounds.."
Now the mod properly checks SexLab actors.
I removed the debug code. The version less loads up the game.
Here is complete mod. (4 scripts remain)

 

Link to comment
33 minutes ago, Bad Dog said:

Is there any mod anywhere that uses this feature of CF?

it depends on what you call "humanoid" (don't forget that we use CF on Werewolves, Draugrs and Rieklings), but as far as actual playable races go (Werewolves don't count) i don't know of any at this time.

 

but apparently CPU is looking at the scripts so i'm standing down on this debate for now and waiting to see if anything comes of it.

Link to comment
On 7/15/2018 at 1:58 AM, Blaze69 said:

I don't mean to question your knowledge of scripting and the way Skyrim works, but I trus WaxenFigure's advice on the matter. Have you read the Reddit thread linked by MadMansGun? The post there goes into detail on why conditions should be used on cloak spells to prevent them from being applied on actors that are sure to be excluded afterwards (in the script).

 

To quote: "Why is selecting too many objects at once a problem? Simple, when applying scripts to objects each object selected gets it's own unique script instance which means that you have all of the overhead of creating a new script instance, running the script and then shutting down the script for every object that is selected by the cloaking spell. This is the primary cause of Stack Dumps because stack dumps are created when too many scripts are running at the same time and the game engine simply cannot add any more scripts."

 

The point is not to change the scripts (though as CPU said it's not a bad idea to have a fallback check in there just in case), but rather to add the proper conditions to the cloak so that it isn't applied to humanoid actors in the first place.

 

CF has no reason to work on humanoid actors, and I'm pretty sure in certain situations having the proper checks could indeed help save performance. For example, say we have something like 20 NPCs and a dog in a cell. After the cell loads and the CF cloak is activated, and with the current setup, 21 new script instances are created pretty much at once; 20 of them are deleted shortly afterwards, but the script load of creating all of them is still there. On the other hand, with the proper checks in place, only 1 script instance is created altogether (the dog), potentially preventing a stack dump if Papyrus is already struggling from other scripts.

I'm fully aware of how script instances work - which is why, as I already explained in my previous post, the cloak cooldown exists. The apply effect is only instantiated and applied at most once per minute with the default settings. You can increase the cloak cooldown to even further restrict it.

 

20 hours ago, Tkc said:

Using CF from DefeadFixed patches archive. Its much lighter and my heavy modded game become visually more stable and no more papyrus log errors from CF. From CF light description in Defeatfixed archive;

  Reveal hidden contents

 

The log messages are not errors, they're debug messages - and you can turn them off.

 

11 hours ago, Bad Dog said:

This. Once it did, before SOS became the default. Same with SL having a nudesuit option. Is there any mod anywhere that uses this feature of CF?

The reason is I want it to (assuming there is no measurable benefit to excluding it, which I am not at all convinced there is).

Link to comment
1 hour ago, Ep1cL3w7z said:

The log messages are not errors, they're debug messages - and you can turn them off.

No, im about "no native object bounds.." from RegisterForSingleUpdate and other errors which is logged when object with the magick effect was unloaded\removed and other same things but CF scripts didnt known about this and 99% kind of errors was disappeared with CF rewrited version from defeatfixed. I always kept disabled Debug messages in CF MCM.

Link to comment
15 hours ago, MadMansGun said:

make sure you have the .bsa file from Sexlab Aroused, and try looking in "Data\creatures.d" to see if there are any outdated json files in there.

reinstalled all now, test it later

it works with a new game, but not with an existing savegame
did this information help?


EDIT: I Fixed it with the Save Cleaner V. 2.06 from Hadoram (https://www.nexusmods.com/skyrim/mods/52363/)
thanks to all for help :)

Link to comment
1 hour ago, errorloadingusername said:

reinstalled all now, test it later

it works with a new game, but not with an existing savegame
did this information help?


EDIT: I Fixed it with the Save Cleaner V. 2.06 from Hadoram (https://www.nexusmods.com/skyrim/mods/52363/)
thanks to all for help :)

Dont think you will fix anything whit that close to obsolete cleaner. You will get the same issue later. When the problems in your loadorder starts to show them self after some time again.

Link to comment
  • 2 weeks later...

It's a magic spell like fire cloak or frost cloak that applies a magic effect to NPCs. By attaching an invisible cloak to the player, you can create a spell that affects all NPCs around you. The spell can run a script, and the script can do whatever you like. CF uses it to figure out what kind of creature it's got and assign it the appropriate dick. 

 

There are only a few ways of affecting all NPCs like that, and a cloak is the most convenient. Thing is, as stated above, all the NPCs are affected at once when you arrive in a new area (like opening the gate at Solitude). And SOS and SLA have cloaks of their own. (Actually, SLA has a throttling mechanism so the cloak is only active in short bursts, so it's not likely to be applied at the same time.)

Link to comment
11 hours ago, nightwolf said:

...

Basically what Bad Dog said. The point of the discussion was that every time the cloak spell affects an actor, it creates a new script instance that does whatever it's supposed to (BD explained what CF does above) and then is deleted.

 

Important thing to know, creating new script instances has an effect on performance, and if coupled with several other script-heavy mods, it could lead to a stack dump (game doesn't have enough resources to create more script instances, so it has a "stroke" and drops all currently-running scripts) which can be very bad and break things.

 

Bad Dog, MadMansGun, CPU and I were arguing that CF shouldn't be processing humanoid/playable races (because body replacers or even SL's own nudesuit system can take care of them just fine), and that by excluding them from being affected by the cloak spell in the first place, we would be preventing unnecesary script instances from being created.

 

May not seem like much of a difference at first, but if you enter a cell with several NPCs and only a creature or two in it, those checks could be the difference between creating 30 script instances at once or creating only 2. And in turn, if your Papyrus is already struggling, those 30 instances could mean "stack dump" while the 2 would mean "things continue working fine".

 

Ep1cL3w7z has stated he's not convinced of the performance increase being worthy of reducing CF's functions in turn (as it would mean CF can no longer affect playable/humaniod races), and thus doesn't plan on implementing the change into the main CF file itselfso far. Which is fine, as this is his mod. But since edting the cloak conditions is pretty easy and can be done by any plugin that has CF as a master, there's nothing preventing you (or anyone else) from implementing the change yourself.

Link to comment
On 7/17/2018 at 3:49 AM, Ep1cL3w7z said:

I'm fully aware of how script instances work - which is why, as I already explained in my previous post, the cloak cooldown exists. The apply effect is only instantiated and applied at most once per minute with the default settings. You can increase the cloak cooldown to even further restrict it.

 

The log messages are not errors, they're debug messages - and you can turn them off.

 

The reason is I want it to (assuming there is no measurable benefit to excluding it, which I am not at all convinced there is).

Why can't you just add a few lines to an existing script that checks if the actor is a creature before an animation is about to start? Creatures(or NPCs) don't need to be aroused when running around on the tundra, or do they? Tbh I don't see why CF is using arousal at all.

Link to comment
On 7/16/2018 at 7:02 AM, Tkc said:

Using CF from DefeadFixed patches archive. Its much lighter and my heavy modded game become visually more stable and no more papyrus log errors from CF. From CF light description in Defeatfixed archive;

  Reveal hidden contents

The mod rewritted to get rid of magic effects. This allowed us to get rid of the cumulation these effects into the save and to escape shameless bag "no native object bounds.."
Now the mod properly checks SexLab actors.
I removed the debug code. The version less loads up the game.
Here is complete mod. (4 scripts remain)

 

Where did you find this download? It's not on Defeat's main page. Does it work with MNC and BDIC?

Link to comment
On 7/27/2018 at 11:55 PM, nightwolf said:

Why can't you just add a few lines to an existing script that checks if the actor is a creature before an animation is about to start? Creatures(or NPCs) don't need to be aroused when running around on the tundra, or do they? Tbh I don't see why CF is using arousal at all.

Then disable the SLA integration.

Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use