Giter Club home page Giter Club logo

npcprotector's Introduction

NpcProtector

Synthesis Patcher to flag named Skyrim NPCs as protected

Inspiration

This patcher was inspired by Protect your People - PyP - Better NPC Protection SE it flags the same NPCs as protected as the Legacy version of this mod, I might add Cutting Room Floor NPCs in the future, but I don't use that mod myself.

How it works

The patcher has a simple list of EditorIDs of all named NPCs that should be flagged as protected. During patching, it goes through all NPCs and checks if they are in the list and if they are not already flagged as essential or protected, then it copies the record and adds the protected flag to the NPC.

Expansion

If you want to add NPCs, you have to add them to the source code at the moment, in the future, I hope to extract them to a separate file that users can easily modify, that is if I can be bothered since I am lazy.

npcprotector's People

Contributors

alsa64 avatar mrudat avatar stevetownsend avatar theskyses avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

npcprotector's Issues

Not working and I don't know why.

Compiling
No extra data to consider.
(C:\Users\Gaming-1\AppData\Local\Temp\Synthesis\00vcppbq.zro\Git\5dlqdxzd.rd5\Runner\NpcProtector): dotnet build --runtime win-x64 "NpcProtector.csproj" -c Release
Compiled
Sha dcc7d08
(): dotnet run --project "C:\Users\Gaming-1\AppData\Local\Temp\Synthesis\00vcppbq.zro\Git\5dlqdxzd.rd5\Runner\NpcProtector\NpcProtector.csproj" -c Release --runtime win-x64 --no-build check-runnability --DataFolderPath "C:\Program Files (x86)\Steam\steamapps\common\Skyrim Special Edition\Data" --GameRelease SkyrimSE --LoadOrderFilePath C:\Users\Gaming-1\AppData\Local\Temp\Synthesis\00vcppbq.zro\Workspace\Plugins.txt
Running
(): dotnet run --project "C:\Users\Gaming-1\AppData\Local\Temp\Synthesis\00vcppbq.zro\Git\5dlqdxzd.rd5\Runner\NpcProtector\NpcProtector.csproj" --runtime win-x64 --no-build -c Release run-patcher --DataFolderPath "C:\Program Files (x86)\Steam\steamapps\common\Skyrim Special Edition\Data" --ExtraDataFolder "C:\Users\Gaming-1\Documents\My Games\Synthesis\Data\NpcProtector" --GameRelease SkyrimSE --LoadOrderFilePath C:\Users\Gaming-1\AppData\Local\Temp\Synthesis\00vcppbq.zro\Workspace\Plugins.txt --OutputPath "C:\Users\Gaming-1\AppData\Local\Temp\Synthesis\00vcppbq.zro\Workspace\0 - NpcProtector" --PatcherName NpcProtector --PersistencePath C:\Users\Gaming-1\AppData\Local\Temp\Synthesis\00vcppbq.zro\Persistence
Mutagen version: 0.32
Mutagen sha: b9ecd83527de2313df5b1e1b33fab451c4df28b3
Synthesis version: 0.19.4
Synthesis sha: 35e30ef2f0373de308999718f7d55ca10ad8a859
run-patcher --DataFolderPath "C:\Program Files (x86)\Steam\steamapps\common\Skyrim Special Edition\Data" --ExtraDataFolder "C:\Users\Gaming-1\Documents\My Games\Synthesis\Data\NpcProtector" --GameRelease SkyrimSE --LoadOrderFilePath C:\Users\Gaming-1\AppData\Local\Temp\Synthesis\00vcppbq.zro\Workspace\Plugins.txt --OutputPath "C:\Users\Gaming-1\AppData\Local\Temp\Synthesis\00vcppbq.zro\Workspace\0 - NpcProtector" --PatcherName NpcProtector --PersistencePath C:\Users\Gaming-1\AppData\Local\Temp\Synthesis\00vcppbq.zro\Persistence
Prepping state.
Using TextFileSharedFormKeyAllocator allocator
[INFO] [Processing] "Safia" will be flagged as Protected.
[INFO] [Processing] "EvetteSan" will be flagged as Protected.
[INFO] [Processing] "Freir" will be flagged as Protected.
[INFO] [Processing] "Fridrika" will be flagged as Protected.
[INFO] [Processing] "Greta" will be flagged as Protected.
[INFO] [Processing] "Guthrum" will be flagged as Protected.
[INFO] [Processing] "IngeSixFingers" will be flagged as Protected.
[INFO] [Processing] "Jala" will be flagged as Protected.
[INFO] [Processing] "Katla" will be flagged as Protected.
[INFO] [Processing] "Mazaka" will be flagged as Protected.
[INFO] [Processing] "Sayma" will be flagged as Protected.
[INFO] [Processing] "PanteaAteia" will be flagged as Protected.
[INFO] [Processing] "SybilleStentor" will be flagged as Protected.
[INFO] [Processing] "Marise" will be flagged as Protected.
[INFO] [Processing] "Dirge" will be flagged as Protected.
[INFO] [Processing] "Niluva" will be flagged as Protected.
[INFO] [Processing] "Nura" will be flagged as Protected.
[INFO] [Processing] "Wujeeta" will be flagged as Protected.
[INFO] [Processing] "Cedran" will be flagged as Protected.
[INFO] [Processing] "Degaine" will be flagged as Protected.
[INFO] [Processing] "Ennoc" will be flagged as Protected.
[INFO] [Processing] "Frabbi" will be flagged as Protected.
[INFO] [Processing] "GhorzaGraBagol" will be flagged as Protected.
[INFO] [Processing] "Hathrasil" will be flagged as Protected.
[INFO] [Processing] "Hreinn" will be flagged as Protected.
[INFO] [Processing] "Hroki" will be flagged as Protected.
[INFO] [Processing] "Kleppr" will be flagged as Protected.
[INFO] [Processing] "Lisbet" will be flagged as Protected.
[INFO] [Processing] "Omluag" will be flagged as Protected.
[INFO] [Processing] "PavoAttius" will be flagged as Protected.
[INFO] [Processing] "Rhiada" will be flagged as Protected.
[INFO] [Processing] "Rogatus" will be flagged as Protected.
[INFO] [Processing] "Rondach" will be flagged as Protected.
[INFO] [Processing] "Skaggi" will be flagged as Protected.
[INFO] [Processing] "Sosia" will be flagged as Protected.
[INFO] [Processing] "Vigdis" will be flagged as Protected.
[INFO] [Processing] "Voada" will be flagged as Protected.
[INFO] [Processing] "Orgnar" will be flagged as Protected.
[INFO] [Processing] "LucanValerius" will be flagged as Protected.
[INFO] [Processing] "CamillaValerius" will be flagged as Protected.
RecordException => CamillaValerius (01347B:Skyrim.esm): Specified argument was out of the range of valid values. (Parameter 'length') System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. (Parameter 'length')
at Mutagen.Bethesda.Skyrim.Internals.NpcBinaryOverlay.get_NAM5()
at Mutagen.Bethesda.Skyrim.Internals.NpcSetterTranslationCommon.DeepCopyIn(INpc item, INpcGetter rhs, ErrorMaskBuilder errorMask, TranslationCrystal copyMask, Boolean deepCopy)
at Mutagen.Bethesda.Skyrim.Internals.NpcSetterTranslationCommon.DeepCopyIn(IMajorRecord item, IMajorRecordGetter rhs, ErrorMaskBuilder errorMask, TranslationCrystal copyMask, Boolean deepCopy)
at Mutagen.Bethesda.Plugins.Records.Internals.MajorRecordSetterTranslationCommon.DeepCopyIn(IMajorRecordInternal item, IMajorRecordGetter rhs, ErrorMaskBuilder errorMask, TranslationCrystal copyMask, Boolean deepCopy)
at Mutagen.Bethesda.Skyrim.Internals.SkyrimMajorRecordSetterTranslationCommon.DeepCopyIn(ISkyrimMajorRecordInternal item, ISkyrimMajorRecordGetter rhs, ErrorMaskBuilder errorMask, TranslationCrystal copyMask, Boolean deepCopy)
at Mutagen.Bethesda.Skyrim.Internals.NpcSetterTranslationCommon.DeepCopyIn(INpcInternal item, INpcGetter rhs, ErrorMaskBuilder errorMask, TranslationCrystal copyMask, Boolean deepCopy)
at Mutagen.Bethesda.Skyrim.Internals.NpcSetterTranslationCommon.DeepCopyIn(IMajorRecordInternal item, IMajorRecordGetter rhs, ErrorMaskBuilder errorMask, TranslationCrystal copyMask, Boolean deepCopy)
at Mutagen.Bethesda.Plugins.Records.Internals.MajorRecordSetterTranslationCommon.DeepCopy(IMajorRecordGetter item, TranslationMask copyMask)
at Mutagen.Bethesda.Plugins.Records.MajorRecordMixIn.DeepCopy(IMajorRecordGetter item, TranslationMask copyMask)
at Mutagen.Bethesda.OverrideMixIns.GetOrAddAsOverride[TMajor,TMajorGetter](IGroupCommon1 group, TMajorGetter major) at Mutagen.Bethesda.OverrideMixIns.GetOrAddAsOverride[TMajor,TMajorGetter](IGroupCommon1 group, TMajorGetter major)
at NpcProtector.Program.RunPatch(IPatcherState2 state) in C:\Users\Gaming-1\AppData\Local\Temp\Synthesis\00vcppbq.zro\Git\5dlqdxzd.rd5\Runner\NpcProtector\Program.cs:line 868 at Mutagen.Bethesda.Synthesis.SynthesisPipeline.<>c__DisplayClass12_02.<b__0>d.MoveNext() in D:\a\Synthesis\Synthesis\Mutagen.Bethesda.Synthesis\SynthesisPipeline.cs:line 94
--- End of stack trace from previous location ---
at Mutagen.Bethesda.Synthesis.SynthesisPipeline.Run(RunSynthesisMutagenPatcher args, ModKey exportKey) in D:\a\Synthesis\Synthesis\Mutagen.Bethesda.Synthesis\SynthesisPipeline.cs:line 456
at Mutagen.Bethesda.Synthesis.SynthesisPipeline.Run(RunSynthesisMutagenPatcher args) in D:\a\Synthesis\Synthesis\Mutagen.Bethesda.Synthesis\SynthesisPipeline.cs:line 404
at Mutagen.Bethesda.Synthesis.SynthesisPipeline.<>c__DisplayClass36_0.<b__1>d.MoveNext() in D:\a\Synthesis\Synthesis\Mutagen.Bethesda.Synthesis\SynthesisPipeline.cs:line 378
Synthesis.Bethesda.Execution.CliUnsuccessfulRunException: Error running solution patcher
at Synthesis.Bethesda.Execution.Patchers.SolutionPatcherRun.Run(RunSynthesisPatcher settings, CancellationToken cancel)
at Synthesis.Bethesda.Execution.Runner.Run[TKey](String workingDirectory, ModPath outputPath, String dataFolder, IEnumerable1 loadOrder, GameRelease release, IEnumerable1 patchers, IRunReporter`1 reporter, CancellationToken cancellation, ModPath sourcePath, PersistenceMode persistenceMode, String persistencePath)

Adding new NPCs

Hallo alsa64,

Ich würde mich freuen, wenn es die Möglichkeit gäbe Einstellungen zu machen, welche weiteren NPCs geschützt werden sollen. Danke im Voraus

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.