Mutagen-Modding / Mutagen

A .NET library for analyzing, creating, and manipulating Bethesda mods
GNU General Public License v3.0
120 stars 31 forks source link

Parse Fallout NV #22

Open Noggog opened 4 years ago

Noggog commented 4 years ago

Create generated records for Fallout New Vegas

cornytrace commented 2 years ago

Hi, I am interested in adding support for Fallout 3 / NV and expanding support for Fallout 4 with the goal of using Mutagen to write a program to more easily port content from FO3/NV to FO4. I have a couple of questions which I have not been able to find answers for in the wiki or the youtube video.

  1. As the FO3 and FNV esms have very much in common, it would be nice to share xml files where they are equal. Can the xml of one game inherit from the xml of another game?
  2. What is the definition of a MajorRecord compared to a normal Record? Is it an opaque container for an untyped Record?
  3. Could you give an example TestingSettings.json?
Noggog commented 2 years ago

Hey! Definitely would be best to head over to our discord for quicker back and forth on lots of the gritty details im sure will come up. 1) Yeah, it would be done similar to Skyrim releases where there's SE/LE/Enderal that all use the same classes. Would just be Fallout3Release.NewVegas, etc. 2) Not sure I follow. In the xml, there's objectType which has Record/Subrecord/Mod/Group. These options control stuff like what header types to use, what lengths certain things should be, etc. MajorRecord is an abstract generated class that has EDID/FormKey baseline. So it's combination of setting objectType="Record" and inheriting from MajorRecord that makes a new MajorRecord type have all its plumbing. I dont think you'd define a new objectType="Record" that didn't also inherit somehow from MajorRecord. 3) There's a UI not shown in the parsing video (was newer than the video) that does most of the work for you. Mutagen.Bethesda.Tests.GUI

Just gotta set up where you data folders are, and what mods you want to test in the pass through, and the UI will make the json and do the run.

image