[RELz/BETA/WIPz] TES4Edit

Post » Wed Mar 09, 2011 2:56 am

File Header has a record named "Next Object ID" - what it is?
ie. let's say I have an esp without the "Next Object ID" (0x00, 0x00, 0x00, 0x00) - how can one determine the correct binary values for this record? For me this value seems totaly unrelated to anything ;(
User avatar
lydia nekongo
 
Posts: 3403
Joined: Wed Jul 19, 2006 1:04 pm

Post » Wed Mar 09, 2011 11:31 am

It is the next Form ID to be used for any new record, however it isn't shown in hexadecimal, but in decimal, so it's a little confusing. Not sure why you'd want to convert that into binary however.
User avatar
Dagan Wilkin
 
Posts: 3352
Joined: Fri Apr 27, 2007 4:20 am

Post » Wed Mar 09, 2011 10:03 am

Actually it doesn't matter if it is dec or hex. I just didn't have any idea what it is, wasn't able to find any data related to this number in my esp files. Will have to test it. Thank you :)
User avatar
Chris Guerin
 
Posts: 3395
Joined: Thu May 10, 2007 2:44 pm

Post » Wed Mar 09, 2011 12:34 pm

It's generally what Vorians said - an offset for what the next chosen ID will be in the CS if you generate a new record. That offset is almost always from 2048, not sure why that is unless there's that much space reserved for the mod's header data. If you reset it to 0, it will automatically advance to the next open number >= 2048 if you add a record to the mod.
User avatar
Esther Fernandez
 
Posts: 3415
Joined: Wed Sep 27, 2006 11:52 am

Post » Wed Mar 09, 2011 8:10 am

Not just the CS, TES4Edit will also use the Form ID referenced there for a new record. I believe (here comes a guess) the CS begins at 2048 (hex 800) because the first 2047 records are reserved in Oblivion.esm for hard coded records or something like that, so to ensure that no ESM or ESP created with the CS (yes I know creating an ESM in the CS without any other tool isn't exactly possible) which might be designed to work independently of Oblivion.esm doesn't contain records which clash with the hard coded records, it simply never uses the first 2047 hex record IDs.
User avatar
Emily Graham
 
Posts: 3447
Joined: Sat Jul 22, 2006 11:34 am

Post » Wed Mar 09, 2011 10:54 am

The old TES4LODGen thread is locked so here's something - it freezes when "Filtering VWD records" for 00000LegionValley "Hegathe Valley" [WRLD: 00FC6D4E]. It seems to be from http://planetelderscrolls.gamespy.com/View.php?view=oblivionmods.detail&id=3731.

I'm on Win7 x64 with UAC off and my Oblivion install is NOT in program files. I also ran TES4LODGen as admin :P
User avatar
sexy zara
 
Posts: 3268
Joined: Wed Nov 01, 2006 7:53 am

Post » Wed Mar 09, 2011 9:48 am

Try the older version 2.2.2 of TES4LODGen, that should run correctly with Manimarco Resurrection.
User avatar
lacy lake
 
Posts: 3450
Joined: Sun Dec 31, 2006 12:13 am

Post » Wed Mar 09, 2011 2:19 am

Yeah, the first 0x800 records are reserved for the game engine, so new records should always have a objectID greater than that (modID + objectID = formID). The next objectID field is likely more of a hint than a demand though. If the next objectID is already in use by the esp, it should be skipped over and the next unused one used instead. This is how CBash implements it, and I'd assume that the CS and TES4Edit would do the same. That shouldn't happen though unless someone fiddles with the next objectID field directly.

Since the next objectID is closely related to the number of records in a mod (next objectID - 0x800 ~= number of records), there's also a good chance that the field is used to pre-allocate space on the heap so that the rest of the mod is loaded more quickly / efficiently. It's generally faster to request a large amount of memory at once and then dole it out in dribbles to the rest of the program than to request a little bit of memory every time. That depends on the memory manager(s) that Oblivion uses though, so I can't say for sure that it's also used in this manner.
User avatar
maddison
 
Posts: 3498
Joined: Sat Mar 10, 2007 9:22 pm

Post » Wed Mar 09, 2011 10:48 am

The next objectID field is likely more of a hint than a demand though. If the next objectID is already in use by the esp, it should be skipped over and the next unused one used instead. This is how CBash implements it, and I'd assume that the CS and TES4Edit would do the same. That shouldn't happen though unless someone fiddles with the next objectID field directly.


Oh absolutely, it is of course impossible for an ESP to contain the same ID twice (without corruption at least), so if the next ID is already in use, both the CS and TES4Edit will simply progress through the IDs until it hits one not yet being used. It is easy enough to edit in TES4Edit what the next ID will be, and should be safe to do so precisely because it won't allow any ID overlap. It actually could be quite easy to have the next ID already in use, since TES4Edit allows you to change any Form ID and manually set it to what you want, so you could change a record's ID to one which will shortly after be reached by the Next ID field.
You can also use TES4Edit to reset every single ID in an ESM/ESP by using the "Renumber formIDs from..." command, this will also adjust the Next ID entry in the Header to suit.
User avatar
Bitter End
 
Posts: 3418
Joined: Fri Sep 08, 2006 11:40 am

Post » Tue Mar 08, 2011 11:20 pm

Thanks for the answers guys! Much appreciated :)

I'm rather wary of using a (much) older version but it says stable so I'm game. Anyway, would it be possible for TES4LODGen to skip the offending mod and continue with the next rather than just freezing? (to make matters worse, BOSS sorts MannimarcoRez high up in the load order)
User avatar
Charlie Sarson
 
Posts: 3445
Joined: Thu May 17, 2007 12:38 pm

Post » Wed Mar 09, 2011 6:58 am

You can skip the offending worldspace, but not the entire mod. That's probably all you'd need to do though.
In Win 7, open C:\Users\[YourName]\AppData\Local\Oblivion\Plugins.tes4viewsettings

Note that I said AppData not "Application Data" - AppData will be hidden, but you can just type it into the address bar at the top.
Note also that the latest version of TES4LODGen uses Plugins.tes4viewsettings and NOT Plugins.tes4lodgensettings like the older versions did.

Scroll to the bottom of the file and add the following:
[Default]Rule=Replace[Worldspace]00000LegionValley=Skip

User avatar
Claudia Cook
 
Posts: 3450
Joined: Mon Oct 30, 2006 10:22 am

Post » Tue Mar 08, 2011 9:47 pm

Unfortunately, I don't have any of the files you mentioned :( I can go till C:\Users\[YourName]\AppData\Local\Oblivion\ and I found just 2 .txt files (DLCList.txt and Plugins.txt)
User avatar
naana
 
Posts: 3362
Joined: Fri Dec 08, 2006 2:00 pm

Post » Wed Mar 09, 2011 10:49 am

Okay, I'm guessing that you don't have TES4Edit then, as it would certainly have created the file the first time it was run. Create a new text file and rename it plugins.tes4viewsettings (ensure that the .txt extension is removed). Then paste into that file what I mentioned previously and run TES4LODGen again.
User avatar
Dina Boudreau
 
Posts: 3410
Joined: Thu Jan 04, 2007 10:59 pm

Post » Wed Mar 09, 2011 10:10 am

Worked like a charm! Thanks

PS: I tried running TES4Edit (loading just oblivion.esm and closing it without making any changes) but there was still no file. Creating a new file did the trick :)
User avatar
Prisca Lacour
 
Posts: 3375
Joined: Thu Mar 15, 2007 9:25 am

Post » Wed Mar 09, 2011 1:31 am

Great! Curious though, perhaps TES4Edit will only generate the settings file if you actually make use of the program rather than just run it. I don't know, and it doesn't matter since you got what you wanted!
User avatar
leigh stewart
 
Posts: 3415
Joined: Mon Oct 23, 2006 8:59 am

Previous

Return to IV - Oblivion