Jump to content

Question

Posted

Dynamic Distant Objects LOD - DynDOLOD

 

Finally I can see my house from here

 

You know the price for my mods: blood, sweat and tears. Oh, and your first born.

If you want to help other authors of quality mods then donate to them directly.


For latest information and instructions see the DynDOLOD 2.18 UPDATE POST


What is this?

DynDOLOD is a set of tools based on TES5Edit and TES5LODGen to automatically create a Skyrim mod based on the load order which adds distant LOD for objects to Skyrim. By combining DynDOLOD with TES5LODGen users can create drastically enhanced traditional static LOD plus tree LOD and the new, optional dynamic distant object LOD in a few 'simple' steps.

DynDOLOD is meant for enthusiast modders who are familiar with using TES5Edit. Enthusiast modders have a general knowledge of computers, folders and files, especially Skyrims 'Data' folders and how to install mods safely with a manager or manually.

To fully expand the visual experience and use the additional features offered by TES5LODGen the DynDOLOD package comes with over 1000 new or updated LOD models for objects that were badly missing from the original game like the Skyhaven Temple or landscape features like roads, smaller rocks and dirt cliffs that simply make the distant landscape look much more natural and alive.


What does it do?

It makes Skyrim look like this

59721-1-1427159829.jpg59721-2-1427159829.jpg59721-1-1427289504.jpg59721-4-1427159830.jpg

59721-1-1427419467.jpg59721-2-1427419467.jpg59721-3-1427419468.jpg59721-4-1427419468.jpg

59721-1-1427465578.jpg59721-2-1427465579.jpg59721-3-1427465579.jpg59721-4-1427465579.jpg

59721-1-1427470182.jpg59721-2-1427470183.jpg59721-3-1427470183.jpg59721-4-1427470183.jpg

59721-1-1427470235.jpg59721-2-1427470235.jpg59721-3-1427470235.jpg59721-4-1427470236.jpg

 


Requirements

SKSE

PapyrusUtil 2.8 or higher

DynDOLOD Resources - Make sure to use DynDOLOD Resources version only with matching or higher DynDOLOD Standalone versions but never with older versions.

Vanilla Skyrim LOD Billboards from TES5LODGen or Indistinguishable Vanilla Tree Billboards. If using tree mods that do not include billboards, check TES5LODGen for ready-to-use tree LOD billboards for some tree mods. For STEP users all billboards are included in STEP Texture Compilation.


Download

Download standalone and resources from Nexus or use Mega links from the update post

There are quickstart instruction in the main folder. Also check the folder called 'docs' for additional information. See the update post for latest installation information and guides.

CC BY-NC-SA

=======================================================================

Updating DynDOLOD

=======================================================================

Read the update posts for each new version for version specific information and update instructions.

Also read the manual how to update an existing save game, watch the video or check DynDOLOD SkyUI MCM.

[spoiler=DynDOLOD-Changelog.txt]

=======================================================================

DynDOLOD - Dynamic Distant Objects LOD - Sheson

=======================================================================

  Reveal hidden contents

 

 

 

Credits

 

TES5Edit Team in general

 

Ehamloptiran and Zilav for TES5LODGen and LODGen for trees

 

Bethesda for the game, models and textures

 

NifTools

 

DynDOLOD includes LOD assets based on models and/or textures from:


 

Holy Cow I fixed Skyrim - Sheson

  • +1 15

Recommended Posts

  • 0
Posted (edited)
  On 2/25/2016 at 7:32 PM, BUBISHI said:

Hallo Sheson,

 

just wanted to know if it is normal that creating a setup with DynDOLOD increases save size.

I have noticed that while testing my STEP setup with additional mods. I run my testgames with chosen mods without generating DynDOLOD because it would take to long to generate it.

After creating a new character without DynDOLOD I have a save around 6 MB.

When I generate a save with DynDOLOD activated the size of the save grows to 9 MB.

Thats 50% more just by adding one esp. Is it intended?

 

I have used both 1.46 and now 1.47 without any problems with the installation/generation. I use a modified STEP extended + Requiem + Falskaar setup.

Yes, this is normal.

  On 2/25/2016 at 6:40 PM, zilav said:

Never tried it myself, but I believe it would be enough to adjust LOD Water record set in WRLD to match the color of ordinary water. Vanilla Skyrim Tamriel worldspace record uses the same WATR for both LOD and non LOD water, so new water record for LOD need to be created and set in WRLD, and that plugin must be loaded dead last.

I think the problem shows more with water mods that uses very different "local" waters while all LOD for a worldspace can only be of one type.

Edited by sheson
  • 0
Posted (edited)

I am getting a floating point error when DynDOLOD tries to add the masters to the .esp file. Here is the bug report and the last few lines of the TESVEdit 

[spoiler=Bug Report]date/time : 2016-02-25, 06:12:22, 13ms
computer name : JAMES-PC
user name : James
registered owner : James
operating system : Windows 7 x64 Service Pack 1 build 7601
system language : English
system up time : 1 hour 7 minutes
program up time : 45 minutes 39 seconds
processors : 8x AMD FX-9370 Eight-Core Processor
physical memory : 11074/16349 MB (free/total)
free disk space : (C:) 123.11 GB (S:) 32.11 GB
display mode : 1920x1080, 32 bit
process id : $14d8
allocated memory : 1.43 GB
largest free block : 1.98 GB
command line : "S:\Tool Kit\TES5Edit v3.1.3 - 67b61d7\TES5Edit.exe" -o:"c:\TES5Edit Output"
executable : TES5Edit.exe
exec. date/time : 2016-02-17 06:27
version : 3.1.3.0
compiled with : Delphi XE
madExcept version : 4.0.12
callstack crc : $b07c11fd, $9d6a7ee7, $fc93b758
exception number : 1
exception class : EInvalidOp
exception message : Invalid floating point operation.

main thread ($1480):
00404d4a +006 TES5Edit.exe System 1044 +0 @ROUND
0049b975 +0f9 TES5Edit.exe Variants @VarToInteger
0049b57b +0eb TES5Edit.exe Variants @VarCast
004a2b66 +006 TES5Edit.exe Variants VarAsType
00b158ee +0c2 TES5Edit.exe JvInterpreter JvInterpreterVarAsType
00b15eda +09a TES5Edit.exe JvInterpreter TJvInterpreterVarList.SetValue
00b1e840 +038 TES5Edit.exe JvInterpreter TJvInterpreterFunction.SetValue
00b22934 +008 TES5Edit.exe JvInterpreter TJvInterpreterUnit.SetValue
00b1f54b +54b TES5Edit.exe JvInterpreter TJvInterpreterFunction.InternalSetValue
00b1f680 +0a8 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretIdentifier
00b1e99d +0e5 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement
00b1f76d +0b1 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretBegin
00b1e9e4 +12c TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement
00b1fd5b +1b3 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretFor
00b1ea08 +150 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement
00b1f76d +0b1 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretBegin
00b1e9e4 +12c TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement
00b1f82c +054 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretIf
00b1e9ed +135 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement
00b1f76d +0b1 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretBegin
00b1e636 +052 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InFunction
00b22b7b +0c3 TES5Edit.exe JvInterpreter TJvInterpreterUnit.ExecFunction
00b228c6 +15e TES5Edit.exe JvInterpreter TJvInterpreterUnit.GetValue
00b1d1c4 +164 TES5Edit.exe JvInterpreter TJvInterpreterExpression.InternalGetValue
00b1f635 +05d TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretIdentifier
00b1e99d +0e5 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement
00b1f76d +0b1 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretBegin
00b1e9e4 +12c TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement
00b1f863 +08b TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretIf
00b1e9ed +135 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement
00b1f76d +0b1 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretBegin
00b1e636 +052 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InFunction
00b22b7b +0c3 TES5Edit.exe JvInterpreter TJvInterpreterUnit.ExecFunction
00b228c6 +15e TES5Edit.exe JvInterpreter TJvInterpreterUnit.GetValue
00b1d1c4 +164 TES5Edit.exe JvInterpreter TJvInterpreterExpression.InternalGetValue
00b1f635 +05d TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretIdentifier
00b1e99d +0e5 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement
00b1f76d +0b1 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretBegin
00b1e9e4 +12c TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement
00b1f82c +054 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretIf
00b1e9ed +135 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement
00b1f76d +0b1 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretBegin
00b1e636 +052 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InFunction
00b22b7b +0c3 TES5Edit.exe JvInterpreter TJvInterpreterUnit.ExecFunction
00b228c6 +15e TES5Edit.exe JvInterpreter TJvInterpreterUnit.GetValue
00b1d1c4 +164 TES5Edit.exe JvInterpreter TJvInterpreterExpression.InternalGetValue
00b1c810 +05c TES5Edit.exe JvInterpreter TJvInterpreterExpression.Expression1
00b1c8e9 +039 TES5Edit.exe JvInterpreter TJvInterpreterExpression.Expression2
00b1f802 +02a TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretIf
00b1e9ed +135 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement
00b1f76d +0b1 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretBegin
00b1e9e4 +12c TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement
00b1fd5b +1b3 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretFor
00b1ea08 +150 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement
00b1f76d +0b1 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretBegin
00b1e9e4 +12c TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement
00b1f863 +08b TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretIf
00b1e9ed +135 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement
00b1f76d +0b1 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretBegin
00b1e636 +052 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InFunction
00b22b7b +0c3 TES5Edit.exe JvInterpreter TJvInterpreterUnit.ExecFunction
00b22e29 +145 TES5Edit.exe JvInterpreter TJvInterpreterUnit.CallFunctionEx
00b22caa +062 TES5Edit.exe JvInterpreter TJvInterpreterUnit.CallFunction
00bd2d2a +226 TES5Edit.exe frmViewMain 7041 +43 TfrmMain.ApplyScript
00bd3762 +15e TES5Edit.exe frmViewMain 7142 +15 TfrmMain.mniNavApplyScriptClick
0052825b +0a7 TES5Edit.exe Menus TMenuItem.Click
00529757 +013 TES5Edit.exe Menus TMenu.DispatchCommand
0052a936 +082 TES5Edit.exe Menus TPopupList.WndProc
0052a885 +01d TES5Edit.exe Menus TPopupList.MainWndProc
004c71cc +014 TES5Edit.exe Classes StdWndProc
76f87895 +00a USER32.dll DispatchMessageW
005b44f7 +0f3 TES5Edit.exe Forms TApplication.ProcessMessage
005b453a +00a TES5Edit.exe Forms TApplication.HandleMessage
005b4865 +0c9 TES5Edit.exe Forms TApplication.Run
00c08268 +068 TES5Edit.exe TES5Edit 86 +8 initialization
74fe3388 +010 kernel32.dll BaseThreadInitThunk

thread $bac (TWorkerThread):
7763f96a +0e ntdll.dll NtWaitForSingleObject
75c215b9 +92 KERNELBASE.dll WaitForSingleObjectEx
74fe118f +3e kernel32.dll WaitForSingleObjectEx
74fe1143 +0d kernel32.dll WaitForSingleObject
005d45ad +19 TES5Edit.exe VirtualTrees 6308 +3 TWorkerThread.Execute
00474e47 +2b TES5Edit.exe madExcept HookedTThreadExecute
004c4506 +42 TES5Edit.exe Classes ThreadProc
00407588 +28 TES5Edit.exe System 1044 +0 ThreadWrapper
00474d29 +0d TES5Edit.exe madExcept CallThreadProcSafe
00474d93 +37 TES5Edit.exe madExcept ThreadExceptFrame
74fe3388 +10 kernel32.dll BaseThreadInitThunk
>> created by main thread ($1480) at:
005d4495 +19 TES5Edit.exe VirtualTrees 6251 +1 TWorkerThread.Create

thread $d70:
776401f6 +0e ntdll.dll NtWaitForMultipleObjects
74fe3388 +10 kernel32.dll BaseThreadInitThunk

thread $1098:
77641fdf +0b ntdll.dll NtWaitForWorkViaWorkerFactory
74fe3388 +10 kernel32.dll BaseThreadInitThunk

thread $1360:
77641fdf +0b ntdll.dll NtWaitForWorkViaWorkerFactory
74fe3388 +10 kernel32.dll BaseThreadInitThunk

thread $4c4:
77641fdf +0b ntdll.dll NtWaitForWorkViaWorkerFactory
74fe3388 +10 kernel32.dll BaseThreadInitThunk

 

 

[spoiler=TESVEdit Log]

[00:42:09.367]  SolitudeWorld
[00:42:14.356]  WhiterunWorld
[00:42:18.611]  RiftenWorld
[00:42:27.070]  WindhelmWorld
[00:42:32.627]  AN_DruidGroveWorld
[00:42:32.888]  An_Lothlorien
[00:42:36.538]  An_SancreselWorld
Exception in unit create line 1197: Invalid floating point operation
[Apply Script done]  Processed Records: 0, Elapsed Time: 43:18

 
The post wouldn't load when I tried to enclose the entire TESVEdit Log in the spoiler. This is with v1.47. Everything works with v1.46.
 
Edit: Since Anna's NPCs is responsible for the last three Worlds mentioned in the log I experimented by taking it out of the load order and the program ran to conclusion.
Edited by maedrhos
  • 0
Posted (edited)

It tries to convert "Object Bounds\NAM0\X" from worldspace into numbers. Internally those are stored as floats, but xEdit converts them into integer cell values when displaying. There is a known bug in CK that sometimes it saves invalid float values here, probably meaning "infinity" when it can't calculate bounds for some reason. This is actually should be fixed by mod author. And DyDoLOD should just catch exception here and skip such mods silently.

 

Warning - such invalid numbers in worldspace records are known to cause stuttering in game, Arthmoor reported it some time ago.

Edited by zilav
  • 0
Posted (edited)
  On 2/26/2016 at 2:01 AM, maedrhos said:

 

I am getting a floating point error when DynDOLOD tries to add the masters to the .esp file. Here is the bug report and the last few lines of the TESVEdit 

[spoiler=Bug Report]date/time : 2016-02-25, 06:12:22, 13ms

computer name : JAMES-PC

user name : James

registered owner : James

operating system : Windows 7 x64 Service Pack 1 build 7601

system language : English

system up time : 1 hour 7 minutes

program up time : 45 minutes 39 seconds

processors : 8x AMD FX™-9370 Eight-Core Processor

physical memory : 11074/16349 MB (free/total)

free disk space : (C:) 123.11 GB (S:) 32.11 GB

display mode : 1920x1080, 32 bit

process id : $14d8

allocated memory : 1.43 GB

largest free block : 1.98 GB

command line : "S:\Tool Kit\TES5Edit v3.1.3 - 67b61d7\TES5Edit.exe" -o:"c:\TES5Edit Output"

executable : TES5Edit.exe

exec. date/time : 2016-02-17 06:27

version : 3.1.3.0

compiled with : Delphi XE

madExcept version : 4.0.12

callstack crc : $b07c11fd, $9d6a7ee7, $fc93b758

exception number : 1

exception class : EInvalidOp

exception message : Invalid floating point operation.

 

main thread ($1480):

00404d4a +006 TES5Edit.exe System 1044 +0 @ROUND

0049b975 +0f9 TES5Edit.exe Variants @VarToInteger

0049b57b +0eb TES5Edit.exe Variants @VarCast

004a2b66 +006 TES5Edit.exe Variants VarAsType

00b158ee +0c2 TES5Edit.exe JvInterpreter JvInterpreterVarAsType

00b15eda +09a TES5Edit.exe JvInterpreter TJvInterpreterVarList.SetValue

00b1e840 +038 TES5Edit.exe JvInterpreter TJvInterpreterFunction.SetValue

00b22934 +008 TES5Edit.exe JvInterpreter TJvInterpreterUnit.SetValue

00b1f54b +54b TES5Edit.exe JvInterpreter TJvInterpreterFunction.InternalSetValue

00b1f680 +0a8 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretIdentifier

00b1e99d +0e5 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement

00b1f76d +0b1 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretBegin

00b1e9e4 +12c TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement

00b1fd5b +1b3 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretFor

00b1ea08 +150 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement

00b1f76d +0b1 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretBegin

00b1e9e4 +12c TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement

00b1f82c +054 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretIf

00b1e9ed +135 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement

00b1f76d +0b1 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretBegin

00b1e636 +052 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InFunction

00b22b7b +0c3 TES5Edit.exe JvInterpreter TJvInterpreterUnit.ExecFunction

00b228c6 +15e TES5Edit.exe JvInterpreter TJvInterpreterUnit.GetValue

00b1d1c4 +164 TES5Edit.exe JvInterpreter TJvInterpreterExpression.InternalGetValue

00b1f635 +05d TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretIdentifier

00b1e99d +0e5 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement

00b1f76d +0b1 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretBegin

00b1e9e4 +12c TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement

00b1f863 +08b TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretIf

00b1e9ed +135 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement

00b1f76d +0b1 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretBegin

00b1e636 +052 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InFunction

00b22b7b +0c3 TES5Edit.exe JvInterpreter TJvInterpreterUnit.ExecFunction

00b228c6 +15e TES5Edit.exe JvInterpreter TJvInterpreterUnit.GetValue

00b1d1c4 +164 TES5Edit.exe JvInterpreter TJvInterpreterExpression.InternalGetValue

00b1f635 +05d TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretIdentifier

00b1e99d +0e5 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement

00b1f76d +0b1 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretBegin

00b1e9e4 +12c TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement

00b1f82c +054 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretIf

00b1e9ed +135 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement

00b1f76d +0b1 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretBegin

00b1e636 +052 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InFunction

00b22b7b +0c3 TES5Edit.exe JvInterpreter TJvInterpreterUnit.ExecFunction

00b228c6 +15e TES5Edit.exe JvInterpreter TJvInterpreterUnit.GetValue

00b1d1c4 +164 TES5Edit.exe JvInterpreter TJvInterpreterExpression.InternalGetValue

00b1c810 +05c TES5Edit.exe JvInterpreter TJvInterpreterExpression.Expression1

00b1c8e9 +039 TES5Edit.exe JvInterpreter TJvInterpreterExpression.Expression2

00b1f802 +02a TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretIf

00b1e9ed +135 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement

00b1f76d +0b1 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretBegin

00b1e9e4 +12c TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement

00b1fd5b +1b3 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretFor

00b1ea08 +150 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement

00b1f76d +0b1 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretBegin

00b1e9e4 +12c TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement

00b1f863 +08b TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretIf

00b1e9ed +135 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretStatement

00b1f76d +0b1 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InterpretBegin

00b1e636 +052 TES5Edit.exe JvInterpreter TJvInterpreterFunction.InFunction

00b22b7b +0c3 TES5Edit.exe JvInterpreter TJvInterpreterUnit.ExecFunction

00b22e29 +145 TES5Edit.exe JvInterpreter TJvInterpreterUnit.CallFunctionEx

00b22caa +062 TES5Edit.exe JvInterpreter TJvInterpreterUnit.CallFunction

00bd2d2a +226 TES5Edit.exe frmViewMain 7041 +43 TfrmMain.ApplyScript

00bd3762 +15e TES5Edit.exe frmViewMain 7142 +15 TfrmMain.mniNavApplyScriptClick

0052825b +0a7 TES5Edit.exe Menus TMenuItem.Click

00529757 +013 TES5Edit.exe Menus TMenu.DispatchCommand

0052a936 +082 TES5Edit.exe Menus TPopupList.WndProc

0052a885 +01d TES5Edit.exe Menus TPopupList.MainWndProc

004c71cc +014 TES5Edit.exe Classes StdWndProc

76f87895 +00a USER32.dll DispatchMessageW

005b44f7 +0f3 TES5Edit.exe Forms TApplication.ProcessMessage

005b453a +00a TES5Edit.exe Forms TApplication.HandleMessage

005b4865 +0c9 TES5Edit.exe Forms TApplication.Run

00c08268 +068 TES5Edit.exe TES5Edit 86 +8 initialization

74fe3388 +010 kernel32.dll BaseThreadInitThunk

 

thread $bac (TWorkerThread):

7763f96a +0e ntdll.dll NtWaitForSingleObject

75c215b9 +92 KERNELBASE.dll WaitForSingleObjectEx

74fe118f +3e kernel32.dll WaitForSingleObjectEx

74fe1143 +0d kernel32.dll WaitForSingleObject

005d45ad +19 TES5Edit.exe VirtualTrees 6308 +3 TWorkerThread.Execute

00474e47 +2b TES5Edit.exe madExcept HookedTThreadExecute

004c4506 +42 TES5Edit.exe Classes ThreadProc

00407588 +28 TES5Edit.exe System 1044 +0 ThreadWrapper

00474d29 +0d TES5Edit.exe madExcept CallThreadProcSafe

00474d93 +37 TES5Edit.exe madExcept ThreadExceptFrame

74fe3388 +10 kernel32.dll BaseThreadInitThunk

>> created by main thread ($1480) at:

005d4495 +19 TES5Edit.exe VirtualTrees 6251 +1 TWorkerThread.Create

 

thread $d70:

776401f6 +0e ntdll.dll NtWaitForMultipleObjects

74fe3388 +10 kernel32.dll BaseThreadInitThunk

 

thread $1098:

77641fdf +0b ntdll.dll NtWaitForWorkViaWorkerFactory

74fe3388 +10 kernel32.dll BaseThreadInitThunk

 

thread $1360:

77641fdf +0b ntdll.dll NtWaitForWorkViaWorkerFactory

74fe3388 +10 kernel32.dll BaseThreadInitThunk

 

thread $4c4:

77641fdf +0b ntdll.dll NtWaitForWorkViaWorkerFactory

74fe3388 +10 kernel32.dll BaseThreadInitThunk

 

 

 

[spoiler=TESVEdit Log]

[00:42:09.367]  SolitudeWorld
[00:42:14.356]  WhiterunWorld
[00:42:18.611]  RiftenWorld
[00:42:27.070]  WindhelmWorld
[00:42:32.627]  AN_DruidGroveWorld
[00:42:32.888]  An_Lothlorien
[00:42:36.538]  An_SancreselWorld
Exception in unit create line 1197: Invalid floating point operation
[Apply Script done]  Processed Records: 0, Elapsed Time: 43:18

 
The post wouldn't load when I tried to enclose the entire TESVEdit Log in the spoiler. This is with v1.47. Everything works with v1.46.
 
Edit: Since Anna's NPCs is responsible for the last three Worlds mentioned in the log I experimented by taking it out of the load order and the program ran to conclusion.

 

I will check if this error can be caught and fixed at runtime. In the meantime just remove the empty worldspace An_SancreselWorld "Sancresel" [WRLD:0A08D671] from AnnaNPCs.esp

Edited by sheson
  • 0
Posted
  On 2/26/2016 at 12:07 PM, sheson said:

I will check if this error can be caught and fixed at runtime. In the meantime just remove the empty worldspace An_SancreselWorld "Sancresel" [WRLD:0A08D671] from AnnaNPCs.esp

Thank you.

  • 0
Posted (edited)

Currently going once more through the whole documentation, trying to catch missing/incomplete/unclear/outdated informations (like the DynDOLOD.ini -> DynDOLOD_.ini thing, which is actually in the whole documentation and not just in the ultra trees readme), as well as typos errors.

 

Note that all of this is limited by my understanding of the process, if anything I say below is just plain wrong, just ignore it (or even better, consider it could use some more detailed explanations, but not the ones suggested).

 

 

DynDOLOD Reference :

 

------------

 

  Quote

The scanning process will only work completely reliable when the BTT files were generated with the same load order.

Not sure if it's my English or yours, but I believe "reliable" should be "reliably". Sentence still sounds weird to me, but this is probably just me ^^ If GrantSP happens to walk in... :P

 

Also, if I'm not mistaken, something along those line should be added :

  Quote

DynDOLOD will automatically generate a BTT files set based on your load order if the "generate tree LODs" option is checked.

For more informations on this feature and its limits, see TES5LODGen For Tree LODs in the DynDOLOD Manual.

(assuming dyndolod then read/use the btt files it generated in the output folder ?)

 

  Quote

This way it is easy to 'overwrite' meshes with.

Maybe my English again, but isn't the end of the sentence missing ? Like "improved ones".

 

------------

 

  Quote

Obviously they need to exist as real files, so they need to be unpacked from the BSAs.

If I get everything right : "or have their .bsa added to the resource list in Skyrim.ini"

 

 

------------

 

  Quote

In addition some of the default mesh rules set the 'out of order' rules.

A tiny sentence that deserve more explanations imho. Like "mesh rules can be used to overwrite the default naming-convention behavior for specific meshes. The default rules include some".

 

------------

 

  Quote

LODGen.exe can be executed with the export file directly to regenerate static object LOD. This comes in handy when simply updating existing model nif files for example or trying other LODGen.exe options. Click the 'Exceute LODGen.exe' button lower left. Note that the *.bto output path is hardcoded into the export file.

Either I missed this button/don't look for it in the right place, or it have been removed ?

Specify that it's only available in expert mode.

 

------------

 

  Quote

If the selected world is Tamriel the process also scans the 5 major towns for references that now have LOD added by (2) and (3). These child worlds have LOD representations of the major structures in the parent world. DynDOLOD Worlds.pas adds the same type of representations for select objects that now have LOD.

What of MarkarthWorld ? I have always wondered why it exist "independently", while other city worldspaces are just treated as tamriel's childs.

 

------------

 

  Quote

the mesh rules filters determine how a reference should be processed. Also the LOD tree list is used to filter out all references to trees that already have LOD.

To make echo to explanations in the previous paragraph "The mesh lod-name conventions and the mesh rules filters" rather than just "the mesh rules filters" sound more accurate.

 

------------

  Quote

If a reference has the neverfade flag set, the flag will be unset. In case the rerference can static LOD for TES5LODGen it is added to the export file for LODGen.exe. If the reference is a dynamic object it will be added as a DynDOLOD object. See (11).

I think a "be added as" is missing between "can" and "static LOD" in the second sentence. Or I just don't understand this part. Also, typo : rerference -> reference. And a comma after TES5LODGen.

 

------------

 

(5) Add manual references

 

Could benefit from an actual use-case example. If I understand what come later in the documentation, this is actually adding the references that will be anabled/disabled by papyrus OnCellAttach/Detach right ? Or this is done in (4) at the same time as they're "added to the internal dyndolod list" and I don't understand what (5) is for.

 

------------

 

(6) Add town references

 

If understand the purpose of this step, this add references from the parent world in the child world so the exteriors look more accurate (like, if someone is using Arthmoor's mod which add a house for the courier outside of whiterun, the lod for this house will be seen from inside of whiterun if you look behind the walls).

 

If that's actually the case :

It could use some more detailed explanations to make it "clearer".

What's the purpose of the optional whiterunexterior file ? (the existence of this file is actually what make me doubt of what this feature is intended for).

 

-------------

(10) Add DynDOLOD references for dynamic/animated/full models

 

  Quote

The DynDOLOD base elements for these references were already added in (6).

You probably modified the layout of the document at some point, it should say (5), not (6). Or it should say (4) and my understanding of (5) is very foggy.

 

 

 

And that's about it for the DynDOLOD_Reference document. I'll try to review the others as well.

 

 

Edit : Oh, another minor thing : I believe the default folder opening when clicking on "Load preset" should be Edit Scripts\DynDOLOD\rules and not just Edit Scripts\DynDOLOD

And to be completely honest, this folder's architecture could use some more sorting :

A "preset" folder for low/medium/high and other custom large-scale presets

A "Mods" folders that contains rules specific to mods

An "options" folder which contains special rules like those for candles, fxglow, ...

 

And the possibility to import a set of rules into the current one without completely removing the others would be great to. (so peoples could share ready-to-import set of rules for specific things).

Edited by Kesta
  • 0
Posted (edited)
  On 2/26/2016 at 3:30 PM, Kesta said:

Currently going once more through the whole documentation, trying to catch missing/incomplete/unclear/outdated informations (like the DynDOLOD.ini -> DynDOLOD_.ini thing, which is actually in the whole documentation and not just in the ultra trees readme), as well as typos errors.

Note that all of this is limited by my understanding of the process, if anything I say below is just plain wrong, just ignore it (or even better, consider it could use some more detailed explanations, but not the ones suggested).

OMG someone reads the DynDOLOD_reference, which I haven't updated since August last year. Thanks for helping out. Below are some updates to clear up the wording.

 

From: The scanning process will only work completely reliable when the BTT files were generated with the same load order.

To: The scanning process will only work correctly if the BTT files were generated for the same load order.

 

  Quote

Also, if I'm not mistaken, something along those line should be added :

Insert: (0) If tree LOD generation is checked, start TES5LODGen for Tree LOD to create tree LOD in data/meshes/terrain/[world]/trees/*.btt and tree LOD atlas texture in data/textures/terrain/[world]/trees/[world]treelod.dds.

Step 0 so I don't have to update the order for now ;) Back in the day tree LOD had to be generated separately... how far we come

 

From: This way it is easy to 'overwrite' meshes with.

To: This way it is easy to 'overwrite' meshes by making sure they are found later in the scanning process depending on the folder structure. The scanning order of folder is set in the DynDOLOD_TES5.ini

 

From: Since the whole data/meshes folder is scanned, mod authors that use new assets can provide lod.nifs with their mod and they are automatically discovered and used. Obviously they need to exist as real files, so they need to be unpacked from the BSAs.

To: Since the whole data/meshes folder is scanned - BSA loaded by xEdit, then loose files - mod authors that use new assets can provide lod.nifs with their mod and they are automatically discovered and used.

This was from a time LODGen.exe could not read files from BSA.

 

From: In addition some of the default mesh rules set the 'out of order' rules.

To: In addition the low, medium and high mesh rules cover the vanilla names breaking the default rules. Proably for performance reasons vanilla LOD sometimes uses higher level meshes in lower levels - mountain trims for example. Check the 'Use original LOD assigments' to keep the vanilla levels.

 

From: Click the 'Exceute LODGen.exe' button lower left. Note that the *.bto output path is hardcoded into the export file.

To: In expert mode (set Expert=1 in DynDOLOD_TES5.ini), click the 'Exceute LODGen.exe' button lower left.

At that time there only was one mode.

 

  Quote

What of MarkarthWorld ? I have always wondered why it exist "independently", while other city worldspaces are just treated as tamriel's childs.

It is its own worldspace with almost no objects past the walls. It is not a Tamriel child world. I guess because of performance reasons.

 

From: the mesh rules filters determine how a reference should be processed. Also the LOD tree list is used to filter out all references to trees that already have LOD.

To: The mesh rules determine how a reference should be processed. Also the LOD tree list is used to filter out all references to trees that already have LOD.

Yes, it should always be the 'mesh rules' doing something

 

From: If a reference has the neverfade flag set, the flag will be unset. In case the rerference can static LOD for TES5LODGen it is added to the export file for LODGen.exe. If the reference is a dynamic object it will be added as a DynDOLOD object.

To: If a reference has the neverfade flag set, the flag will be unset. In case the reference can be done as static LOD for TES5LODGen, it is added to the export file for LODGen.exe. If the reference is a dynamic object it will be added as a DynDOLOD object.

 

  Quote

(5) Add manual references - Could benefit from an actual use-case example.

The word "Reference" is defined in DynDOLOD_Manual.html. The rest depends on the settings found in the file (like DynDOLOD_TES5_manual_refr_Tamriel.txt) it talks about.

The file also explains what the data is for. Beyond that find out more by actually looking at the documented code (create.pas - search for "process DynDOLOD_manual_refr.txt") using this data and how it adds it to the esp and the json.

I would truly love yo detail everything in more detail - but things change all the time to what I currently need to make things work and there is only so much time to document things. The comments in the code will have to do - but do ask if they don't.

 

  Quote

(6) Add town references - If understand the purpose of this step, this add references from the parent world in the child world so the exteriors look more accurate (like, if someone is using Arthmoor's mod which add a house for the courier outside of whiterun, the lod for this house will be seen from inside of whiterun if you look behind the walls).

It is the other way around, so I updated like this:

 

From: If scanning the world in (4) found any child town references a new reference for either TES5LODGen or DynDOLOD will be added into the world.

To: If scanning the world in (4) found any new references with LOD in a child town, a new reference for either TES5LODGen or DynDOLOD will be added into the parent world.

 

From: The DynDOLOD base elements for these references were already added in (6).

To: The DynDOLOD base elements for these references were already added in (4).

 

I should really add some of new features/details like how TES5LODGen now creates a texture atlas etc. Some day...

 

For now I am leaving presets and rule folders alone. This may be addressed in a possible future standalone version without the scripting limitations.

Edited by sheson
  • 0
Posted

Yeah, the reference documentation looked like the most esoteric one so I started with it ^_^
 

  On 2/26/2016 at 5:16 PM, sheson said:

Insert: (0) If tree LOD generation is checked, start TES5LODGen for Tree LOD to create tree LOD in data/meshes/terrain/[world]/trees/*.btt and tree LOD atlas texture in data/textures/terrain/[world]/trees/[world]treelod.dds.
Step 0 so I don't have to update the order for now ;) Back in the day tree LOD had to be generated separately... how far we come

Last time I checked (3 hours ago), Using MO and 1.47, I only have  those files generated in the output folder, not in data. Is the current version able to read those (whether it actually read them, or temporarily store the info about what it generated somewhere and use it) ?
 
Also, potential bug : (maybe just an UI one), when clicking on "default" in advanced/expert mode, the "Generate Tree LOD" checkbox get checked. This is normal behavior in the standard use case, but with "TreeLOD=0", this checkbox should be left unchecked and be greyed out. It still get checked (though it's still greyed out).
I'm a bit too lazy to generate dyndo twice to check the impact ^^
 

  On 2/26/2016 at 5:16 PM, sheson said:

From: If scanning the world in (4) found any child town references a new reference for either TES5LODGen or DynDOLOD will be added into the world.
To: If scanning the world in (4) found any new references with LOD in a child town, a new reference for either TES5LODGen or DynDOLOD will be added into the parent world.


"found any child town" = the town worlds exists, reference this worldspace as a parent, and are referenced for this worldspace in DynDOLOD_.ini right ?



I'm still investigating all of the documentation/features/result in depth. But for now I think I need to step back a bit about dyndolod itself and focus on LODGen alone (and analyze some more meshes nif), there is still some mystery in here for me ^^

I'll also look at the sources whenever I have time.

 

 

As for

 

  Quote

I would truly love yo detail everything in more detail - but things change all the time to what I currently need to make things work and there is only so much time to document things. The comments in the code will have to do - but do ask if they don't.

 

You could try opening a wiki page, either here on STEP or on the CreationKit wiki. DynDOLOD have been around for a while now and you've provided enough support/clarifications/documentation in this topic alone so some of us start to get a good grasp on most of its process.

Not sure if many contributors could/would help though, and if monitoring their changes wouldn't be more of a burden than just relying on feedback and uploading the html pages yourself ^^

  • 0
Posted (edited)
  On 2/26/2016 at 6:11 PM, Kesta said:

Yeah, the reference documentation looked like the most esoteric one so I started with it ^_^

 

Last time I checked (3 hours ago), Using MO and 1.47, I only have  those files generated in the output folder, not in data. Is the current version able to read those (whether it actually read them, or temporarily store the info about what it generated somewhere and use it) ?

Fixing that, output folder of course.

 

  On 2/26/2016 at 6:11 PM, Kesta said:

Also, potential bug : (maybe just an UI one), when clicking on "default" in advanced/expert mode, the "Generate Tree LOD" checkbox get checked. This is normal behavior in the standard use case, but with "TreeLOD=0", this checkbox should be left unchecked and be greyed out. It still get checked (though it's still greyed out).

I'm a bit too lazy to generate dyndo twice to check the impact ^^

will be fixed next version

 

  On 2/26/2016 at 6:11 PM, Kesta said:

"found any child town" = the town worlds exists, reference this worldspace as a parent, and are referenced for this worldspace in DynDOLOD_.ini right ?

Correct

under (4)

From: If the selected world is Tamriel the process also scans the 5 major towns for references that now have LOD added by (2) and (3).

To: If the selected world is Tamriel, the process also scans the 5 major towns for references that now have LOD added by (2) and (3). The child worlds to scan are listed for each parent worldspace in DynDOLOD_TES5.ini.

 

 

  On 2/26/2016 at 6:11 PM, Kesta said:

I'm still investigating all of the documentation/features/result in depth. But for now I think I need to step back a bit about dyndolod itself and focus on LODGen alone (and analyze some more meshes nif), there is still some mystery in here for me ^^

I'll also look at the sources whenever I have time.

See this changelog (1.0 changelog is still worked on while it is beta) - also see the FO4LODGen thread. The FO4 export file uses new features....

Mostly it just does things magically as Zilav and I need it to do, so it works across all the supported games.  Some voodoo with the firstborns is involved, too.

 

  On 2/26/2016 at 6:11 PM, Kesta said:

You could try opening a wiki page, either here on STEP or on the CreationKit wiki. DynDOLOD have been around for a while now and you've provided enough support/clarifications/documentation in this topic alone so some of us start to get a good grasp on most of its process.

Not sure if many contributors could/would help though, and if monitoring their changes wouldn't be more of a burden than just relying on feedback and uploading the html pages yourself ^^

I just do not have the time to start and maintain a wiki. I would contribute if pointed to one whenever clarification is needed.

 

 

Edited by sheson
  • 0
Posted

Hallo Sheson,

 

just a short question about the Climates Of Tamriel patch You provided with 1.47.

 

 

  Reveal hidden contents

 

 

Do I only use it when using the optional file Climates Of Tamriel - Winters edition version 3.1?

Or should I also use the patch with the main Climates Of Tamriel version 5.0

 

Thanks

  • 0
Posted (edited)
  On 2/27/2016 at 5:17 PM, BUBISHI said:

Hallo Sheson,

 

just a short question about the Climates Of Tamriel patch You provided with 1.47.

 

 

  Reveal hidden contents

 

 

Do I only use it when using the optional file Climates Of Tamriel - Winters edition version 3.1?

Or should I also use the patch with the main Climates Of Tamriel version 5.0

 

Thanks

If you are not using Climates Of Tamriel - Winter Edition you do not need to install the patch for Climates Of Tamriel - Winter Edition.

Edited by sheson
  • 0
Posted
  On 2/27/2016 at 5:59 PM, sheson said:

If you are not using Climates Of Tamriel - Winter Edition you do not need to install the patch for Climates Of Tamriel - Winter Edition.

Logical. 

Thanks for the explenation.

  • 0
Posted (edited)

Some more questions :

 

Statics have 4 level of LODs in the CK. Is the 4th one the LOD32 used for the map ?

 

 

About lod textures atlas :

 

LODGen have the following features (nexus description)

 

  Quote

 

Objects LOD: Atlas size - size of generated atlas texture in pixels. If all used textures won't fit, several atlases will be made with 00, 01, 02, ... suffixes.

Objects LOD: Max texture size - the maximum size of texture in pixels to be included on atlas, larger ones will remain separate and generated LOD files will use them directly.

Objects LOD: UV Range - the maximum UV sets range for texture to be included on atlas, since textures on atlas can't be tiled. Textures will larger UVs will remain separate and generated LOD files will use them directly.

 

 

 

While DynDOLOD have the following option :

Max tile size : Lower values to reduce atlas texture size in exchange for quality.

 

Which sound like it's just the atlas size from LODGen (which will result in a square-shaped atlas while you can set H/W distinctly with LODGen). Would using LODGen outside of dyndolod give more control over the texture atlas generation ? Or are the max texture size and the "in uv range" parameters in LODGen intended for dev-test/experimentation and not aimed at users ?

 

 

Random "report" :

 

 

kCptWLj.jpg

(floating fire-embers)

 

I guess just forcing the use of the full model of the brazero under them on LOD4 should be enough (I know the screen is actually behind whiterun's wall, but I'm more thinking about mods like ELFX-exterior which add this kind of brazier along roads).

The question I'm asking myself is how the mesh-mask work. The full path for this brazier mesh is the following :

Architecture\WhiteRun\WRClutter\WRBrazier01.nif

 

Would just using "Brazier" as mesh filter would catch it, or the "WR" prefix would prevent it ? (the doc about the mesh-mask only state that the path is optional and that any suffix in the mesh can be caught whit the same rule, but don't say much about prefix).

Edited by Kesta
  • 0
Posted (edited)
  On 2/29/2016 at 6:45 PM, Kesta said:

Some more questions :

 

Statics have 4 level of LODs in the CK. Is the 4th one the LOD32 used for the map ?

LOD32 is unused. FO4 is the first game to use it. The map usually uses LOD16, unless ini setting overwrites it,

 

  On 2/29/2016 at 6:45 PM, Kesta said:

About lod textures atlas :

 

LODGen have the following features (nexus description)

 

While DynDOLOD have the following option :

Max tile size : Lower values to reduce atlas texture size in exchange for quality.

 

Which sound like it's just the atlas size from LODGen (which will result in a square-shaped atlas while you can set H/W distinctly with LODGen). Would using LODGen outside of dyndolod give more control over the texture atlas generation ? Or are the max texture size and the "in uv range" parameters in LODGen intended for dev-test/experimentation and not aimed at users ?

Same function, DynDOLOD just presets some options. I can do this because the DynDOLOD archive also has updated/fixed vanilla meshes and LOD textures, so the settings are for them.

You can change some of those settings in DynDOLOD World.pas editing the code at the top.

The final size and dimensions of the atlas depend on the number of textures for a worldspace. It usually grows in full width first, then height. While it can support 8192x8192, for DynDOLOD I set max of 4096x4096.

 

The one important value is the max title size, which is the drop down in advanced/expert. The LOD atlas is one single texture while the game uses hundreds more textures at then same time.

It dimension and size are not that important - unless you have an old graphics card with no VRAM to speak of. The important part is, that LOD combines separate meshes into one merged mesh that uses the same shader/texture and thus reducing draw calls dramatically.

 

 

 

 

  On 2/29/2016 at 6:45 PM, Kesta said:

(floating fire-embers)

 

I guess just forcing the use of the full model of the brazero under them on LOD4 should be enough (I know the screen is actually behind whiterun's wall, but I'm more thinking about mods like ELFX-exterior which add this kind of brazier along roads).

That the braziers or whatever other bowls holding the fires are missing is fully intentional on my part :)

 

  On 2/29/2016 at 6:45 PM, Kesta said:

The question I'm asking myself is how the mesh-mask work. The full path for this brazier mesh is the following :

Architecture\WhiteRun\WRClutter\WRBrazier01.nif

 Would just using "Brazier" as mesh filter would catch it, or the "WR" prefix would prevent it ? (the doc about the mesh-mask only state that the path is optional and that any suffix in the mesh can be caught whit the same rule, but don't say much about prefix).

It is a simple find string in string function. "brazier" will find all meshes that have that word in their path or filename.

Edited by sheson
  • 0
Posted (edited)
  On 2/8/2016 at 7:29 PM, sheson said:

Two of the linked posts didn't even post a load order. One save is in an interior. One thread doesn't even mention DynDOLOD at all.

 

DynDOLOD is just simple data and simple scripting. Otherwise nothing special. Maybe a busy load order reaches new engine limits we don't know about yet.

If something like SaveTool.exe crashes while reading data it is its own fault and nothing else.

 

The game crashing after loading is something completely different to save game corruption.

 

This post sums it up. As I mentioned  a couple weeks back, the first thing I would look at is dll plugins - AFTER making sure ENBoost, memory patch and all these other things are actually setup properly. Then look at nifs, custom animations etc.

Any useful report and troubleshooting would include detailing these things and also the options (used glow LOD? Was Claralux, bashed patch removed from load order?) used to generate LOD. These threads on reddit are simply useless noise.

So I've been having this same issue, and I've talked to a bunch of other people who are experiencing it. We are pretty sure we've tracked down the cause -- strCount in the Papyrus block of the save files.

 

https://www.uesp.net/wiki/Tes5Mod:Save_File_Format/Papyrus

 

The strCount field is only 16bit. What seems to happen is that in a heavily modded game, strCount gets quite large, and eventually overflows. DynDoLod just happens to add a lot of strings to this section (I think every single script instance's properties and variables get added, so 13 entries per LODObject!), so it is frequently the mod which pushes a save file over the edge and causes an overflow.

 

So it seems like there's no easy fix except to run fewer mods... unless someone makes a patcher for Skyrim that changes strCount to be 32bit.

Edited by markdf
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines, Privacy Policy, and Terms of Use.