ReaperAnon / True-Unleveled-Skyrim

A dynamically generated mod to unlevel your game in a highly compatible way.
15 stars 7 forks source link

Can't Run This With Elden Rim #7

Closed BooLTonian closed 6 months ago

BooLTonian commented 6 months ago

When I run this patcher with EldenRim, it fails, seemingly in relation to the perks. (Elden Rim: https://www.nexusmods.com/skyrimspecialedition/mods/65625)

I am running the base module, and the weapon arts module. I am using the current versions of these modules. I tried adding the EditorIDs of all of the perks in the plugins that are part of Elden Rim to excludedPerks.json to no avail. I added the EditorIDs of every perk I could see in xEdit as they were written, including the offending ES_SkillPerk1 seen below. I followed the pattern set forth in the array, wherein each element was seperated by a comma, a linebreak, then 4 spaces, and I put each element's name in quoutes. I do not think any of my EditorIDs had special characters which would require character escapes. I did not put a comma after the final element.

I cannot simply remove the offending plugin while running the patch, as I have other plugins which do not have EldenSkyrim as a master, but require it according to another synthesis patch (MortalEnemies) I am attempting to apply. The error message I get does not tell me which plugin, so I would have to brute-force about 250 plugins to find which.

I'm not making this issue with direct idea in my mind that this is a bug, just that I need some assistance with using this patch correctly, or a workaround to run it on my game. Any help would be appreciated.

Exception received when attempting:

SubrecordException EldenSkyrim_RimSkills.esp => ES_SkillPerk1 (000B94:EldenSkyrim_RimSkills.esp<Perk>) => PRKE: PerkEntryPointModifyActorValue did not have expected parameter type flag: 1 Mutagen.Bethesda.Plugins.Exceptions.MalformedDataException: PerkEntryPointModifyActorValue did not have expected parameter type flag: 1
   at Mutagen.Bethesda.Skyrim.PerkBinaryCreateTranslation.ParseEffects(IMutagenReadStream stream)+MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Mutagen.Bethesda.Skyrim.PerkBinaryOverlay.FillRecordType(OverlayStream stream, Int32 finalPos, Int32 offset, RecordType type, PreviousParse lastParsed, Dictionary`2 recordParseCount, TypedParseParams translationParams)
   at Mutagen.Bethesda.Plugins.Binary.Overlay.PluginBinaryOverlay.FillSubrecordTypes(OverlayStream stream, Int32 finalPos, Int32 offset, TypedParseParams translationParams, RecordTypeFillWrapper fill)   at Mutagen.Bethesda.Skyrim.SkyrimModMixIn.<>c__DisplayClass19_0`1.<EnumerateMajorRecords>b__1(Exception e)
   at Noggog.EnumerableExt.Catch[T](IEnumerable`1 e, Action`1 onException)+MoveNext() in D:\a\CSharpExt\CSharpExt\Noggog.CSharpExt\Extensions\EnumerableExt.cs:line 299
   at Mutagen.Bethesda.OverrideMixIns.WinningOverrides[TMajor](IEnumerable`1 mods, Boolean includeDeletedRecords)+MoveNext()
   at System.Linq.Enumerable.WhereEnumerableIterator`1.MoveNext()
   at TrueUnleveledSkyrim.Patch.NPCsPatcher.DisableExtraDamagePerks(IPatcherState`2 state) in C:\Users\legon\AppData\Local\Temp\Synthesis\qc5symfg.ivy\Git\20lii2ru.2hh\Runner\TrueUnleveledSkyrim\Patch\NPCs.cs:line 410
   at TrueUnleveledSkyrim.Patch.NPCsPatcher.PatchNPCs(IPatcherState`2 state) in C:\Users\legon\AppData\Local\Temp\Synthesis\qc5symfg.ivy\Git\20lii2ru.2hh\Runner\TrueUnleveledSkyrim\Patch\NPCs.cs:line 937
   at TrueUnleveledSkyrim.Patcher.RunPatch(IPatcherState`2 state) in C:\Users\legon\AppData\Local\Temp\Synthesis\qc5symfg.ivy\Git\20lii2ru.2hh\Runner\TrueUnleveledSkyrim\Program.cs:line 46
   at Mutagen.Bethesda.Synthesis.SynthesisPipeline.<>c__DisplayClass16_0`2.<<AddPatch>b__0>d.MoveNext() in D:\a\Synthesis\Synthesis\Mutagen.Bethesda.Synthesis\Pipeline\SynthesisPipeline.cs:line 106
--- End of stack trace from previous location ---
   at Mutagen.Bethesda.Synthesis.SynthesisPipeline.Run(RunSynthesisMutagenPatcher args, Nullable`1 exportKey, IFileSystem fileSystem) in D:\a\Synthesis\Synthesis\Mutagen.Bethesda.Synthesis\Pipeline\SynthesisPipeline.cs:line 631
   at Mutagen.Bethesda.Synthesis.SynthesisPipeline.<>c__DisplayClass45_0.<<Run>b__0>d.MoveNext() in D:\a\Synthesis\Synthesis\Mutagen.Bethesda.Synthesis\Pipeline\SynthesisPipeline.cs:line 496
--- End of stack trace from previous location ---
   at Mutagen.Bethesda.Synthesis.SynthesisPipeline.HandleOnShutdown(Func`1 a) in D:\a\Synthesis\Synthesis\Mutagen.Bethesda.Synthesis\Pipeline\SynthesisPipeline.cs:line 881
   at Mutagen.Bethesda.Synthesis.SynthesisPipeline.Run(RunSynthesisMutagenPatcher args, IFileSystem fileSystem) in D:\a\Synthesis\Synthesis\Mutagen.Bethesda.Synthesis\Pipeline\SynthesisPipeline.cs:line 484
   at Mutagen.Bethesda.Synthesis.SynthesisPipeline.<>c__DisplayClass44_0.<<InternalRun>b__1>d.MoveNext() in D:\a\Synthesis\Synthesis\Mutagen.Bethesda.Synthesis\Pipeline\SynthesisPipeline.cs:line 456
ReaperAnon commented 6 months ago

The exception file doesn't work because it's not meant for that, it just excludes those perks from the functions of the mod.

It's not crashing on the patcher's functionality, it's Mutagen itself throwing an error because something is wrong with the format of the plugin. I heard there's a new plugin format that Bethesda shoved in everyone's faces, which the older version of Mutagen (which this is based on) would likely not be able to process.

Try setting the versioning of the patcher to "Latest" instead of "Match" and that should solve it if Mutagen was updated (most likely). There's also an option for every group when you click the name I believe that lets you add certain plugins as exceptions to not be considered for that group of patchers, might wanna try that as well.

BooLTonian commented 6 months ago

It worked upon disabling every file that mentions elden rim. Setting Mutagen and Synthesis to Latest instead of Match didn't do anything because they haven't updated yet. This patch matches to the current version.

I don't think this is related to the new format, though, because I was having this exact same issue with a version of each Elden Rim I got in October. Versions Base-beta2.8.23 and Weapon Arts - beta1.4.3. I only updated before submitting this issue to ensure this wasn't an issue that doesn't exist in newer versions of Elden Rim.

This new plugin format I believe is a change they released on Dec. 5 which allows esls to go up to 4096 records as opposed to the prior 1024 limit. I'm using a version of Skyrim I backed up from before that update.

ReaperAnon commented 6 months ago

Guess it was just Elden Rim then. Glad it works.