Black Screen 2

Post here if you need help getting started with Daggerfall Unity or just want to clarify a potential bug. Questions about playing or modding classic Daggerfall should be posted to Community.
Post Reply
a3b3c2
Posts: 2
Joined: Sun Feb 04, 2024 4:39 pm

Black Screen 2

Post by a3b3c2 »

I'm seeing the same (or very similar) issue with DFU 1.0.0:

I saved indoor (mages guild, though I think I've the same inside a tavern) and if I load this save, everything is black (except for some UI elements, like compass) and some key binding are not working (I can't even exit the game normally, since Esc is not working). I also found that if I stand close to a building door and click on it (I can do it, since I have a mod that shows tooltips, and apparently it keeps working), the outdoor location shows completely fine but the key bindings are still missing.

Interestingly the save itself doesn't seem corrupted: it loads just fine on a freshly started game. And then if I go outside and save there, the new save could be loaded and reloaded normally.

I'm running DFU with a good deal of mods, so pretty sure that the trigger for this behavior is some mods being incompatible with each other, however, it does seem weird that the same save works just fine with the fresh game: could it be the case that the game doesn't discard some state before loading?

I see some exceptions in the log, namely

Code: Select all

NullReferenceException: Object reference not set to an instance of an object
  at ImprovedInteriorLighting.BillboardShadows.ToggleIndoorNPCBillboardShadows (System.Boolean shadowsEnabled) [0x0002e] in <139690110b4e442c911ac1333a979644>:0
  at ImprovedInteriorLighting.ImproveInteriorLighting.ApplyShadowSettings (DaggerfallWorkshop.Game.PlayerEnterExit+TransitionEventArgs args) [0x00000] in <139690110b4e442c911ac1333a979644>:0
  at (wrapper delegate-invoke) <Module>.invoke_void_PlayerEnterExit/TransitionEventArgs(DaggerfallWorkshop.Game.PlayerEnterExit/TransitionEventArgs)
  at DaggerfallWorkshop.Game.PlayerEnterExit.RaiseOnTransitionInteriorEvent (DaggerfallWorkshop.StaticDoor staticDoor, DaggerfallWorkshop.DaggerfallInterior daggerfallInterior) [0x00011] in <9bf28c68d79b48218c80373c9e1cf18f>:0
  at DaggerfallWorkshop.Game.PlayerEnterExit.TransitionInterior (UnityEngine.Transform doorOwner, DaggerfallWorkshop.StaticDoor door, System.Boolean doFade, System.Boolean start) [0x00366] in <9bf28c68d79b48218c80373c9e1cf18f>:0
  at DaggerfallWorkshop.Game.PlayerActivate.TransitionInterior (UnityEngine.Transform doorOwner, DaggerfallWorkshop.StaticDoor door, System.Boolean doFade) [0x000b7] in <9bf28c68d79b48218c80373c9e1cf18f>:0
  at DaggerfallWorkshop.Game.PlayerActivate.ActivateStaticDoor (DaggerfallWorkshop.DaggerfallStaticDoors doors, UnityEngine.RaycastHit hit, System.Boolean hitBuilding, DaggerfallWorkshop.StaticBuilding building, DaggerfallConnect.DFLocation+BuildingTypes buildingType, System.Boolean buildingUnlocked, System.Int32 buildingLockValue, UnityEngine.Transform doorOwner) [0x00289] in <9bf28c68d79b48218c80373c9e1cf18f>:0
  at DaggerfallWorkshop.Game.PlayerActivate.Update () [0x00393] in <9bf28c68d79b48218c80373c9e1cf18f>:0
and a bunch of `ArgumentException`s, like this one:

Code: Select all

ArgumentException: An item with the same key has already been added. Key: 70432588759067
  at System.Collections.Generic.Dictionary`2[TKey,TValue].TryInsert (TKey key, TValue value, System.Collections.Generic.InsertionBehavior behavior) [0x000c1] in <eae584ce26bc40229c1b1aa476bfa589>:0
  at System.Collections.Generic.Dictionary`2[TKey,TValue].Add (TKey key, TValue value) [0x00000] in <eae584ce26bc40229c1b1aa476bfa589>:0
  at LocationLoader.LocationSaveDataInterface.RegisterActiveSerializer (LocationLoader.LocationLootSerializer serializer) [0x0000c] in <620436d85ff84a0cba71210666a700af>:0
  at LocationLoader.LocationLootSerializer.OnEnable () [0x00014] in <620436d85ff84a0cba71210666a700af>:0
UnityEngine.GameObject:SetActive(Boolean)
DaggerfallWorkshop.Game.PlayerEnterExit:EnableExteriorParent(Boolean)
DaggerfallWorkshop.Game.PlayerEnterExit:BuildingTransitionExteriorLogic()
DaggerfallWorkshop.Game.<FadedTransitionExterior>d__110:MoveNext()
UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
which looks to be about trying to add to a dictionary something that's already there. So maybe it works with a freshly started game because the dictionary is empty? Then should it maybe be cleared before load?

Anyway, I'd be happy to provide more info if anybody is interested in looking into it.

I'd also appreciate any advice on how to figure out which mod I have to disable ;) For example is there any way to increase the verbosity of logging? Would it be possible to understand wtf is the item with the Key: 70432588759067?

Thanks a lot!

a3b3c2
Posts: 2
Joined: Sun Feb 04, 2024 4:39 pm

Re: Black Screen

Post by a3b3c2 »

I guess the first stack trace suggests that the "Improved Interior Lighting" mod should be disabled...

User avatar
Jay_H
Posts: 4072
Joined: Tue Aug 25, 2015 1:54 am
Contact:

Re: Black Screen

Post by Jay_H »

Yes, you'll notice the rules for this subforum state that the bug has to occur in an unmodded DFU; we can't provide support for mods that people make :) I recommend posting about it in the Improved Interior Lighting topic.

Furthermore, please don't add your issue to an existing topic. It's better to make a new thread. A black screen could have hundreds of causes, and this risks derailing the original post. As such, I've split this topic off.

Post Reply