Releases: Mutagen-Modding/Mutagen
Releases · Mutagen-Modding/Mutagen
0.48.1
0.48.0
0.47.4
Starfield
- Fix for Race ctor
Oblivion
- Improved parsing malformed Oblivion string lists
General
ModCompaction
andRecordCompactionCompatibilityDetection
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
0.47.1
0.47
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
0.46
- 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
0.45
- 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