Jump to content


Unofficial Patch Project
  • Content count

  • Joined

  • Last visited


About Sclerocephalus

  • Rank
  • Birthday 12/29/1965

Contact Methods

  • Website URL

Profile Information

  • Gender
  • Location

Recent Profile Visitors

1994 profile views
  1. Sclerocephalus

    [Fallout 4] Known Engine Bugs

    Update: I'm pretty much convinced now that this iis not an F4SE issue. You might want to have a look at this ticket which we fixed almost two yeras ago: https://afktrack.iguanadons.net/index.php?a=issues&i=20640 In this case, an actor array that should actually have been initialized by the OnLoad() event was mysteriously 'none'. At that time, I had no F4SE running (and it did probably not even exist). I also did not spend any time to investigate why the array was none Just added a sanity check and a line to re-initialize the array if necessary, and that did fix it.
  2. Sclerocephalus

    Feedback thread

    In the "Files for Fixes" section, you have to upload a new version first. Only then, there will be delete options for individual files.
  3. A condition check was on the wrong line. Update is on the way.
  4. Good to know. Thanks for the clarification.
  5. Settlement mods may interfere with the new update because WorkshopParentScript got a massive update. Though, it all depends on whether a mod makes modifications to that script (in that case, it will require an update) and how substantial they are. Good mods won't touch the vanilla scripts and try to work around them wherever possible.
  6. Ninja'ed. Please check my edit to the previous post.
  7. That's an as yet overlooked vanilla bug ! If you send an actor to another workshop, or if a new settler is created for a workshop, the workshop scripts run the TryToAutoAssignActor() function on him. This function auto assigns the actor to food or safety (depending on whether he's a guard or a normal settler), by setting a property on his WorkshopNPCScript, and then assigns him to all unassigned objects of that type that already exist at that workshop. If there are no unassigned resource objects, it won't do anything, and also clears the porperty on his WorkshopNPCScript again. The scripts check for brahmins before they call that function, but they forgot to check for Dogmeat. To unassign him, you only have to assign the objects that are currently assigned to him to somebody else. EDIT: there also may be something else wrong, but not on the scripts: Do you, by chance, have a mod installed that removes the LocTypeWorkshopSettlement from some or all workshop locations ? Asking this for a reason: around two years ago, I downloaded a mod that removed the enemy level lock on locations (i.e. made it so the level won't get stuck at the level of your first visit to a location) and then found out that this mod removed that keyword from all workshop locations. Reported this to the mod author but I don't know whether it was ever fixed. Removing that keyword has detrimental effects on the workshops because the workshop scripts check for it and some operations will not run as intended if it's missing. This would in fact explain why TryToAutoAssignActor() runs on Sanctuary while you are at Red Rocket when it actually shouldn't.
  8. Sclerocephalus

    SSE light sources casting no shadows

    There is a very useful lighting tutorial on TESAlliance: http://tesalliance.org/forums/index.php?/topic/6843-ck-basics-lesson-4/
  9. Sclerocephalus

    SSE light sources casting no shadows

    There also is another limit in that no object may be lit by more than x light sources at the same time (where x = 4, as far as I remember). Place more and you will get strange glitches.
  10. Sclerocephalus

    [Fallout 4] Known Engine Bugs

    Good point. Test run was indeed with F4SE installed. If this is really an F4SE issue, they should fix it as soon as possible.
  11. Sclerocephalus

    [Fallout 4] Known Engine Bugs

    Another papyrus bug: Zero length arrays of object references turn into none arrays on reload. My script is using two types of arrays that may have zero length at any time, namely script arrays (to be more specific: arrays of workhopObjectScript and arrays of workshopNPCScript) and object reference arrays. After saving, quitting to desktop, restarting the game and reloading, I started to get errors on the log about failures to call functions on none arrays when everything was fine before saving. Debug sessions showed that this happened when one of the object reference arrays had zero length when saving; after reloading, these arrays had mysteriously turned into none arrays. The debug logs also showed however that this did not occur to the script arrays: they are still zero length arrays after reloading if they had zero length when the save was made. I have not tested this with any arrays of forms other than scripts and object references yet, so there may be more forms affected than only object references. It might also be worth noting that the script stores the affected arrays in variables, not in properties, although this actually shouldn't make a difference (once things are getting buggy though, one never knows for sure what matters and what not ....).
  12. Sclerocephalus

    Skyrim Special Edition CTD problems.

    Considering the fact that the crashes appear to be level-dependent, the first thing that comes to mind is a mod-added armor or weapon with a faulty mesh that is distributed through leveled lists and does not appear in the game below level 10. It might be worth having a look at the leveled list sections of your armor and weapon mods (there shouldn't be too many as there are still only a few modders that go the way of properly integrating their items in the game) and check what they add at level 10.
  13. Sclerocephalus

    Four NPC driving me nuts

    There is a way to let a script recognize a null pointer (and to discern it from a 'normal' none ref), but I don't know whether this will be of much help because it will not prevent the error from being thrown: if actorRef != none if actorRef.GetLeveledActorBase() != none : (do your stuff here) : return endif : (everything that needs to be done if actorRef holds a null pointer should be added here) : endif First check for a 'none', as usual. The second check is a bogus check, as you probably don't need to know the leveled actor base. You know however that the check will fail with an error if actorRef holds a null pointer. If that happens, the script will skip the entire if branch. Thus, do anything you need to do on a valid ref in that if branch and move everthing you might want to do if the ref has turned invalid ibelow that check.
  14. Sclerocephalus

    Four NPC driving me nuts

    But you run stuff on them, so you likely save the actor on which a script instance runs at least in a variable once the effect starts running, so you don't have to re-evaluate the actor ref each time the script needs to run stuff on it. Or is your script entirely event based and you get the actor ref always from akCaster/akTarget that are passed in by the respective event ? See, that could be the problem. Magic effectts are forcibly deleted by the engine as soon as they stop running. If whatever is responsible for an event to fire on your script is happening while a magic effect is still active, your magic effect script will receive that event no matter what - but it may fire after the effect has expired, and if that happens, anything passed in by that event is likely invalid. If you store the actor in a variable or property once the effect starts running and use that instead of what an event is passing in, you'll always have a valid actor ref to operate on, and things may still be working if the script continues running after the effect has expired.

Support us on Patreon!