Jump to content

[WIPz] TES5Edit


zilav

Recommended Posts

I tried it for a bit, but when I noticed it reordered certain mods when I added a new one, thereby screwing with my custom patches, I gave up. BOSS + BUM for me

BOSS would have done the same if need be.

Frankly it sounds like you've probably outgrown the need for automated load order management. Which isn't a bad thing :P

 

I do find the way LOOT sorts things to be a little nonsensical, sometimes it doesn't always know best and so I need to add rules for certain things. I trust it 9/10 of the time :P

It's actually not nonsensical. LOOT is analyzing things to some degree and determining which load order is the most conflict free. That may fall apart a bit with dynamic patches, but that's why there's a metadata file for those situations.

Link to comment
Share on other sites

Nonsensical in the fact that it wouldn't be how I would order things. I find it more logical to group a mods patches together with the mod itself for example or to group mods together that do similar things such as add items or deal with magic for example. LOOT does not follow this logic, so to me it looks like it shakes everything up and then spits it out :P

 

 

But I understand that what LOOT does is better for the sake of compatibility and such. It at least knows what it's doing :P

Link to comment
Share on other sites

Yes, but those patches don't strictly need to be ordered that way. That's what OCD people like me do :troll:

Link to comment
Share on other sites

I finally got around to playing with this some more. My steps:

  1. Load Skyrim.esm and Update.esm in the CK.
  2. Find Tamriel world cell -17, 32 (contains one NavMesh, an AutoGen)
  3. Enter NavMesh editing mode.
  4. Clear the AutoGen flag using the menu "NavMesh -> Clear Cell Auto Generated" entry. (this does not seem to flag the data as changed for the purposes of saving the esp)
  5. ... So get the data to save by simply selecting an edge, face or vertex of the Cell's NavMesh.
  6. Save the esp and open it in TES5Edit.

In TES5Edit the NavMesh appears as an ITM with the Unknown 26 flag now missing. Repeating the above steps, leaving out step 4, produces an esp that contains an ITM NavMesh with the Unknown 26 flag present. Repeating the above steps, leaving out step 4, and actually moving a vertex in the NavMesh auto clears the AutoGen Flag and TES5Edit confirms this with Unknown 26 now missing.

 

Hopefully this helps. I can try this on additional NavMesh records if you need.

Bumping my post up in case it got missed, let me know if you need any more testing on this (or if anything is unclear) :)

Link to comment
Share on other sites

Bumping my post up in case it got missed, let me know if you need any more testing on this (or if anything is unclear) :)

Oops sorry, forgot about it. I marked bit 26 as AutoGen for navmeshes.

  • Like 1
Link to comment
Share on other sites

              'Edge 0-1 wall',
              'Edge 0-1 ledge cover',
              'Unknown 3',
              'Unknown 4',
              'Edge 0-1 left',
              'Edge 0-1 right',
              'Edge 1-2 wall',
              'Edge 1-2 ledge cover',
              'Unknown 9',
              'Unknown 10',
              'Edge 1-2 left',
              'Edge 1-2 right',
              'Unknown 13',
              'Unknown 14',
              'Unknown 15',
              'Unknown 16'
Suggested improvement:

'Edge 0-1 wall' -> 'Edge 0-1 +16 (wall)'
'Edge 0-1 ledge cover' -> 'Edge 0-1 +32 (ledge)',
'Unknown 3' -> Edge 0-1 +64
'Unknown 4' -> Edge 0-1 +128

'Edge 1-2 wall' -> 'Edge 1-2 +16 (wall)'
'Edge 1-2 ledge cover' -> 'Edge 1-2 +32 (ledge)',
'Unknown 9' -> Edge 1-2 +64
'Unknown 10' -> Edge 1-2 +128
Link to comment
Share on other sites

What do those numbers mean +16 +32 +64 +128? Mind you I've never navmeshed myself so can be a total noob regarding terms.

The CK has a menu of values for the field(s). Those bits add up to the allowed values. Since we cannot have little integer field(s), because the developers didn't put them into 2 nicely aligned bytes, it might be helpful to at least show the known individual bit values to aid in translation to/from CK menus. 16+32+64+128 = max (240).

 

EDIT: from my old post:

0: 0000 open edge, no cover
1: 0001 wall, no cover
2: 0010 ledge, cover
3: 0011 48 (not in CK menu)
4: 0100 64
5: 0101 80
6: 0110 96
7: 0111 112
8: 1000 128
9: 1001 144
10: 1010 160
11: 1011 176
12: 1100 192
13: 1101 208
14: 1110 224
15: 1111 max
Link to comment
Share on other sites

If it is just for displaying bits value, then turn on showing of flags and enums binary values in TES5Edit options.

Cute, had never tried that! But no, it was for trying to match up with CK values. And for documenting the known meaning.

Link to comment
Share on other sites

If I remove +numbers since TES5Edit can show bit values itself, then what is the difference between "'Unknown 3' -> Edge 0 -1" and "'Unknown 4' -> Edge 0-1"?

  • Like 1
Link to comment
Share on other sites

If I remove +numbers since TES5Edit can show bit values itself, then what is the difference between "'Unknown 3' -> Edge 0 -1" and "'Unknown 4' -> Edge 0-1"?

The bit numbers don't correspond to the value numbers, or a power of two of the bit numbers. They add to a total. There's no good way to express 0x0001 (bits 0001) = wall no cover, but 0x0005 (bits 0101) = 64+16 cover.

 

BTW, 0x is hex (in your display). Is there a standard prefix for bits? I cannot think of one off the top of my head.

 

Moreover, Unknown isn't true anymore. We know the meaning of all the bits now. This is both convenience and documenting what we know.

 

Anyway, for what I was doing this weekend, it would have been really helpful to have had those + numbers....

Link to comment
Share on other sites

I got an error report yesterday. I was using the popup menu to "remove" a navmesh record.

date/time         : 2015-01-04, 05:24:40, 442ms
computer name     : DAYDREAMING
user name         : Play
registered owner  : Administer
operating system  : Windows 7 x64 Service Pack 1 build 7601
system language   : English
system up time    : 4 days 14 hours
program up time   : 1 minute 27 seconds
processors        : 4x Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz
physical memory   : 13218/16297 MB (free/total)
free disk space   : (C:) 307.85 GB
display mode      : 1920x1080, 32 bit
process id        : $2044
allocated memory  : 559.51 MB
executable        : TES5Edit.exe
exec. date/time   : 2014-12-21 02:38
version           : 3.0.33.0
compiled with     : Delphi XE
madExcept version : 4.0.5
callstack crc     : $caef7370, $2909c945, $593cc1b2
exception number  : 1
exception class   : EAssertionFailed
exception message : Assertion failure (D:\Projects\TES5Edit\wbImplementation.pas, line 6905).

main thread ($25d4):
00771729 +071 TES5Edit.exe wbImplementation  6907 +10 TwbMainRecord.GetLoadOrderFormID
0076e5ef +06f TES5Edit.exe wbImplementation  6176  +8 TwbMainRecord.FindReferencedBy
0077683b +03b TES5Edit.exe wbImplementation  7963  +4 TwbMainRecord.RemoveReferencedBy
0076b00f +15b TES5Edit.exe wbImplementation  5451 +23 ProcessRef
0076b246 +1ea TES5Edit.exe wbImplementation  5510 +49 TwbMainRecord.DoBuildRef
00775d3f +01f TES5Edit.exe wbImplementation  7800  +1 TwbMainRecord.Remove
00a522f7 +263 TES5Edit.exe frmViewMain       7702 +48 TfrmMain.mniNavRemoveClick
00525deb +0a7 TES5Edit.exe Menus                      TMenuItem.Click
00a687f8 +04c TES5Edit.exe frmViewMain      13242  +5 TfrmMain.vstNavKeyDown
0050cd65 +021 TES5Edit.exe Controls                   TWinControl.KeyDown
0050ce02 +092 TES5Edit.exe Controls                   TWinControl.DoKeyDown
0050ce2e +00a TES5Edit.exe Controls                   TWinControl.WMKeyDown
005e3ea8 +014 TES5Edit.exe VirtualTrees     18264  +2 TBaseVirtualTree.WMKeyDown
005067d8 +024 TES5Edit.exe Controls                   TControl.Perform
0050d8a8 +040 TES5Edit.exe Controls                   TWinControl.CNKeyDown
00506bb4 +2d4 TES5Edit.exe Controls                   TControl.WndProc
005e58eb +053 TES5Edit.exe VirtualTrees     19108  +2 TBaseVirtualTree.WMNCHitTest
00506bb4 +2d4 TES5Edit.exe Controls                   TControl.WndProc
0050b478 +568 TES5Edit.exe Controls                   TWinControl.WndProc
005f2864 +0f8 TES5Edit.exe VirtualTrees     26914 +32 TBaseVirtualTree.WndProc
0050ab18 +02c TES5Edit.exe Controls                   TWinControl.MainWndProc
004c4e74 +014 TES5Edit.exe Classes                    StdWndProc
75537885 +00a USER32.dll                              DispatchMessageW
005b2087 +0f3 TES5Edit.exe Forms                      TApplication.ProcessMessage
005b20ca +00a TES5Edit.exe Forms                      TApplication.HandleMessage
005b23f5 +0c9 TES5Edit.exe Forms                      TApplication.Run
00a7bfaf +05f TES5Edit.exe TES5Edit            76  +7 initialization
769a3388 +010 kernel32.dll                            BaseThreadInitThunk

thread $16f4 (TWorkerThread):
7726f8ca +0e ntdll.dll                           NtWaitForSingleObject
754414a5 +92 KERNELBASE.dll                      WaitForSingleObjectEx
769a118f +3e kernel32.dll                        WaitForSingleObjectEx
769a1143 +0d kernel32.dll                        WaitForSingleObject
005d213d +19 TES5Edit.exe   VirtualTrees 6308 +3 TWorkerThread.Execute
00472cdf +2b TES5Edit.exe   madExcept            HookedTThreadExecute
004c21ae +42 TES5Edit.exe   Classes              ThreadProc
00407588 +28 TES5Edit.exe   System        148 +0 ThreadWrapper
00472bc1 +0d TES5Edit.exe   madExcept            CallThreadProcSafe
00472c2b +37 TES5Edit.exe   madExcept            ThreadExceptFrame
769a3388 +10 kernel32.dll                        BaseThreadInitThunk
>> created by main thread ($25d4) at:
005d2025 +19 TES5Edit.exe   VirtualTrees 6251 +1 TWorkerThread.Create

thread $258c:
77271f3f +0b ntdll.dll     NtWaitForWorkViaWorkerFactory
769a3388 +10 kernel32.dll  BaseThreadInitThunk

thread $2184:
77270156 +0e ntdll.dll     NtWaitForMultipleObjects
769a3388 +10 kernel32.dll  BaseThreadInitThunk

thread $1b9c:
77271f3f +0b ntdll.dll     NtWaitForWorkViaWorkerFactory
769a3388 +10 kernel32.dll  BaseThreadInitThunk

thread $2780:
77271f3f +0b ntdll.dll     NtWaitForWorkViaWorkerFactory
769a3388 +10 kernel32.dll  BaseThreadInitThunk

thread $2640:
77271f3f +0b ntdll.dll     NtWaitForWorkViaWorkerFactory
769a3388 +10 kernel32.dll  BaseThreadInitThunk
Link to comment
Share on other sites

Ok. So. This navmesh edge link cleaning script. As I'm understanding it, the purpose of the script is to go in and fix mismatched edge link data along cell borders to allow the cleaning process to remove unwanted navmeshes from the file.

 

I've been trying for 3 days now on and off to see if I can get the script to help drop cell -23,18 from CRF. The one where the funky log is that Bethesda laid down over the road. I don't want this navmesh edit. DayDreamer doesn't want this navmesh edit. The world would be a better place if it was gone. So I tried to run the edge cleaning script in hopes that it would correct the triangle number at the east border between -23,18 and -22,18.

 

Instead, the script seems to be doing precisely what the CK would do. It's changing the edge link data in -23,18 to point itself at the new triangle in -22,18. This isn't what I want to happen, because why bother running the script at all at that point? When saving the mod in the CK it generates that edge link change just fine on its own.

 

So either I'm missing the point, or the script is not doing what it was implied it should do. Changing the triangle number would solve the whole problem. At this point, it doesn't appear this is possible.

Link to comment
Share on other sites

Sweet. I'll have to have a look at that once my weekly backups are done.

 

Which branch of Bash should one be using to keep up with the patcher work these days?

Link to comment
Share on other sites

Just go to the Bethesda thread. Remember the GitHub branches are all the same technically and unless you are used to it, it's confusing. :D Plus I have not updated the Experimental version past 306.0.14. If the Script is catching records that you feel it shouldn't you can set boolean values to show the record.

Using record structure for Fallout 3
-------------------------------------------------------------------------------
[0] Scripts: 
[2] Stats:  \ [37] BornAgain Outcast v3.esp \ [3] GRUP Top "ARMO" \ [3] ArmorPowerHelmetOutcast "Outcast T45d Power Helmet" [ARMO:00060C72] \ [14] DATA - Data

BornAgain Outcast v3.esp:
Added tags to header: 
{{BASH:Actors.ACBS,Actors.Stats,Delev,Scripts,Stats}}

-------------------------------------------------------------------------------
[Apply Script done]  Processed Records: 25, Elapsed Time: 00:00
So then if you notice the Bash tag is incorrect, you can talk to the author of the script and the script can be updated. He was able to find possibly the only Relev record for Dawnguard. Originally I didn't think it needed it because I couldn't spot it but [LVLI:0010C6ED] LItemVampireAttire in Skyrim.esm one of the items is found at level 8 but in Dawnguard.esm it's level 1. So Dawnguard really does need Relev and Delev.
Link to comment
Share on other sites

Uploaded new version.

Fix for issue when copying MGEF counter effects in Oblivion.

TES4 and NAVI records are compared too when using "Compare to" menu.

  • Like 1
Link to comment
Share on other sites

Have you been testing the script any Arthmoor? I started a thread on STEP. You don't have to post there but the OP has all the links to everything.

I poked it briefly the other night. Saw that it didn't pick up C.Acoustic from the USKP like I'd expect but couldn't get the thing to tell me why it wasn't setting it. Nor could I get it to report on why it thinks the USKP needs C.RecordFlags.

 

And yeah, it seems a bit awkward to make any sort of meaningful comments about it when he's running his thread from a forum I refuse to register with.

Link to comment
Share on other sites

Well Arthmoor, just post somewhere and I'll share it with him. :P. It's still beta so it needs work. Just make sure to read the thread to get the latest versions after he fixes your concerns that I report to him.

I don't actually have issues with other sites. I even post on LL the site that can't be named or whatever.

Link to comment
Share on other sites

Let's just say I have my reasons for not wanting to register there and leave it at that.

 

As far as issues - just tried the 1.3.7 script with svn 1872:

 

Unofficial Skyrim Patch.esp:
Suggested tags:
{{BASH:C.Light,C.Owner,Delev,Graphics,Invent,Relev,Stats}}

 

That seems like a pretty big backward step, and it doesn't match the list I think it should have:

 

{{BASH:C.Acoustic,C.Climate,C.Encounter,C.ImageSpace,C.LTemplate,C.Light,C.Location,C.Music,C.Name,C.Owner,C.Water,Delev,Graphics,Invent,Names,Relev,Sound,Stats}}

Link to comment
Share on other sites

Let's just say I have my reasons for not wanting to register there and leave it at that.

It's cool Arthmoor, I don't need to know. I respect the fact that you have your reasons.

Okay, I will look at which Cell flags he has in the script for Skyrim.  The Graphics Tag not being detected is just because he is trying to balance four versions and Wrye Smash probably handles more then what the docs say so he just doesn't know.  Same with Sound.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...