Skip to content

Releases: Mutagen-Modding/Mutagen

0.48.1

26 Nov 02:28
Compare
Choose a tag to compare
  • MasterFlagsLookupCompiler component
  • Cell overlay parsing improvements for vestigal followup groups

0.48.0

21 Nov 19:57
Compare
Choose a tag to compare
  • Updated to target Net 8 or 9
  • Added generic ConditionData convenience calls like TryGetParameter1. Thanks @Elscrux !
  • Sourcelink added (for hopefully better debugging experience)
  • Xbox game location targeting support added

0.47.4

06 Nov 09:40
Compare
Choose a tag to compare

Starfield

  • Fix for Race ctor

Oblivion

  • Improved parsing malformed Oblivion string lists

General

  • ModCompaction and RecordCompactionCompatibilityDetection functionality
  • OverrideMixIn usage of IMajorRecordQueryable, opening up more usage for WinningOverride calls
  • Upgraded error message to Race NAME parsing
  • ModToGenericCallHelper.InvokeFromCategory
  • MajorRecordTypeEnumerator.GetTopLevelMajorRecordTypesFor (thanks @some1one)
  • Internal fix for array related access in certain conditions
  • Fix for internal warmup logic for certain calls
  • Added more overrides for ListsMod/AssertListsMod
  • Some MultiModFileSplitter initial experiments (thanks @praecipitator)
  • RecordException.Enrich that takes ModContexts

0.47.2

10 Oct 04:16
Compare
Choose a tag to compare
  • Disable CCC load order mechanics for Starfield
  • Added SFBGS Starfield masters to implicit
  • KeyedMasterStyleReader. Fix for LoadOrderImporter for Starfield
  • Starfield Planet EOVR subrecord
  • RecordCompactionCompatibilityDetector.CouldBeSmallMasterCompatible

0.47.1

06 Oct 03:07
Compare
Choose a tag to compare
  • Starfield Location component support

0.47

04 Oct 22:23
Compare
Choose a tag to compare

Common

  • IMajorRecordIdentifier naming modified /w Getter suffix

Starfield

  • Added ShatteredSpace.esm to implicit base masters

Updated Records

  • PlacedObject
    • XWCN/XWCU/XCZR/XLIB added
    • PlacedObjectGoboAnimatedProperties subobject defined
    • LightColors list made additive
  • AffinityEvent PNAM
  • Components added to Race
  • Weapon XALG
  • Package unknown target upgraded to handle more scenarios
  • ImpactDataSet IPDS/ENAM
  • BGSOverlayDesignatedPlacementInfo_Component added
  • Location NAM1
  • PlanetBiome field renames and Keywords defined
  • ActorValueModulation AVMP
  • AimModel extra byte added
  • Quest ATLM made into list
  • SceneCollection GRUP added

Testing

  • DataRelativePathBuilder

Fixes

  • Fix for null refs on certain FormLink accessors on older record versions
  • Fix for overlay handling of "ending" record markers for certain situations

0.46.1

27 Sep 04:21
Compare
Choose a tag to compare
  • IMajorRecordIdentifier + records + equality comparer
  • Added extra int list size overflow check
  • Starfield BGSVehicleConfig component parsed
  • StringsLookupOverlay AssociatedPath member

0.46

21 Sep 06:01
Compare
Choose a tag to compare
  • Update to .NET 8. Older versions removed
  • Migrate from DotNetZip to System.IO.Compression
  • FormKeys can now have a zero ID and be considered not null #546
    • Minimum ID for lower formID ranges swapped from 1 -> 0
    • FormKey.ToFilesafeString updated to always print ID
  • Fix for ChanceNone scaling #548
  • Added some style enforcement via .editorconfig

Archive

  • Archive.GetApplicableArchivePaths /w IEnumerable<ModKey> ordering
  • Environment variable fixes for linux lookups

AssetLinks

  • AssetLink.RawPath -> GivenPath
  • IAssetProvider which provides a lookup and caching functionality similar to LinkCache, but for asset data
  • IFontProvider foundational implementations
  • Fixes for EnumerateAssetLinks for deep nested assets

LoadOrder

  • Where transform call
  • ResolveExistingMods fix

Write/Create Builders

  • Many internal improvements
  • WithLoadOrderFromHeaderMasters
  • WithDefaultLoadOrder
  • Some input parameters made nullable
  • WithExtraIncludedMasters #543
  • WithExplicitOverridingMasterList
  • GameRelease requirement added to BinaryWriteBuilder
  • WithAllParentMasters #542
  • Added some overloads /w param array inputs, and other similar convenience overloads
  • BinaryWriteParameters.MastersContentCustomOverride custom func to transform masters to be written
  • Read/Write parameter objects LoadOrder member renamed to MasterFlagsLookup, and now take IModMasterStyled
  • WithKnownMasters to supply master style lookup without having the master files on hand
  • BinaryWriteBuilder order of operations changed to take ToPath first
  • Improved strong typing of builders given by mod objects
  • WithDataFolder can be called, even if not explicitly needed

WPF Controls

  • Fix for enumerable numeric reflection list default values

Starfield

  • No longer assumes master mods are Full style if they cannot be looked up, and will throw instead
  • StarfieldAnimationTextAssetType BaseFolder fixed
  • PlacedNpc.Location field
  • Light record definitions updated heavily
  • TerminalMenu data work, length fixes, nullability improvements
  • SkeletalModel fields names improved
  • PERS, PCBN, PCCN records
  • Traversal binary overlay fix
  • Navmesh geometry parsing readded
  • BGSVehicleManagement support
  • PlacedObject XLTW, XPWR subrecords defined

Fallout4

  • Deleted LeveledSpell
  • Race movement data versioning parse improvements
  • TalkingActivator.LoopingSound record type fix
  • LocationCellStaticReferences marked for overflow support

Skyrim

  • TalkingActivator.LoopingSound record type fix

Oblivion

  • Fix for parsing of list of string fields #549

Misc

  • IModMasterStyled defined
  • Implementation of ModInstantiator for disposable getters
  • DataRelativePath struct to help standardize paths to the data folder
  • ModHeaderFrame.FromStream should not dispose
  • IHaveVirtualMachineAdapter aspect interface setters, implement major record
  • MasterStyle enum moved to Kernel
  • Improvements for Record Count exporting #544
  • Script entries throw if they're short circuiting due to no name, but have properties
  • Improved break handling for byte arrays
  • Improved printing of UnmappableFormIDException
  • Few remaining Light -> Small renames
  • RecordCollisionException improved to print ModKey involved
  • Fix for DeepCopy not setting ModKey when copying a mod object

0.45.1

06 Aug 07:00
Compare
Choose a tag to compare
  • Fixes for duplicate masters in mod headers after Starfield master system update
  • Fix for BinaryWriteBuilder misusing given load order

0.45

22 Jul 03:53
Compare
Choose a tag to compare
  • Create and Write builder mechanics added (docs pending)
  • Added some more TryResolve overloads to better consume target type (#519)
  • GameCategory.ToModRegistration moved to Core
  • Added Remove /w IFormLinkIdentifier overloads
  • ParsingBundle now requires ModKey
  • Optional parameter during parsing to throw when unknown subrecords are encountered
  • ModInstantiator.ImportGetter/ImportSetter
  • RecordCompactionCompatibilityDetector to help assess if mods can be Small/Medium masters
  • AssociatedFilesLocator, which helps find associated strings/archive files of specific plugins
  • ModFilesMover. Call which will move/copy a mod, and replace all associated files when moving a plugin, such as strings/archives.
  • GameConstants now list:
  • DefaultModHeaderVersion
  • DefaultHighRangeFormID
  • UseLowerRangeFormIDVersion
  • SeparateMasterLoadOrders
  • IMod now contains:
  • IsMaster
  • CanBeSmallMaster
  • IsSmallMaster
  • CanBeMediumMaster
  • IsMediumMaster
  • IModFlags added to expose just flag variables of IMod
  • IReadOnlyMasterReferenceCollection.GetFormID removed. TryGetIndex added.
  • MagicEffectArchetype's AssociationKey swapped from FormKey type to IFormLinkIdentifier
  • Binary[Write/Read]Parameters and StringsReadParameters made readonly record
  • SeparateMasterPackage introduced. Supports Starfield style separated master concepts, unlike MasterReferenceCollection
  • ToFormLinkInformation no longer marked obsolete
  • FormID.ModIndex removed. Other refactors related to Small/Medium master support
  • Disabled Form Key UI Pickers ability to lookup via FormID. Needs to be reimplemented with Starfield concepts
  • Group.AddReturn record convenience call
  • Some Overridden Forms support work (currently still disabled)
  • Improvements for handling unknown conditions
  • MutagenEncodingProvider override constructor
  • Added missing RecordCollisionException in certain group parsing logic
  • ModListing scope loosened to IModKeyed
  • Removed BinaryWriteParameters.MasterFlag desync functionality (Mod flags often disagree with their file suffix)
  • ResolveAllModsExist on ModListing enumerables
  • ModHeaderFrame improvements
  • FromPath/FromStream ctors
  • MasterStyle member
  • LoadOrder.Import now sets load order on mods being imported

Archives

  • Ba2 version 8 support
  • Archive.GetApplicableArchivePaths improvement for when ini is missing
  • Version uint exposed in Ba2Reader

Fallout4

  • Ba2 version 8 support
  • Race MLSI made into a normal MorphValuesLastIndex field

Skyrim

  • Skyrim Quest NextAliasID swapped to be a normal field instead of a logic heavy derivative field

Starfield

  • Utilizes new separated load order master concepts to better export indices when referencing small/medium masters
  • Record definition updates/fixes
  • Registered implicit mods