Tuesday, April 10, 2012

Broken Mods, Papyrus Debugger, and You! An unhealthy tutorial

So your skyrim isn't working?  You paid $500 for a couple of brand new SLI or Crossfire cards, not to mention the raw dough spent on a shiny new processor and flaming-hawt ram, and you're pissed.  Well...  Maybe it's not your hardware.

Possibly, it's one of the 80 mods you installed... Maybe it's the shiny new eyelash replacer or that damned butt physics mod.  But you can't be sure, can you?  So you're about to go one-by-one and figure out which mod is crashing and lagging your game to hell, spending 4 hours enabling and disabling each mod until your game works a little better.  Well you've got another option.  Enter the Skyrim Papyrus Debugger-thing.

Papyrus will allow you to print out all the crap that your mods are mucking up!  But what do you do with it?  Well read on.


1.  First, Enable Papyrus Logging by opening your Skyrim.ini file located at [YourWindowsUsername]\Documents\My Games\Skyrim\Skyrim.ini

2.  Find the [Papyrus] heading (or if it doesn't exist, create it at the end of the file) and add the following:


[Papyrus]
bEnableLogging=1
bEnableTrace=1
bLoadDebugInformation = 1


Now, Papyrus is enabled!  Now what?

3.  Enter your game.  If it crashes to desktop, hopefully it will log the errors you've encountered.  If this is the case skip ahead a bit to step 5.

4.  Play the game for a while.  When it starts lagging up or giving you problems, open console by hitting the ~ key (or `, depending on how you look at it) and type 'dps' without the quotes.  This will dump a log file to your My Games/Skyrim directory.

5.  Open up [YourWindowsUsername]\Documents\My Games\Skyrim\Logs\Script\Papyrus0.log
(the newest log will always be appended with a 0)

6.  In this file, scroll alllll the way to the bottom.  Now, start looking from the bottom upwards.  If you're anything like me, you'll see plenty of errors and warnings thanks to the half bazillion mods all cohabitating not so peacefully.  You'll be looking in particular for anything that repeats itself more than the others.  Some mods will have a few errors, and that's okayish, but you're looking for that one little bastard that's ruining everyone's fun.  He'll show up alot, so once you find it, look and see if you can find a "EvilScriptName.psc" file.  It will most likely end in a "psc", because that's a papyrus script file.

7.  Now, open up your directory with all the mods zip files you've downloaded.  If they're in a dir with all your other downloads, move them to a directory all their own.  Or, if you're using the mod manager, find the mods directory which stores all your mods downloads in compressed format.  You can look in the NMM settings to find them.

8.  Once your mod zips are all in one format, open up Winrar and point it to that directory.  Now, if you're lucky, the psc will be inside a filetype called *.pex of the same name.  So click "find" and type "*ProblematicFile*" without quotes into the filename field.  If the file is ProblematicFile.psc, then just use ProblematicFile without the .psc extension.

9.  If you find it, go ahead to step 10.  If not, then your mod maker was a punk-ass and decided to include .psc files inside his .pex files of a different name.  In this case, do a search in your mod directory, instead using the string field, with "*ProblematicFile*".  Then hit Ctrl+Alt+Delete, and go to your WinRar.exe process, right click it and Set Priority to High.  This is doing a full-text search of alllll the files in the archives in the directory so it's going to take some time.  Grab a coffee, have a smoke, watch your dog chase his tail in circles, then teach that elegant lout to recite Shakespeare.  Seriously it'll take that long, so give it a while.

10.  Now you've located the damn pex file which uses the problematic psc.  It should give you the archive the file was located in.  Go back to your NMM and remove the bastard mod.  Then go and post on the mod maker's comments board that you want your money back.  Be sure to include a chunk of the log so he can fix it if he ever gets the time in between his Anime Mod XXX Lydia sessions.

11.  You're done!!  not really.  There are probably going to be several mods with huge problems.  Like I said before, many mods will have an error here or there, but you're always going to be looking for that one damn mod that loops hundreds of times looking for a sweetroll that just isn't there.

Hope this has helped save you a few hours of mod enabling/disabling and given you a nice look into the headaches mod-makers have to go through in order to give you such a nice user experience.  Remember they're doing this for free, so if you love the mod, go ahead and donate to your favorite mod makers.  Oh, and FFS buy the damn game.  Bethesda may not deserve it as much as they did for Morrowind (amirite?); but damn they got to have money to make the next game.  And I know we're all waiting for it.  Seriously.


- Wretched.Calx

Oh, wood-missles and leg-benders.  Yeah.

Skyrim Mods not working, Papyrus Debugger Help, Broken Skyrim Mods, Skyrim Mod Papyrus Help, Skyrim Mod Errors, Skyrim Mod Crashing, Skyrim Debugger, Skyrim Mods Fix

18 comments:

  1. When exactly is the .log file generated? It doesn't seem to want to generate one for me.

    ReplyDelete
  2. You can see the load-order of the plugin with the problematic script in the log. The first three digits/letters give you that. Compare that against the load-order column in Wrye Bash.

    Example:

    [12/23/2012 - 01:09:12PM] error: File "kuerteeEatAndSleep.esp" does not exist or is not currently loaded.
    stack:
    .Game.GetFormFromFile() - "" Line ?
    [kuBFAIQ (55000878)].kubfaiqs.tick() - "kuBFAIQS.psc" Line 380

    Load order here is 55 so plugin that is listed as 55 is the one you would disable to get rid of that particular error.

    By the way, script classes must reside in a file named after the script. So point 9 in your procedure is technically incorrect.

    ReplyDelete
    Replies
    1. Jarek, thanks for the info about the digits. It helped me find the problem mod.

      Delete
  3. What would cause the Papyrus logfiles not to be generated despite having the entries added to the end of Skyrim.ini as instructed?

    ReplyDelete
  4. What would cause the Papyrus logfiles not to be generated despite having the entries added to the end of Skyrim.ini as instructed?

    ReplyDelete
  5. Sometimes it might be loading the ini file from directly in the program folder, depending on your operating system. Also there are two ini files, be sure you're using the correct one. In addition, be sure you're modifying the right user account. If all else fails, delete (backup first) all ini files you can find and start the game, it will regenerate them, then you can modify the new files that were created.

    ReplyDelete
    Replies
    1. Mod Manager loads its own set of .ini files that are stored in the profile directory for each Mod Manager profile.

      Delete
  6. Okay, so what if the problematic file is actually the main? Like the BirdsFleeSCRIPT.psc is for the main game, and always omnipresent prior to a freeze.

    ReplyDelete
  7. What if it is the main? Like birdsFleeSCRIPT.pcs is for the Skyrim.esm, and is always omnipresent prior to my freeze.

    ReplyDelete
  8. Holy cow, thank you for this!

    ReplyDelete
  9. i dont have any skyrim.ini files. i use windows 10. help

    ReplyDelete
  10. i dont ahve any skyrim.ini files. i use windows 10. help

    ReplyDelete
  11. In stepp 2:
    under my Papyrus stands 'fPostLoadUpdateTimeMS=500.0'. I deleted it and started skyrim without it, it crashed after the 'bethesta' loading screen (without telling me why) and the phase 'fPostLoadUpdateTimeMS=500.0' stands under papyrus again (yes, I safed the thing before). I tryed the whole thing with my skse skyrim, the 'normal' one works normal, but without mods :D. So, what can I so? I followed you step by step but it failed. Did I do something wrong or is it a spezial case?

    ReplyDelete
  12. [08/10/2016 - 08:39:06PM] error: Object reference has no 3D
    stack how do i fix this?

    ReplyDelete
  13. [08/10/2016 - 08:39:06PM] error: Object reference has no 3D
    stack how do i fix this?

    ReplyDelete
  14. [08/10/2016 - 08:39:06PM] error: Object reference has no 3D
    stack:
    help

    ReplyDelete
  15. You saved me so much time, even nearly 4 years later and had a good laugh all the while. Thanks lol

    ReplyDelete
  16. You saved me so much time doing this and had a good laugh while doing it, even 4 years down the road. Thanks!

    ReplyDelete