Jump to content

Recommended Posts

7 hours ago, bicobus said:

CTD after beth logo usually means that a master is missing (or isn't being loaded). Check your MO's esp list to be doubly sure.

On 6/14/2018 at 6:39 PM, JahReit said:

I don't think this is a papyrus problem, but don't know where else to post.  CTD after beth logo on new game and old saves (every profile). Load order and mods are exactly as before with no problems.  MO, wyre bash, tesvedit, loot all show nothing wrong, even tried save cleaner just incase. Reinstalled papyrusutil, MO, skse, redid bash patch, everything I could think of. Also reinstalled direct x 


 

Spoiler

 

This is the entire log:

[06/14/2018 - 06:27:13PM] Papyrus log opened (PC)
[06/14/2018 - 06:27:13PM] Function GetEffectMagnitudes in the empty state on type Ingredient does not exist. Function will not be flagged as callable from tasklets.
[06/14/2018 - 06:27:13PM] Update budget: 1.200000ms (Extra tasklet budget: 1.200000ms, Load screen budget: 2000.000000ms)
[06/14/2018 - 06:27:13PM] Memory page: 128 (min) 512 (max) 76800 (max total)

 

 

 

I truly appreciate your attempt to help, but since I've checked MO, wyre bash, tesvedit and loot for any problems and all those report "no problems", I don't think it's a missing master ... unless there is a situation where none of those utilities can spot it.  Besides, like I said, I've played on all my profiles without a hitch and I didn't change anything in the mod list nor the order.  I even loaded an older copy of MO to see if MO had changed something- same results, CTD. 

So I reinstalled fnv to have something to play.  Same thing happened, CTD.

I thought updating enboost might have caused the crash, but since it has no connection to fnv don't think that is it.  

Link to comment
42 minutes ago, JahReit said:

 

I truly appreciate your attempt to help, but since I've checked MO, wyre bash, tesvedit and loot for any problems and all those report "no problems", I don't think it's a missing master ... unless there is a situation where none of those utilities can spot it.  Besides, like I said, I've played on all my profiles without a hitch and I didn't change anything in the mod list nor the order.  I even loaded an older copy of MO to see if MO had changed something- same results, CTD. 

So I reinstalled fnv to have something to play.  Same thing happened, CTD.

I thought updating enboost might have caused the crash, but since it has no connection to fnv don't think that is it.  

If you haven't already, you should go beyond automated tools. I've found that none of them detect more than superficial problems . . . which isn't their fault, it's just the nature of the beast. 

 

One thing I've found extremely useful over time is having both a minimal profile and a blank profile in MO. I had a similar problem the other day where my main profile would CTD right after the logo, but the minimal worked as usual. I exported the 2 configs to text file, ran a diff on them, and dug into the entries that were different. I eventually found the problem.

 

That's what I suggest you do. A blank profile would be easy to create, so start there. However, if even a blank doesn't work, then there may be something in your skyrim install dir. If that's the case, look at file listings in all dirs, sorting by date to see if you can find the offending file. 

 

The main reason this shit is a pain in the ass is because nobody wants to get all fucky with the load order and eliminating mods 1 x 1 to find the flaw cuz it takes "a while" to start the game and get to the point where it crashes. You can mitigate this by going a handful of mods (5-8) at a time, then when it stops crashing, go thru the last handful 1 x 1. One way to reduce this PITA factor is to cluster up a bunch of mods into 1 dir. This is where "amazing world of shitty bikinis" (or whatever it is) is great because tht'at like ten hundred outfits all in one dir. Nothing care if there's 40 eleven .esp in one mod cuz the game sees it all the same. 

 

Bottom line is that you're going to wind up doing OS level sleuthing to figure out where the problem is.

So buckle up, buttercup ? . . . bite the bullet and just do that thing you've been avoiding.

Link to comment
50 minutes ago, Monsto Brukes said:

If you haven't already, you should go beyond automated tools. I've found that none of them detect more than superficial problems . . . which isn't their fault, it's just the nature of the beast. 

 

One thing I've found extremely useful over time is having both a minimal profile and a blank profile in MO. I had a similar problem the other day where my main profile would CTD right after the logo, but the minimal worked as usual. I exported the 2 configs to text file, ran a diff on them, and dug into the entries that were different. I eventually found the problem.

 

That's what I suggest you do. A blank profile would be easy to create, so start there. However, if even a blank doesn't work, then there may be something in your skyrim install dir. If that's the case, look at file listings in all dirs, sorting by date to see if you can find the offending file. 

 

The main reason this shit is a pain in the ass is because nobody wants to get all fucky with the load order and eliminating mods 1 x 1 to find the flaw cuz it takes "a while" to start the game and get to the point where it crashes. You can mitigate this by going a handful of mods (5-8) at a time, then when it stops crashing, go thru the last handful 1 x 1. One way to reduce this PITA factor is to cluster up a bunch of mods into 1 dir. This is where "amazing world of shitty bikinis" (or whatever it is) is great because tht'at like ten hundred outfits all in one dir. Nothing care if there's 40 eleven .esp in one mod cuz the game sees it all the same. 

 

Bottom line is that you're going to wind up doing OS level sleuthing to figure out where the problem is.

So buckle up, buttercup ? . . . bite the bullet and just do that thing you've been avoiding.

Great advise, thanks.  I have a bad feeling the problem isn't skyrim since fnv did the same with a new install and installing my working skyrim backup didn't either.  Might/must be something else that change that's affecting both beth games.  I'm old and have eye problems (a chore just reading posts) so I was hoping the solution would be simple.  Doesn't appear to be the case.  New install doesn't work so I have no idea where to start.  

Link to comment
13 minutes ago, Wyrade said:

It most likely won't help, as your problem doesn't feel like an issue this would handle, but do you have crash fixes installed (https://www.nexusmods.com/skyrim/mods/72725/)? If not, you could try it. But I feel your issue is before that, and the kind that is very hard to troubleshoot without being there and trying things. A shitload of things can cause crash in skyrim.

Also, are you using MO1 or MO2? 

Crash fix, yes.  Same problem with MO1 and MO2. Game was running fine, now it isn't.  I hate to lose skyrim play (10482 hrs), but outside reinstalling OS and everything, or pulling out my old computer, I'm at a loss.

Link to comment
12 hours ago, JahReit said:

Crash fix, yes.  Same problem with MO1 and MO2. Game was running fine, now it isn't.  I hate to lose skyrim play (10482 hrs), but outside reinstalling OS and everything, or pulling out my old computer, I'm at a loss.

 

I just posted this instruction to another thread. This is something you could try.

 

IMPORTANT: 
 1) DISABLE SSME/SKSE memory patch (only the memory patch, if you're using it). Both of these ways to allocate more memory are oudated and less effective than the option below.
 2) Install Crash Fixes. On its page, carefully read about "memory allocation". Activate it and tweak to fit your current mod setup. 
 3) Also, be sure to use ENBoost together with Crash Fixes, even if you don't have ENB.

 

After you installed Crash Fixes via mod manager, do the next:
 1) Install "SKSE Plugin Preloader" (http://www.nexusmods.com/skyrim/mods/75795/?). Download, unzip and place D3DX9_42 to your Skyrim folder (where your TESV.exe is, not in the /data folder).
 2) Go to /data/SKSE/plugins/CrashFixPlugin.ini and open it with any text redactor (notepad for example).
 3) Find and set UseOSAllocators to 1 (UseOSAllocators=1)
 4) Find and set CustomMemoryBlock to 1 (CustomMemoryBlock=1)
 5) Find and set MemoryInfoConsole to 1 (MemoryInfoConsole=1)
 6) Launch Skyrim and open console "~" button.
 7) Look on maximum memory block load. If it's 90% or higher - exit game and find CustomMemoryBlockTotalSizeMb value. Set it a bit higher (for example, if it was 110, set it to 120. Original value is 64), save .ini files, launch Skyrim and check memory block load again. Do this until maximum load won't be higher that 85-90% (check this in populated towns or combat).

Link to comment
18 hours ago, JahReit said:

Great advise, thanks.  I have a bad feeling the problem isn't skyrim since fnv did the same with a new install and installing my working skyrim backup didn't either.  Might/must be something else that change that's affecting both beth games.  I'm old and have eye problems (a chore just reading posts) so I was hoping the solution would be simple.  Doesn't appear to be the case.  New install doesn't work so I have no idea where to start.  

I wouldn't have a problem remoting in to your pc and digging around for a bit to see if I could figure it out.

 

I'm not going to guarantee I can fix it or tell you what's wrong with it, and I don't want to become the tech help guy long term. I'm just reaching down in this moment to give you a hand up.

Link to comment

Last post on my problem in this thread.  Very long story short/shorter, bad audio driver.  Reinstalled steam, skyrim and a multitude of others that got trashed during my search.  Skyrim worked, but 1,000 plus fps doesn't work for skyrim, so I reinstalled msi afterburner which caused the same problem I had orignally.  Replaced with Nvidia Inspector, fps and everything good now.  Hopefully this solution might help someone else. 

Link to comment
  • 2 months later...
On 9/6/2018 at 12:23 PM, qotsafan said:

the int value, that's already stored on that form and string key, aka the value before it's adjusted.

*before* its adjusted?

i've never needed the return since the entire point of Adjust was i didn't care what was inside, but that seems silly to me that its the before value not the after value XD

i mean, you don't do If(Something == SomethingElse) to find out if it was true before you tested it, its to test the current state XD

 

guess i better remember to never write code like If(StorageUtil.AdjustIntValue(None,KeyName,Inc) > 10) lol

Link to comment
10 hours ago, darkconsole said:

*before* its adjusted?

i've never needed the return since the entire point of Adjust was i didn't care what was inside, but that seems silly to me that its the before value not the after value XD

i mean, you don't do If(Something == SomethingElse) to find out if it was true before you tested it, its to test the current state XD

 

guess i better remember to never write code like If(StorageUtil.AdjustIntValue(None,KeyName,Inc) > 10) lol

Hmm, now that you say it, that does make little sense and after testing it, it indeed seems to resturn the adjusted value, instead of the already existing value. That said, I went after reading comprehension of the comment above the function, which states the following:

Quote

Get previously saved int/float/string/Form value on form or globally.

Apparently that's not the case.

Ah, I see now, since string and form are also mentioned in the comment, it seems like it was just copy/pasted from the "Get" section.

Link to comment
  • 1 month later...
  • 4 weeks later...

Does anyone use this mod in Vortex?

I'm getting a conflict error with SexLabFramework162. I don't want to delete this mod and simply assume it's in Sexlab or something, but I'm also not sure if I should make a rule to have it load before or after Sexlab.

 

I'm still new to Vortex and learning how it all functions. I'm more used to NMM at this point, but Vortex feels a little better...so I'm switching over. Any help appreciated ?

Link to comment
  • 2 weeks later...

Is there a source code location or a more detailed description of the functions?

For example the prefix functions in StorageUtil

 

Is my assumption below correct?

SetStringValue(obj,"prefix_1","value 1")
SetStringValue(obj,"prefix_2","value 2")

if CountAllObjPrefix(obj,"prefix") == 2
	ClearAllObjPrefix(obj,"prefix")
endif

if CountAllObjPrefix(obj,"prefix") == 0
	; yeah!
endif

And this assumption below?

SetStringValue(obj,"prefix_1","value 1")
SetStringValue(obj,"prefix_2","value 2")

if CountAllObjPrefix(obj,"prefix") == 2
	debug_DeleteValues(obj)
endif

if CountAllObjPrefix(obj,"prefix") == 0
	; yeah!
endif

And this assumption below?

StringListAdd(obj,"key","test1")
StringListAdd(obj,"key","test2")
if StringListAdd(obj,"key","test2",false) == 1
	; yeah!
endif

Update: my debug_DeleteValues assumption is correct

Link to comment

It seems that JsonUtil has a severe bug - this is the start of my json file

{
	"stringList" : {
		"categories" : [
			"Knien",
			"Sitzen",
			"Liegen",
			"Stehen",
			"Laufen",
			"Arbeiten",
			"Aktion",
			"Tanzen",
			"Sklaven Aktion",
			"BDSM"
		],
      "Knien" : [
			"MariaKneelHandHead,0,1,0,Niederknien Hände am Kopf",

Now I have the following code

string[] category_names = JsonUtil.StringListToArray(JsonFileName,"categories")
string[] animations = JsonUtil.StringListToArray(JsonFileName,category_names[0])

animations is empty

It only works if categories and keywords are lowercase:

{
	"stringList" : {
		"categories" : [
			"knien",
			"sitzen",
			"liegen",
			"stehen",
			"laufen",
			"arbeiten",
			"aktion",
			"tanzen",
			"sklaven aktion",
			"bdsm"
		],
		"knien" : [
			"MariaKneelHandHead,0,1,0,Niederknien Hände am Kopf",
			"MariaLickFeet,0,4,0,Füße lecken",
			"zbfxKneelHead,0,5,0,Arschfickpose",
			"IdleCowering,0,66,0,Angst",
			"ZazAPC017,1,1,0,Niederknien (gefesselt)",
			"ZapWriBleedoutIdle,1,0,0,Verwundet (gefesselt)"
		],

Update: It seems that JSonUtil KeyName input is case insensitive (makes sense cause of papyrus string pooling) but internally the KeyName is converted to lower case and the JSON parser is case sensitive.

Link to comment
  • 1 month later...

1. Is there an easy way to merge 2 StorageUtil lists? Without grabbing each element from one list and adding it to the other? Something like,

PapyrusUtil.MergeFloatArray()

but for a StorageUtil list? 

 

2. Any way to delete a .json file?
 

Link to comment
  • 2 weeks later...
On 11/13/2018 at 2:00 AM, Dragon_Nexus said:

Does anyone use this mod in Vortex?

I'm getting a conflict error with SexLabFramework162. I don't want to delete this mod and simply assume it's in Sexlab or something, but I'm also not sure if I should make a rule to have it load before or after Sexlab.

 

I'm still new to Vortex and learning how it all functions. I'm more used to NMM at this point, but Vortex feels a little better...so I'm switching over. Any help appreciated ?

Same problem here, someone know what to do please ?

Link to comment
  • 4 months later...

Is the C++ source for this available anywhere?

 

I keep thinking that I had a copy of it at one time, but I can't find it in my own files, and can't find a git repos on the net.

 

I thought it was in the main download, but it isn't, just a compiled DLL.

 

The most recent C++ source I can find is for 2.5, which is pretty ancient.

Link to comment

I'm looking for the latest source, because I want to extend my array math plugin to operate directly on StorageUtil items, instead of just arrays.

 

I can see from the old source how they are stored, so I think I can do this with the information I have.

I don't intend to import json objects, just StorageUtil.

 

But, so many versions between 2.5 and 3.3 ... were there bug fixes? What got fixed?

And if there was a bug fix, presumably it was something non-obvious that I wouldn't spot, as I'm not very familiar with SKSE and its patterns.

 

I don't want to replicate some old, long fixed StorageUtil bug.

Link to comment
26 minutes ago, Lupine00 said:

I'm looking for the latest source, because I want to extend my array math plugin to operate directly on StorageUtil items, instead of just arrays.

 

I can see from the old source how they are stored, so I think I can do this with the information I have.

I don't intend to import json objects, just StorageUtil.

 

But, so many versions between 2.5 and 3.3 ... were there bug fixes? What got fixed?

And if there was a bug fix, presumably it was something non-obvious that I wouldn't spot, as I'm not very familiar with SKSE and its patterns.

 

I don't want to replicate some old, long fixed StorageUtil bug.

I tend to avoid changing anything that'd break compatibility, so old source should still be applicable when it comes to API. Let me know what it is you want to actually do though and I'll tell you what I can.

Link to comment
3 hours ago, Ashal said:

I tend to avoid changing anything that'd break compatibility, so old source should still be applicable when it comes to API. Let me know what it is you want to actually do though and I'll tell you what I can.

  • I want to safely access a list (type of Int, or Float) from storage, on a form, or global, without introducing a memory leak or creating a deadlock.
  • I want to safely update the values in a list, as above.
  • I want to safely create a completely new list, as above.
  • I want to extend the size of an existing list, as above.

 

There's code that does all these things in the version 2.5 source.

So I can see how it's being done, and could cut-and-paste the bits of that code I need.

 

 

But if I do that, I'm worried that I won't be using the same lock that you use, which I might be able to work around, or it might be trouble.

I need to figure out whether ICriticalSection is a shared resource, or something per plugin.

I haven't had time to dig into that properly yet.

 

To make sure I lock the same way, it seems that I should reference your DLL and call it to perform the operations

 

However, as it doesn't export the functions, I'm not really sure how to get at them. Possibly they're in the VMClassRegistry that's passed into RegisterFuncs?

But that might be random depending on how the plugins are loaded. If I go first, StorageUtil won't be in there.

Not even sure if that registry is shared between DLLs...

 

And even if they are, I'm unclear how to fish them out of there... It seems like it will take some time to research.

 

This pushes me back towards a replication approach, where I simply ensure I only access those stores from my mod, using my plugin to avoid a locking problem. It doesn't seem ideal.

 

Also, I haven't looked into what ICriticalSection actually is yet, in terms of implementation, so maybe if I use it, I'll get the same mutex as you anyway? Or it's a named resource or something that can be reliably accessed from different plugins rather than your own unique (per-plugin) mutex?

 

 

Maybe it's easier to not do it at all, and just stick with array processing and access StorageUtil in Papyrus?

 

 

For background:

Spoiler

 

My actual intent is to perform large vector operations on the lists.

I currently do this with arrays, but I have many of my arrays in StorageUtil, so I could operate on them directly without ever going to the bother of making them into an array, then calling a function to operate on them, then writing them back to StorageUtil.

 

I process hundreds of moderate size arrays (90+ values) like this. It was time consuming in Papyrus, but is close to instant in native code.

 

e.g.

My papyrus interface looks like this:

 

Scriptname ArrayMath Hidden

 

Float[] Function Add(Float[] arraySourceA, Float[] arraySourceB) Global Native

Float[] Function Multiply(Float[] arraySourceA, Float[] arraySourceB) Global Native

...etc...

 

And I want to add a new script like:

 

Scriptname StorageMath Hidden

 

Function Add(Form objKey, String sourceKeyA, String sourceKeyB, String resultKey)

Function Multiply(Form objKey, String sourceKeyA, String sourceKeyB, String resultKey)

 

 

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
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • 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