[RELzBETAWIPz] TES4Edit

Post » Wed May 09, 2012 12:37 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
cutiecute
 
Posts: 3432
Joined: Wed Sep 27, 2006 9:51 am

Post » Wed May 09, 2012 5:24 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
Natalie J Webster
 
Posts: 3488
Joined: Tue Jul 25, 2006 1:35 pm

Post » Tue May 08, 2012 6:15 pm

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
Aman Bhattal
 
Posts: 3424
Joined: Sun Dec 17, 2006 12:01 am

Post » Wed May 09, 2012 5:40 am

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
Dan Stevens
 
Posts: 3429
Joined: Thu Jun 14, 2007 5:00 pm

Post » Wed May 09, 2012 1:13 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
FirDaus LOVe farhana
 
Posts: 3369
Joined: Thu Sep 13, 2007 3:42 am

Post » Wed May 09, 2012 4:39 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
Taylah Haines
 
Posts: 3439
Joined: Tue Feb 13, 2007 3:10 am

Post » Tue May 08, 2012 5:55 pm

Try the older version 2.2.2 of TES4LODGen, that should run correctly with Manimarco Resurrection.
User avatar
Madison Poo
 
Posts: 3414
Joined: Wed Oct 24, 2007 9:09 pm

Post » Tue May 08, 2012 9:07 pm

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
Hannah Barnard
 
Posts: 3421
Joined: Fri Feb 09, 2007 9:42 am

Post » Tue May 08, 2012 8:06 pm

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
kasia
 
Posts: 3427
Joined: Sun Jun 18, 2006 10:46 pm

Post » Tue May 08, 2012 6:44 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
Monique Cameron
 
Posts: 3430
Joined: Fri Jun 23, 2006 6:30 am

Post » Tue May 08, 2012 11:11 pm

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
TASTY TRACY
 
Posts: 3282
Joined: Thu Jun 22, 2006 7:11 pm

Post » Wed May 09, 2012 1:36 am

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
sarah
 
Posts: 3430
Joined: Wed Jul 05, 2006 1:53 pm

Post » Tue May 08, 2012 3:39 pm

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
rolanda h
 
Posts: 3314
Joined: Tue Mar 27, 2007 9:09 pm

Post » Wed May 09, 2012 3:07 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
Nikki Hype
 
Posts: 3429
Joined: Mon Jan 01, 2007 12:38 pm

Post » Wed May 09, 2012 12:22 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
jessica robson
 
Posts: 3436
Joined: Mon Oct 09, 2006 11:54 am

Post » Tue May 08, 2012 3:57 pm

Any updates to this? I get error messages when making overrides of spells, enchantments and dialog records
User avatar
Danger Mouse
 
Posts: 3393
Joined: Sat Oct 07, 2006 9:55 am

Post » Tue May 08, 2012 3:14 pm

http://www.tesnexus.com/downloads/file.php?id=7633
CRC: 76708A3D
UDR: 15, ITM: 0 (via Wrye Bash)
BUT - When I try to clean its UDRs using TES4Edit 3.0.15, it gives me a "Target not persistent" error box! Dunno how to go about this one :(

http://www.tesnexus.com/downloads/file.php?id=14200
CRC: E2BE41DA
UDR: 261, ITM: 0 (via Wrye Bash)
BUT - Similar problem "Target not persistant"...

Happens only when trying to cleans UDRs. Also, after click OK to that error box and try to clean UDRs again, it reports no UDRs left. Just wanted to make sure the ESP is being cleaned right :P
User avatar
ladyflames
 
Posts: 3355
Joined: Sat Nov 25, 2006 9:45 am

Post » Tue May 08, 2012 11:20 pm

http://www.tesnexus.com/downloads/file.php?id=7633
CRC: 76708A3D
UDR: 15, ITM: 0 (via Wrye Bash)
BUT - When I try to clean its UDRs using TES4Edit 3.0.15, it gives me a "Target not persistent" error box! Dunno how to go about this one :(

http://www.tesnexus.com/downloads/file.php?id=14200
CRC: E2BE41DA
UDR: 261, ITM: 0 (via Wrye Bash)
BUT - Similar problem "Target not persistant"...

Happens only when trying to cleans UDRs. Also, after click OK to that error box and try to clean UDRs again, it reports no UDRs left. Just wanted to make sure the ESP is being cleaned right :P
Wrong thread. Reposted in the right one for you.
User avatar
BlackaneseB
 
Posts: 3431
Joined: Sat Sep 23, 2006 1:21 am

Post » Tue May 08, 2012 11:55 pm

Thank you muchly :) Sorry for the mispost. I thought it was a problem with TES4Edit :facepalm:
User avatar
Rachel Eloise Getoutofmyface
 
Posts: 3445
Joined: Mon Oct 09, 2006 5:20 pm

Post » Wed May 09, 2012 12:59 am

Maybe TES4Edit already does this and I just don't know where the option is (hard trying to relearn all this... heh.)
But just in case it doesn't here's a suggestion for future updates:
There's an unpatched bug in the EXE regarding packages that continue over midnight. If they are not tied to a specific day or weekday (is month affected?) then there is no problem.
If they are, however, tied to a specific day of the month or week, then the package will start running at zero hours on the day it starts regardless of the specified start time, then end at whatever time if it would have ended that day, then pick up again when it's supposed to.

For example, if you want an NPC to go drinking Saturday night, you might create a travel/eat package starting 22:00 Loredas to 02:00 Sundas and expect this to be fine. However what will happen is the NPC will execute the package on Loredas from 00:00 to 02:00, then again at 22:00 until 02:00 Sundas. This can be easily avoided by splitting packages into a before-midnight and after-midnight-the-next-day component.

So, it would be excellent if TES4Edit would report these packages in its error checking. The logic behind it is pretty simple: IF (Time+Duration > 24) AND ((Day of week != Any) OR (Date != 0)) then flag it as an error.

Thanks again for TES4Edit. It's by far the most helpful app. made for Oblivion. :)
User avatar
Tracy Byworth
 
Posts: 3403
Joined: Sun Jul 02, 2006 10:09 pm

Post » Wed May 09, 2012 1:59 am

Seriously? AI packs that cross the midnight hour are THAT bugged that none of them work? I've never noticed any of my modded NPCs having issues with, for example, sleeping from 10pm to 7am or something.
User avatar
Rhiannon Jones
 
Posts: 3423
Joined: Thu Sep 21, 2006 3:18 pm

Post » Wed May 09, 2012 3:39 am

I had the details a bit wrong but according to this it does affect all packages of this type (was there years ago before I left too.) I am going to run a few tests to make sure as even though UESP only has two NPCs mentioned I've found ~40 packages so far. I was planning on doing this before I left but never go around to it... there are 5,878 packages to check manually.

http://cs.elderscrolls.com/constwiki/index.php/AI_Package

"There is an engine bug where if a package is supposed to occur on given days of the week but the duration spans past midnight, the package occurs at the same time on both the day it was supposed to and the day after. The day after, though, the package will end at midnight instead of whatever time it was supposed to."

So in my example above, the correct behavior of the Loredas 22:00-02:00 package would be that the NPC would go to the bar on Loredas from 22:00-02:00 but then on Sundas would go back again from 22:00-00:00.

However this conflicts with the UESP's description of the bug:

http://www.uesp.net/wiki/Oblivion:Dul_gro-Shug

"His trip to Skingrad is supposed to begin at 8am on the 23rd rather than at midnight, but there is a bug in the way the game handles such AI packages that affects many NPCs."

which is how I worded it.
User avatar
Haley Cooper
 
Posts: 3490
Joined: Wed Jun 14, 2006 11:30 am

Post » Tue May 08, 2012 8:20 pm

Oh, right. I think I misread your post then. Thank God, because I've got untold numbers of NPCs with packages that cross midnight, but I don't think any of them are day-specific.
User avatar
Brian LeHury
 
Posts: 3416
Joined: Tue May 22, 2007 6:54 am

Post » Wed May 09, 2012 3:28 am

... I've got untold numbers of NPCs with packages that cross midnight, but I don't think any of them are day-specific.

Yup, they will be OK.

I just finished testing this out, and both the UESP and CS Wiki are correct, because both effects happen as if the schedule was a repeating one.

So for our test NPC who was supposed to go to the bar 22:00 Loredas - 02:00 Sundas, he will actually go from 00:00-02:00 Loredas, then for the correct time of 22:00 Loredas - 02:00 Sundas, then again at 22:00 Sundas to 00:00.
It does affect packages for both specific weekdays and days of the month.

There are 58 packages like that in vanilla and all but 2 of them are used (one was not assigned and arguably should have been, and another is for Curtis who was never put into the game as he was an ImpEx NPC.) I can see only one that's been fixed so far. So I, as usual, have my work cut out. :)

I'll be updating the Wiki appropriately. I'll hold off on the UESP as all the NPC sheets (most don't have any indication of this) will also need it, so I'll wait until the UOP is out so I can tag them too.
User avatar
Prue
 
Posts: 3425
Joined: Sun Feb 11, 2007 4:27 am

Post » Tue May 08, 2012 3:32 pm

So are you talking about 58 AI packs that aren't assigned? Is there a point in fixing those if the vanilla game isn't using them?
User avatar
R.I.p MOmmy
 
Posts: 3463
Joined: Wed Sep 06, 2006 8:40 pm

PreviousNext

Return to IV - Oblivion