I'm sure I'm just making a stupid mistake, but cmd doesn't recognize bethkit as an operable program. I'm directed at the proper drive where both the exe and game are located. Any idea what I'm doing wrong? I've been looking for something like this for a while, so pretty excited to try it out. Thanks!
probably too late to help you, poor moghouse, but in case anyone else (like me) stumbles upon this in the future, the answer is that both the bethkit executable and the file to convert need to be located in the same folder, and you need to run the command within that folder. on Windows, use 'cd' to change directory. for example, if the 'bethkit' executable is in downloads, it would be 'cd c:\users\(your name)\downloads', once changed to that directory run 'bethkit' and it'll do the rest.
Absolutely, Undoubtedly essential gem of a tool. Saved me day minimum of work re-routing 4-5 other stage steps needing to be done all within notepad++. This tool you made is just awesome. If we can turn a .nif or whatever else into an editable xml (or whatever) why not a Beth module right? Love it
My apologies, but the purpose of the utility would be more understandable if you could append "ESP/ESM to XML Converter" to the name, as I came back here after forgetting the utility for months.
It already does this when converting from XML to ESP in case you add or remove records. The value is in the XML just for informational purposes to see how many records are in the ESP you converted to XML.
THANK YOU SO MUCH FOR THIS! I've been working on a script that generates custom loading screens (for Fallout NV) and I basically had to use a hex editor and compare different working plugins to decipher what all the hex values are supposed to be and it was such a pain failing at every attempt thinking I had it figured out this time.
Just as I was about to get a working FORM ID generator, the GRUP hex value I thought I had figured out was actually wrong and ended up breaking the generated mod if I used a longer ID name for example. But after looking at your screenshot showing the hex values I was trying to decipher in plain text I finally understand what I was doing wrong and have now actually made a working automated FORM ID generator which I originally thought was an impossible task. (though right now the script is only limited to generating loading screen IDs ATM since that's all I was working on, I'm sure it can be modified to automate other types of records)
But long story short I thought the GRUP "groupsize" value was actually the hex location of the last ID since both values were close to each other but it turns out it was actually the size of the group... (I know I sound dumb but when it was just a bunch of hexidecimal data without any context it was all I had to go with)
I'm not really into XML editing but decoding the plugin to easily automate/manipulate a mod is in the same ballpark, so I'll still give an endoresement anyways as a token of my appreciation :D
Glad to hear this helped you out even though this doesn't actually work for Fallout NV yet. :)
The general layout of Bethesda plugin files is actually quite simple once you understand it, the hard work is translating the details in each record such as navmesh data. I would recommend taking a look at UESP for documentation of the group/record format. This is for Oblivion but I think it should be the same general structure for Fallout NV since they share similar engines:
https://en.uesp.net/wiki/Tes4Mod:Mod_File_Format
Sorry to say I haven't gotten around to looking into getting this toolkit working for Fallout yet, but it sounds like you already have some code put together and with the link above I think it should get you working just fine.
Version 0.5 is now up after I overhauled the code so it is a lot more memory efficient when performing XML parsing. This allowed me to finish implementing the remaining known fields documented on UESP that are a bit more complex such as landscape and navmesh data. There are still some fields remaining that are unknown and just translated to raw hex values in the XML, but I am not sure if those will ever be figured out. Anyway, with that done I believe I have the core functionality completed. There are plenty of things that can be done to improve upon this though so I will continue working on it, and feel free to provide feedback or bug reports to help improve things.
47 comments
I'm directed at the proper drive where both the exe and game are located. Any idea what I'm doing wrong?
I've been looking for something like this for a while, so pretty excited to try it out. Thanks!
static_cast<size_t>(m_endPtr - m_Ptr) must be greater than or equal to length
edit: tried a different (very simple) esp and got a different error. This tool must be for skyrim only. (I'm trying to convert fallout 4 esp files)
Just as I was about to get a working FORM ID generator, the GRUP hex value I thought I had figured out was actually wrong and ended up breaking the generated mod if I used a longer ID name for example. But after looking at your screenshot showing the hex values I was trying to decipher in plain text I finally understand what I was doing wrong and have now actually made a working automated FORM ID generator which I originally thought was an impossible task. (though right now the script is only limited to generating loading screen IDs ATM since that's all I was working on, I'm sure it can be modified to automate other types of records)
But long story short I thought the GRUP "groupsize" value was actually the hex location of the last ID since both values were close to each other but it turns out it was actually the size of the group... (I know I sound dumb but when it was just a bunch of hexidecimal data without any context it was all I had to go with)
I'm not really into XML editing but decoding the plugin to easily automate/manipulate a mod is in the same ballpark, so I'll still give an endoresement anyways as a token of my appreciation :D
The general layout of Bethesda plugin files is actually quite simple once you understand it, the hard work is translating the details in each record such as navmesh data. I would recommend taking a look at UESP for documentation of the group/record format. This is for Oblivion but I think it should be the same general structure for Fallout NV since they share similar engines:
https://en.uesp.net/wiki/Tes4Mod:Mod_File_Format
Sorry to say I haven't gotten around to looking into getting this toolkit working for Fallout yet, but it sounds like you already have some code put together and with the link above I think it should get you working just fine.