Jump to content
IGNORED

Instructions for fixing 'Pure Virtual Function Call' crash


Recommended Posts

TL;DR: how to fix pure virtual function call crash with SL.

 

1. download and install SKSE plugin attached to this post (not source).

 

Before 1.62:

2. open [b]scripts/source/sslActorAlias.psc[/b] where you have SL installed.
3. find all lines with "SetScale" and comment it out by putting ; symbol in front of the line.
4. recompile script [b]sslActorAlias[/b]

2. or wait someone else to do it and post their compiled script. I don't have CK installed on this PC so I can't do it now. Nukaboil has posted a compiled version here: [url=http://www.loverslab.com/topic/60287-instructions-for-fixing-pure-virtual-function-call-crash/?p=1528558]http://www.loverslab.com/topic/60287-instructions-for-fixing-pure-virtual-function-call-crash/?p=1528558[/url] for SL 1.61b!
SL 1.62 or higher:

2. disable all scaling in SL MCM.
Side effects:

SetVehicle papyrus command no longer rescales actor. That means mod like 0Seksy will no longer rescale actors automatically with SetVehicle and uneven scale actors will not align properly during that mod's animations! I haven't used that mod in a while, if it uses SetScale manually then it will still work properly. Other mods that rely on SetVehicle command may or may not be affected depending how they use it.

 

If you still have this crash:

1. Make sure SKSE plugin was installed correctly and is loaded (SKSE log will show).

2. Make sure you recompiled the sslActorAlias script successfully after you commented out those lines or installed someone else's compiled script properly and have the correct SL version for that script.

3. Some other mod may also be using SetScale on actor, consult with that mod author or point him to this topic. The crash happens at the exact time the command is executed so that may be a clue.

4. There are also some other ways this crash can happen that is not fixed in this post.

 

Long description:

 

 

Hello, a while ago I said that pure virtual function call can be fixed and PMed Ashal how to do it but he seems to have not updated SL in a long time so it's still a problem for some.

 

So here are instructions how to fix.

 

Cause of crash is when scale of actor is changed too fast which causes movement controller to be recreated and if it's already being recreated then it will crash. Think something like this:

while true
	game.getplayer().setscale(1)
endwhile
Causes the crash within few seconds.

 

The only reason SL uses SetScale at all is because SetVehicle command automatically sets scale of actor to 1.0, solution to crash is to disable this behavior of SetVehicle and comment out all uses of SetScale in SL.

 

SKSE plugin does this:

*((char*)0x6AAC5F) = (char)0xEB;

SetVehicleFixPlugin.zip

SetVehicleFixPlugin - Source.zip

Link to comment

What does the plugin do? (Sorry for being an idiot)

Can I just change the script in notepad++? You mention the CK but I'm using mod organizer so I can just edit the script it's installed

Also wouldn't disabled the scale actors in the MCM have the same effect?

Link to comment

SL uses papyrus command "SetVehicle" to lock NPC and player from moving for animations. This command has a side effect that resets or messes up scale of actor. To combat this SL will use SetScale command on the actor again right after this. This command can cause the crash if used rapidly. The plugin removes the side effect of SetVehicle command so that scale is not messed with, which means SL doesn't have to use the SetScale command anymore. That means it can be commented out completely.

 

Just editing the script is not enough you have to recompile it too. Let someone else do this and hopefully they will post it here, I can't do it either right now.

 

Disabling scale actor in MCM doesn't accomplish this because that option is about evening scale of actor and not this as far as I know.

Link to comment
  • 2 weeks later...

Awesome work, gents.

 

EDIT: Just to make sure I'm understanding this: You have to have BOTH the SetVehicleFixPlugin by h38fh2mf AND the compiled sslActorAlias.pex script by Nukaboil, right? I tried using just the sslActorAlias script and ended up with automatically-resizing npc's in every animation. My PC got raped by the Ebony Warrior, for example, and he shrunk down to about 6ft tall (from something like 7'6", a difference of about half a meter for metric users). I tried manually doing setscale 1 in the console but had to do it over and over as anytime the animation changed the npc would re-scale to the smaller size (my PC is about .95 or so).

 

Using both together seems to have fixed the issue. Npc's no longer automatically rescale. I still haven't tested extensively to see if I'm getting PVFC crashes with both, but with the sslActorAlias script alone I hadn't had a PVFC in something like six hours of gameplay, where previously it had been crashing on every third scene or so.

Link to comment
  • 4 weeks later...

I have a problem since i installed this fix. 

The fix in itself work great, but combined with PSQ, it result in a no ragdoll death when using killing sex actions. The NPC will be dead but stil breathing and generaly suspended standing in an ackward angle. The only way to correct it i found is to resurrect kill the caractere in the console.  

Link to comment

As a quick note + bump to this...

 

SexLab 1.62 has a disable scaling option, which will automatically disable all calls to setscale() by sexlab so you don't need to comment them out and recompile the script for this to work anymore. Just install the SKSE plugin here then enable 1.62's disable scaling option and you should be good to go.

Link to comment
  • 2 weeks later...

TL;DR: how to fix pure virtual function call crash with SL.

 

1. download and install SKSE plugin attached to this post (not source).

e-virtual-function-call-crash/?p=1528558[/url] for SL 1.61b!

SL 1.62 or higher:

2. disable all scaling in SL MCM.
Side effects:

 

*((char*)0x6AAC5F) = (char)0xEB;

 

 

Thank you for this. I have SL 1.62. Which file should I download; first or second?

 

Link to comment
  • 10 months later...

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