Jump to content

Photo

Papyrus Script Errors and Warnings Discussion


  • Please log in to reply
27 replies to this topic

#1
blitzen

blitzen

    Adventurer

  • Supporter
  • PipPipPipPip
  • 1,299 posts
I'm starting this topic to facilitate the discussion of messages that are logged in the papyrus logs. These may or may not be followed immediately by a game crash (CTD) or lockup. Some of the messages are errors, some are warnings, and some appear to be informational status messages. For those who don't know, Papyrus is the scripting language that Skyrim uses. You can turn logging on by including the following in the Skyrim.ini file.

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

On Windows 7, the logs will appear in the following folder: \Users\<account name>\Documents\My Games\Skyrim\Logs\Script

You will see several log files there. The one containing the most recent activity will be named "Papyrus.0.log"
These are basic text files, and can be viewed with a standard text editor, such as WordPad or Notepad++. Basic Notepad doesn't format it correctly since it does not seem to recognize the end-of-line characters.

You can find readable scripts where Skyrim is installed, located by default under ...\Steam\SteamApps\common\skyrim\Data\Scripts\Source. These are the viewable source files for papyrus scripts, and have a ".psc" file extension, which you will not see if you do not have windows configured to display file extensions. These are not used directly when the game is running. They must be compiled into ".pex" files, which are located one folder up from the source files. If you see a scripting error in the log, you can go look at the script source file and see what it was doing. I use Notepad++, which displays line numbers, so it's easy to find the line. You may see something like this:

[ (1B008EA6)].FXBirdFleeSCRIPT.OnCellAttach() - "FXBirdFleeSCRIPT.psc" Line 19

Note that "1B008EA6" is the ID of the object associated with the script execution, and the "1B" is the mod index, so that you can tell which mod the object came from. In this case, it's Birds.esp (not to pick on this mod, since it's working fine).

#2
mike2977

mike2977

    Enthusiast

  • Premium Member
  • 129 posts
If one turns on Papyrus logs, and doesn't freeze or crash to desktop (CTD), what significance are the Papyrus logs? Did the developers use them to just trace and debug the game as it was developed?

#3
blitzen

blitzen

    Adventurer

  • Supporter
  • PipPipPipPip
  • 1,299 posts
It's a mix. For example, one of the developers (Daryl) left some informational debug messages enabled that show up in the logs:

DARYL - [WeaponRackActivateSCRIPT < (000B16A7)>] running OnCellLoad() and AlreadyInit = False

This isn't an error, or even a warning.

There are also errors, which are not expected to occur, but are handled gracefully and do not cause an immediate problem:

[07/27/2012 - 04:08:47PM] error: Native static function LeftShift could find no matching static function on linked type Math. Function will not be bound

And there are warnings, which the developer detected, but didn't feel was likely to cause problems:

[07/27/2012 - 03:34:05PM] warning: Property MainQuest on script SpawnRandomActor attached to (00107D38) cannot be initialized because the script no longer contains that property

I doubt that all of the developers were consistent in their criteria for classifying something as an error vs. a warning. The logs will be most useful, of course, when specific messages are followed immediately by a crash, and it's repeatable, hopefully by more than one person. That indicates a high probability that the errors and the crash are related, which helps determine which mod is involved in the crash. Otherwise, it allows us to see which scripts and mods are having issues in general, even if the game doesn't seem to have obvious problems at the time the messages are written to the log. We are basically, as a community, going to have to keep an eye on the logs and learn to associate specific messages with actual problems. The best way to do that is to get enough people creating logs so that we obtain a statistically significant sample of messages and crashes/lockups so that we eventually learn to identify patterns of log messages with game issues.

#4
db878

db878

    Journeyman

  • Supporter
  • Pip
  • 25 posts
So would this be an error?

[IMCNmain (02002DBB)].IMCNqsMain.GetDistanceMoved() - "IMCNqsMain.psc"

I've been getting CTD's, but I've had IMP's MCN installed for a while now, and I'm getting logs that look more like this:

warning: Assigning None to a non-object variable named "::temp14" stack: [alias IMCNspoilagePlayerAlias on quest IMCNspoilage (020429D2)].IMCNasFollowerSpoilage.PauseAll() - "IMCNasFollowerSpoilage.psc" Line 66[alias IMCNspoilagePlayerAlias on quest IMCNspoilage (020429D2)].IMCNasFollowerSpoilage.OnUpdate() - "IMCNasFollowerSpoilage.psc" Line 35 [07/28/2012 - 12:13:32PM]

But those .psc files aren't there, for all of the mods I am getting this from. The mod was running great until I paused it to spend time setting up another mod (deadly dragons... didn't want to wake up with like -800% hunger. I've uninstalled it and reinstalled it, still does it.

Edit: I redownloaded IMP's, just to look at the files, and there's only the esp, bsa, and esm in the zip file. Could another mod be forcing IMP's to look for .psc/.pex files that aren't there? I'm using a whole slew of realism mods, but the ones I got, each author recommended using theirs with one of the others. The main ones I have are IMCN, Frostfall, Deadly Dragons (with the armor and spell addons), More Dynamic Injuries (which I noticed a follower problem in the logs with), UFO, Convenient Horses, ACE, ASIS, Duel - Combat realism, WARZONES, Occupy Skyrim, Real Wildlife (with the IMP version patch so the food applies), Birds/dogs/cats of skyrim, willows 101 bugs, and the Northern Ranger camping mod, just to name the ones that could be effecting each other. The only mods that have a slight issue with each other are ASIS and Duel, but load order takes care of the issue from what I've been reading.

Edited by db878, 28 July 2012 - 04:41 PM.


#5
blitzen

blitzen

    Adventurer

  • Supporter
  • PipPipPipPip
  • 1,299 posts
Both the .psc and .pex files are packaged within the .bsa archive. You can unpack it using http://skyrim.nexusmods.com/mods/4804. There is also a BSAOpt utility that can be used, and probably at least one of the mod management tools has a .bsa brower and/or unpacker. I unpacked the .bsa and I can see the scripts that you mention. As to whether that's a hard error, it's difficult to say. That might require some study of the scripts. The author should know.

But that's one of the reasons a topic like this could be useful. If we get several people with the same script messages logged, and they all experience some problem with the game that seems to be related to that mod, then we may consider it an "error". But I wouldn't get too hung up on whether or not we label something as an error. What's relevant is whether or not the game malfunctions in some specific repeatable way if we see certain messages in the log file. That's why we need as many people doing this as possible, so we get more information. Something may be considered an "error" by the script, but there may be no adverse in-game consequences as a result. Although we could give the author a heads-up on the message. When things like this happen, it may make sense to visit the comment topic for the mod and post the error so that the script author can look at it. We may even have instances where we want to send some of the log contents to Bethesda's official support. Although, keep in mind that Bethesda does not support modding of Skyrim, so only errors that don't seem to involve mods would be appropriate for them. We should all consider ourselves software testers at this point, and we can file bug reports where appropriate.

#6
steve40

steve40

    Proud new dad.

  • Members
  • PipPipPipPipPip
  • 2,693 posts
The majority of errors in the logs are caused by objects unloading their 3D when their parent cell is detached. Scripts continue to run, but once an object is unloaded certain script functions will cause an error if called, because they only work if the object's 3D is loaded. It's not practical (or game efficient) for the scripter to always test if 3D is still loaded before calling such functions. Usually the script will terminate shortly after the 3D unloads anyway.

The real problem is when a script is running in a constant loop and the 3D unloads (and the script doesn't do a check during the loop for this happening). If there's no way for the loop to exit, then you get a bloated log spammed with errors.

"fxDustDropRandomSCRIPT" and "dunBluePalaceArenaSCRIPT" errors are prime examples of this.

Edit: the other situation is when a scripted mod is uninstalled without doing a clean save (or the clean save procedure is not sufficient for that situation). The references that the scripts were attached to are literally ripped out from under them. The scripts continue to run, but they can no longer find the objects that they are trying to manipulate, so they spit out lots of errors like "unable to call function x() on a non-object".

A description of common Papyrus runtime errors is here.

Edited by steve40, 29 July 2012 - 01:21 AM.


#7
mike2977

mike2977

    Enthusiast

  • Premium Member
  • 129 posts

Although, keep in mind that Bethesda does not support modding of Skyrim, so only errors that don't seem to involve mods would be appropriate for them. We should all consider ourselves software testers at this point, and we can file bug reports where appropriate.


I'm really irked that Bethesda's official policy is not to support mods, yet they are the ones that came out with the Creation Kit. If they're going to release something like that into the 'wild,' then they should at least have a couple of folks dedicated to supporting the modding community. They should be active on these forums or have set up an official discussion thread of modding on their own forums.

Sigh...

#8
jasmerd

jasmerd

    Fan

  • Members
  • PipPipPip
  • 295 posts
I have just upgraded claralux to 4.A and followed the interior pcb save game uninstall rule - however I did not do the 31 day sleep to reset world cells. I am afraid to do so because somewhere in a thread on these forums I read that the 31 day sleep can have adverse effects and orphan needed scripts for your current setup. I don't think I want that to happen.
 
however in my papyrus log I am getting this error now - I am assuming this is the claralux deal?:
[02/12/2013 - 04:57:58PM] Error: Unable to bind script cluxHouseEnabler to (5D007ADE) because their base types do not match
[02/12/2013 - 04:57:58PM] Error: Unable to bind script cluxHouseEnabler to (5D006919) because their base types do not match
[02/12/2013 - 04:57:58PM] Error: Unable to bind script cluxHouseEnabler to (5D006915) because their base types do not match
[02/12/2013 - 04:57:58PM] Error: Unable to bind script cluxHouseEnabler to (5D006911) because their base types do not match
[02/12/2013 - 04:57:58PM] Error: Unable to bind script cluxHouseEnabler to (5D006909) because their base types do not match
 
Another Error:
As a player I installed and bought the 8000septim home from the innkeeper in rorikstead - i am still using it but getting this error:
Error: Unable to bind script QF_CascadeHousePurchase_01005EBC to CascadeHousePurchase (25005EBC) because their base types do not match
Another Error:
[02/12/2013 - 04:57:57PM] Error: Unable to bind script PF_MarkarthJeerahNurWarrenId_040095E0 to (440095E0) because their base types do not match
[02/12/2013 - 04:57:58PM] Cannot open store for class "cluxHouseEnabler", missing file?
 
Another Error:

[02/12/2013 - 04:58:03PM] Error: Unable to bind script defaultSetStageOnDeath to alias DarRakki on quest DarRakkiQuest (44044B38) because their base types do not match
 
 
any help or input on any of these errors is Greatly appreciated!!
 
Thank you so much
 
-jaz



EDIT1: 2 weeks later - got rid of claralux 4 and went back to Claralux V.2 -

Edited by jasmerd, 03 March 2013 - 10:50 PM.


#9
Raztafarian

Raztafarian

    Enthusiast

  • Members
  • PipPip
  • 148 posts

Hi, I've been having QUITE a few CTD's recently and hanging loading screens. At the moment I'm just trying to get to Solitude's exterior to test a docks mod but it was crashing to desktop as soon as it loaded up the exterior (from interior>>>exterior). After removing a school mod that affects Solitude's exterior and starting a new game, I can't even get past the interior>>>exterior loading screen, nor can I used live another life to start at the docks...

 

I let papyrus record a few logs to see if any scripts might be causing the problem and this is what it came up with:

 

Spoiler
 
I've cut it down quite a bit to shorten on the duplicate errors and warnings but there's quite a few here.... Does ANYONE know if they should produce these errors (just because the scripts dont need to be used) or if any of these errors are likely to cause the crashes/freezing I've been experiencing?

 

Also, sorry if this seems like a spam post but I'm all too desperate to get rid of these annoyances once and for all!



#10
jasmerd

jasmerd

    Fan

  • Members
  • PipPipPip
  • 295 posts
@raztafarian
looked at your papyrus errors and didn't see anything familiar - however if this were me or i were you with that situation - papyrus errosr I don't worry about TOO much but if they are repeating non stop every second then yeah - i might go backwards to  a save where that is not happening and start troubleshooting  from there.
 
I  always a try coming off of a fresh reboot once skryim hangs or times out - or I try getting into the save I want by loading a previous save - Once I am in game try loading the game I want. If  THAT  works - I will move to a low traffic interior and save game there.  Then I exit, reboot and try to load that new save game.  Hopefully you are good to go.  Atleast for the time being  LOL   still need to trouble shoot the errors
 
start up sequence for me:
start game booster  - utility frees up memory by stopping uneeded services and programs ( download link below )
start NMM
launch through skse
exit NMM  (frees memory)
 
I prefer and older version of gamebooster - Game booster 3.4 - download link:
http://www.techspot....949e60eb&file=1
 
If I am still having problems after that I will look at using Boss
boss/load
1. start boss and export my load order to a text file
2. run boss and let it sort a new load order
3. I note any mods up for tesV cleaning and I clean where necessary
4. I do the stare and compare with my new load order with respect to my saved load order from step 1. I pay attention to differences -  wether I get anything out of it or not I atleast become familiar with dependencies and boss's thinking.  Boss has actually put an esm in the wrong order for me on multiple occasions with the same mod - this resulted in a ctd.  claralux's esm for example boss for me will put it infront of climates of tamriel esm - that equls CTD
 
one of the practices I am trying to follow more is before I install a mod:
read the mod description look for installation guides, and uninstallation guides - if they are not there, I download the file manually to a folder.
extract that mod and look for a read me and see what it has to say about installs and uninstalls.  If I dont' like what  see I don't bother with  the mod.
however if it's all good for me then i wil do:
 
1. go to the console - type: save "b4 modname"
2. exit install the mod
3. set my load order properly according to readme.txt/mod info
3. start game
4. go to console
5. save "Aftr modname"
 
this gives me some play time with the new mod and I can follow my papyrus closely right after the new install of the mod if it papyrus gets all
jacked up - I FOLLOW the author's uninstall guide - if available  if it isn't - I just use nmm and hope for the best - look around for esp's / bsas it may have left lying around / check load order make sure it is gone.  then go back to my save game "b4 modname" edit1: saved game "b4 modname" was created in step 1

Edited by jasmerd, 03 March 2013 - 10:50 PM.





Page loaded in: 1.389 seconds