Jump to content

Need help compiling a sexlab script


Recommended Posts

Posted

Hello,

 

i'm trying to compile "sslActorAlias" from Sexlab with some minor edits i made, managed to get rid of most errors i encountered (mainly by just adding other source files it depends on into the right directory) but with these errors i just cannot figure out where these functions it's missing originally come from so i'm stuck. So i'd appreciate if someone could give me some guidance on what to do here.

 

The errors in question:

Spoiler

sslActorAlias.psc

D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\sslThreadLibrary.psc(275,24): TransCount is not a function or does not exist
D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\sslThreadLibrary.psc(300,28): GetTransAll is not a function or does not exist
D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\sslThreadLibrary.psc(456,25): TransCount is not a function or does not exist
D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\sslThreadLibrary.psc(457,28): GetTransAll is not a function or does not exist
D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\sslThreadModel.psc(1141,25): TransCount is not a function or does not exist
D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\sslThreadModel.psc(1154,82): GetTrans is not a function or does not exist
D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\sslThreadModel.psc(1154,102): cannot compare a none to a int (cast missing or types unrelated)
D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\sslThreadModel.psc(1157,66): GetTrans is not a function or does not exist
D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\sslThreadModel.psc(1157,86): cannot compare a none to a int (cast missing or types unrelated)
D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\sslThreadModel.psc(1248,29): GetTransAll is not a function or does not exist
D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\SexLabFramework.psc(239,17): TransCount is not a function or does not exist
D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\SexLabFramework.psc(279,17): TransCount is not a function or does not exist
D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\SexLabFramework.psc(279,17): only arrays can be indexed
D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\SexLabFramework.psc(279,1): cannot return a none from transmalecount, the types do not match (cast missing or types unrelated)
D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\SexLabFramework.psc(289,17): TransCount is not a function or does not exist
D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\SexLabFramework.psc(289,17): only arrays can be indexed
D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\SexLabFramework.psc(289,1): cannot return a none from transfemalecount, the types do not match (cast missing or types unrelated)
D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\SexLabFramework.psc(299,29): TransCount is not a function or does not exist
D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\sslActorAlias.psc(144,22): GetTrans is not a function or does not exist
D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\sslActorAlias.psc(144,41): cannot compare a none to a int (cast missing or types unrelated)
D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\sslActorAlias.psc(282,23): GetTrans is not a function or does not exist
D:\Games\Steam\steamapps\common\Skyrim Special Edition\Data\Scripts\Source\sslActorAlias.psc(282,42): cannot compare a none to a int (cast missing or types unrelated)

 

 

Posted

As far as I know SL does not natively use any function called GetTransAll. You have a modified version of SL; perhaps P+?

 

Upload the script here.

Posted

Oh shit sorry i completely forgot to mention i'm using SLSO with the hakkey tweak, the sslActorAlias is from there, but i have nothing elese overwriting the other scripts it's complaining about, i'm not using P+ or SU+. I have attached all the problem script psc files in this zip file. Sorry for the confusion my brain's a little fried from trying to fix this issue.

 

Scripts.zip

Posted (edited)

GetTransAll is being called on ActorLib which is defined in sslSystemLibrary as a variable of type sslActorLibrary. I would assume whichever mod overwrote sslThreadLibrary should also overwrite sslSystemLibrary, or you're missing a dependency of the mod overwriting sslSystemLibrary.

 

Remember that when I say "missing a dependency" and "X should overwrite Y" its solely from the perspective of psc files. Plugins, textures, meshes, even compiled pex files are irrelevant in this case. Edit: i.e. you may have all the depdendencies, but you're missing the psc files from one of them.

Edited by traison
Posted

What do you mean? I have no other mod containing those files that sexlab overwrites either, and as far as i know i'm not missing any dependencies modwise... i think. Game's been running fine for a while now. So does that mean that the script is calling a funtion of some random other mod that's not listed on any of my mods pages as dependency and i have to somehow figure out which one it is?

Posted

I'm not familiar with these mods so I can't tell you how they're supposed to work, or whether they work at all.

 

If we assume you have all dependencies and that this mod is actually supposed to work, then that leaves 2 options as I see it:

  1. The missing script source is inside a BSA, and you'll have to extract it for the compiler to use it.
  2. The mod providing the missing script is actually not providing the sources, and you'll have to decompile the pex file(s) to get them.

I can decompile, if you provide the pex file.

Posted

okay so i checked all my bsa files, none of them had any of the above mentioned files, also checked again for any pex files being overwritten in case i missed something earlier but that is also not the case. there is literally nothing in my setup changing/overwriting any of these script files.

 

the only thing i could still think of is somehow the source files are outdated and missing that GetTransAll function because of that? Idk that sounds too dumb to be true but i'm REALLY out of ideas at this point so...

 

if you'd like to take a look to check i would appreciate that as i'm not quite set up for decompiling right now. i wasn't quite sure which file to send so i just packed the ones mentioned above.

Script pex files.zip

Posted

As suspected it's the exact same as the one i already had. The only file that had nothing related to something something TransAll was sslSystemLibrary but it seems unlikely now that the psc is diffrerent from the pex if that one isn't. Did you still check it just in case?

Posted
3 minutes ago, Stardust.exe said:

As suspected it's the exact same as the one i already had.

 

Your Papyrus compiler seems to disagree.

Posted (edited)

Process Monitor from Sysinternals (Microsoft) can tell you which file its loading. It will reveal why the compiler is not finding these functions. Has a bit of a learning curve though, especially if you haven't seen what your computer is really up to before.

 

Edit: That, or you run RustDesk and I'll come fix it myself. This tends to not be the popular option though.

Edited by traison
Posted

Hmm yeah, i tried the process monitor but i have absolutely no idea what is going on or what to look for. Oof, i'm starting to consider that second option because at this point i have no hair left to pull out of my head...

 

 

Posted (edited)
  1. Disable logging, as its on by default.
  2. Adjust the filters:
    1. Include events where process name matches "PapyrusCompiler.exe".
    2. Disable registry, process and network IO.
  3. Enable logging.
  4. Run the compiler like you normally would. Wait for it to fail.
  5. Disable logging.
  6. Search or filter (path containing) for "sslActorLibrary".

If you're running MO2 the output in Procmon will look unusual. This is because of the usvfs. You need to figure out which file was opened from the CreateFile calls that were successful. You could also see which file was read from, as it obviously can't read from a file that couldn't be opened.

 

Edit: And since you're most likely on Windows 10/11, the faster you do this the less junk you'll have to filter through. Your typical modern Windows install probably produces a million events in a couple of seconds, so its quite literally a case where every second matters. However, with effective use of filters you can get through any log, and the number of events only really slows down the filtering, not the analysis work.

Edited by traison
Posted

Okay, so first, i was actually dumb and completely missed that the sslActorLibrary WAS in fact being overwritten... oops. I then made sure to include said new file for the compiler but still get the same errors. I followed your steps but i'm still not exactly sure what to look for, there is one entry of "name not found" at /AppData/Local/ModOrganizer/Skyrim Special Edition/mods/sslActorLibrary.psc, not sure what i wants there but other than that i can see no obvious issue but i'm a complete noob so that's no surprise lol

Posted (edited)
10 minutes ago, Stardust.exe said:

"name not found" at /AppData/Local/ModOrganizer/Skyrim Special Edition/mods/sslActorLibrary.psc

 

This looks wrong. It doesn't make sense to me for anything to be looking for files in MO2's mods directory root.

 

On a side-note, may want to read this to avoid future issues.

Edited by traison
Posted

Yeah it seems very strange for it to look for files there. So maybe the compiler i'm using was the issue all along? I'm currently using the papyrus compiler app from nexus because i hate using the creation kit, is there something better? Or should i just bite the bullet and actually use the ck for once? I'll also have a look at the thread you linked

Posted
11 minutes ago, Stardust.exe said:

Yeah it seems very strange for it to look for files there.

 

The script source directory is defined in CreationKit.ini. Doubt this is the issue though, you'd be seeing a lot more errors earlier in the scripts if it couldn't find *any* sources.

 

10 minutes ago, Stardust.exe said:

So maybe the compiler i'm using was the issue all along? I'm currently using the papyrus compiler app from nexus because i hate using the creation kit, is there something better?

 

As far as I know there is only one compiler, the alternatives you're seeing are simply GUIs. I've made my own GUI to run the compiler as well, for the same reason: got tired of starting the CK.

Posted
Quote

The script source directory is defined in CreationKit.ini. Doubt this is the issue though, you'd be seeing a lot more errors earlier in the scripts if it couldn't find *any* sources.

 

Checked my CreationKit.ini just in case, strangely it doesn't have anything related to the script source directory. Should i add it then? If yes how/where exactly?

 

Quote

As far as I know there is only one compiler, the alternatives you're seeing are simply GUIs. I've made my own GUI to run the compiler as well, for the same reason: got tired of starting the CK.

 

Ah, okay. I mean i thought as much but who knows maybe the app i'm using is somehow known to mess something up so i thought it might be worth to mention it just in case.

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