Skip to content

Releases: Mutagen-Modding/Mutagen

v0.13.4.0

23 Aug 05:07
Compare
Choose a tag to compare
  • ModListing now has enabled field to support load orders with a mix
  • More MaskItem usages removed from Translation Masks
  • Condition functions implemented. More FormKey functions write appropriately.
  • Some filestream closing improvements
  • Export master sorting against load order throws MissingModException if unexpected form is encountered
  • More debug info embedded in DLLs

v0.13.3.0

21 Aug 04:50
Compare
Choose a tag to compare
  • SSE asterisk load order support
  • Added more informative exceptions to certain sections
    (RecordException SomeMod.esp => SomeFormKey ... The details)

v0.13.2.0

19 Aug 05:00
Compare
Choose a tag to compare
  • Threading fix for parallel writes
  • Copy fix for FormKey being copied undesirably
  • Translation mask simplifications. Lots of MaskItem usages removed
  • Fix for LinkCaches accessing more records than they needed
  • SSE now adds base mods to load orders if they dont exist on the actual plugins file

v0.3.1.0

17 Aug 21:19
Compare
Choose a tag to compare
  • Threading fix for parallel writes
  • Fix for FormKeys being copied improperly during CopyIn

v0.13.0.0

15 Aug 16:38
Compare
Choose a tag to compare
  • Initial ESL support
  • LinkCache/LoadOrders now expose ListedOrder vs PriorityOrder for extra clarification
  • Override iteration systems. Can now retrieve/iterate the record versions that have most priority in the load order.
  • Group API improved
  • Strings lookup optimized
  • LinkCache now has Immutable and Mutable versions. Mutable versions are less optimized, but allow for some mods to change without corrupting the cache.
  • Lots of mod export functionality added:
    • Ensure masters list contains all entries referenced in records
    • Ensure masters list is ordered to match a reference load order
    • FormID uniqueness safety check
    • ESL overflow safety check
    • Sync master flag mod header field to match ModKey
    • Sync next FormID mod header field
    • Sync record count mod header field
    • Ensure modkey used matches path being exported to
  • ModInstantiator systems that can create new mods just from generic types.
  • ModPath struct added that pairs a path to a mod + a ModKey. Simplifies API parameters
  • Added a new Mutagen.Kernel library, with just the very basics needed to communicate about umbrella concepts. Used as a lightweight import for Synthesis systems that are as Mutagen naive as possible.
    • ModPath/ModKey
    • ModType enum (ESP/ESM/ESL)
    • GameCategory/Release
  • LoadOrder system refactoring. Now a more generic class that can contain any type
  • More Major Record iteration fixes

v0.12.0.0

20 Jul 03:52
Compare
Choose a tag to compare
  • Skyrim LE and SE, and all DLC parsed and pass passthroughs.
  • Large header struct usability pass. Extra added API will be outlined in more detail on the wiki. More to come
  • TranslatedString correctness testing to confirm all fields that use string files should be marked and integrated.
  • MajorRecord versioning systems better integrated into code generation.
  • Simple testing GUI for modifying setups to be run, as well as digesting output.
  • Added some testing suite multithreading and upgraded to latest API standards.
  • GameMode enum split into two. GameRelease is specific to a game release (SkyrimSE, LE, VR), whereas GameCategory is an umbrella enum for Skyrim as a whole.
  • Removed XML translation systems. Will likely be readded as an addon library for JSON later on.

v0.11.0.0

27 Jun 11:02
Compare
Choose a tag to compare
  • Added Wabbajack.Compression.BSA as a dependency to handle BSA parsing for strings files.
  • TranslatedString systems now support BSA strings files as sources. Current pattern is to prefer a loose file, and then a BSA file. There is no mixing in situations that both exist, currently. Need to research if that's desirable or not.
  • TranslatedString now is more lazy in its alternate string query logic. No alternate strings will be queried by default.
  • Added some missing comment xml output to the DLL

v0.10.0.0

26 Jun 12:50
Compare
Choose a tag to compare
  • Added the concept and generation for LinkInterfaces, which are the marker interfaces that a FormLink can use to allow multiple Major Record types. These before were ad-hoc interfaces. New generation systems streamlines adding new ones, as well as created a registry system to help with correctness elsewhere.
  • Major Record enumeration features heavily refactored, bugfixed, and tested. LinkInterfaces weren't being bubbled up, nor were deep records like PlacedNpc, etc.
  • Warmup systems bugfixed, and now autogenerated. WarmupAll.Init() to warm up all games. WarmupSkyrim.Init() for just Skyrim, etc. Saves a small bit of time by not using assembly reflection on some tasks.
  • Fixed Skyrim's default starting FormID on new mods to be 0x800.
  • Fix for binary overlays not disposing properly, leaving files in use.
  • Bugfix for equality/hash mismatch between ModKey.Null vs default(ModKey).
  • LinkCache fixes for both deep records, and LinkInterfaces.
  • SkyrimLE parsed through the Relationship record.

v0.9.0.0

23 Jun 02:23
Compare
Choose a tag to compare
  • SkyrimLE parsed through MusicType
  • Adjusted FormLinks to be readonly structs. Allows FormLink to be easily set in property setters when constructing new objects.
  • Adjusted some lists that were nullable unnecessarily
  • Standardized type/flag enum naming a bit.
  • Lots of internal optimizations and adjustments

v0.8.0.0

27 May 03:11
Compare
Choose a tag to compare
  • LoadOrder implements IDisposable, which can be used to dispose all contained mods
  • LoadIndex deleted, LoadOrder[int] is now the API
  • LoadOrder now implements IReadOnlyList
  • FormKey.LoadOrderComparer now more easily takes a LoadOrder object
  • LoadOrder.ImportFactory to create/fill a load order more easily