Jump to content

Recommended Posts

Posted
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.  

Posted
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.

Posted
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.  

Posted

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? 

Posted
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.

Posted
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).

Posted
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.

Posted

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. 

  • 2 months later...
Posted
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

Posted
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.

Posted

Hence my question. :classic_happy:

But yes, my tests also show that the function does indeed return the adjusted value (as it should). 

  • 1 month later...
Posted

Will there be a PapyrusUtil for Fallout 4 in the future? i feel that useful mod utilities are what is lacking for Fallout 4's modding to really get interesting.

  • 4 weeks later...
Posted

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 ?

  • 2 weeks later...
Posted

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

Posted

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.

  • 1 month later...
Posted

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?
 

  • 2 weeks later...
Posted
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 ?

Posted
6 hours ago, justedufun said:

Same problem here, someone know what to do please ?

sexlab includes papyrusutil you don't install this if you already have that...

  • 4 months later...
Posted

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.

Posted

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.

Posted
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.

Posted
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)

 

 

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...