MySModAlice Posted July 16 Posted July 16 (edited) Hello! I am building a mod that I would ideally want to work equally on NG and OG. As soon as I add a unique persistent NPC to a location (or even a custom cell) the creation kit decides to create some data that overrides vanilla records, that cause problems, specifically: For Instance I don't understand who these extensive edits. I add NPCs to that location fine , I understand that that location now holds a new reference, and needs to be updated, that is fine, but why does the CK also alter almost all vanilla records of that thing, moving entries for one category to another, messing a lot of thigs up. I would expect those added record to just add my extra NPC in an additive manner in a few spots. Not mess up all the other vanilla records to the extent it does? It is normal that my new NPC to be added to ActorCellPersistent Reference. Also normal for ActorCell Unique to also have my new NPC. But why oh why all the those vanilla records in Location Cell Persistent reference are deleted? And why do I find them in my mod, slightly modified, moved to an entire different section (Actor Cell Static Reference) I did not ask for such thing (not consciously anyway). Similarly records from LCSR in the vanilla game, are now moved over to ACSR Record from LCID (Location Cell Marker reference) are deleted from LCID section and some of them now appear in ACID (Actor Cell Marker reference section) And not even all of them make it over, from 9 in the vanilla game, now there are only 5.?! Creation kit 1.10.162.0 Can someone help me understand why this happens ? At first I thought " Well the Creation Kit must know why it is doing why it is doing, I should just trust...." but if I leave it like this, all of this this actually messes with the vanilla story, and some quests in the vanilla story just no longer work right. I had to manually go in xEdit delete all the new echoed /generated location records from my mod (that the creation kit created), so that the original/vanilla ones were the ones who would endure. Then and only then did in-game experience reverted to normal (except that naturally now I get warnings that my mod specific NPCs are in the location but cannot be found in the reference unload data, and the the unique actor data all in all, a legitimate error- but I can't really add them there, because as soon as I do remove and re-add the npc so that they get added to those lists, the entire location record is also rewritten with all these " mistakes" and that location's vanilla content stops working right. A Carbon copy of the Worldspace record is also created (why, I do not know): Seems identical and entirely unneeded (maybe because I have added a new cell somewhere, but that cell section is separate). I don' t know why it tries to do that. Anyway that is a small problem ( and perhaps easy to fix delete the redundant custom record in xEdit and call it a day) Can someone please help me understand what on Earth is happening and how I can tell the Creation kit to stop messing with the vanilla data, when it is not wanted nor needed, and only add my NPC in an additive manner, and not touch ANYTHING else? I hope the answer is not that the only way to add custom NPCs is to add them to a secret room/custom location and just move them over in vanilla locations manually, via papyrus scripts? Is that really the only way to preserve original location records in a working state? Thank you so much! Edited July 16 by MySModAlice
hereami Posted July 16 Posted July 16 (edited) Regarding WRLD - can set it Partial form. Unfortunately, flag is not suitable for external CELLs overrides. Agreed about ck doing unnecessary and questionable edits, now it appears to even break things? Interesting. Unless there is a "proper" way to handle this actor situation, i would manually fix faulty edits, insert actor in Location where it should be (unique?, persistent?), as you said, and never saved that file in CK again. Spawn actor is good idea too, no world edits at all. Though possibly you lose ability to reference it by id, then should use quest alias or variable. Edited July 16 by hereami 1
Qrsr Posted July 16 Posted July 16 I can confirm it breaks things, remove the locations reference with xEdit. Its probably not correctly implemented into code? Same problems with the Navmesh, whenever your doing edits to the Navmesh, CK hooks the global Navmesh reference, which you dont need and can delete aswell. The game does the location things in real time whenever your gaming already, so just double check with xEdit, if there are no needed overrides such as the map marker reference flag or else, delete the location reference from your plugin. 2
hereami Posted July 16 Posted July 16 (edited) 2 hours ago, MySModAlice said: hope the answer is not that the only way to add custom NPCs is to add them to a secret room/custom location and just move them over in vanilla locations manually Also, why not? This is how some npc are made in game. Zero conflicts/overrides and is more beneficial over spawn, because provides a solid Refr to use in conditions anywhere and probably can be addressed by id as being Unique (i don't know though, if Location affiliation is mandatory and plays any role in accessing Unique npc). Edited July 16 by hereami 1
MySModAlice Posted July 16 Author Posted July 16 (edited) @Qrsr @hereami Thank you for the answers. I feel less like an insane person now. I guess I will create a separate cell with its own location that will hold all my NPCs that I will then move to location markers in the vanilla world via Papyrus scripts. Hopefully, this is just about the actors, and just placing something unassuming like location markers, a trigger, a container, an activator (door /button), or a light does not do the same insanity. Or should I do the same also for most objects I'd place, just place the object then, force delete location records after I've placed any new item in a vanilla location, no matter how unassuming? Or just move them to markers manually too, just like I would do for actors? ( and of course tag ALL those references as persistent) Are the ONLY object types that I may safely place in thevanilla world and not mess up location records, are marker-type objects? And everything else needs to be moved to markers by hand? Now, since if they're originally placed in a different custom cell/location, do you happen to know if I will need to add additional papyrus code to make sure they reload (their 3D models are in memory), after the player leaves for a while, and the vanilla cell where theywere supposed to be, resets, and the player returns? If they are not in that vanilla cell's Unique actor list or reference unload list, I am assuming their loading/unloading is not automatically managed? Or is it on a dynamic layer? Edited July 16 by MySModAlice
hereami Posted July 16 Posted July 16 (edited) Can add entire Cell to NoResetZone, or do that for selected refs, or flag them No Respawn. More on that https://ck.uesp.net/wiki/Cell_Reset . ps. But also, locations like Sanctuary just do not reset. Though interesting, what happens to an "unprotected" Actor when his current residence cell or location resets (if not same as his origin). Edited July 16 by hereami 1
Qrsr Posted July 18 Posted July 18 On 7/16/2025 at 8:12 PM, hereami said: Can add entire Cell to NoResetZone, or do that for selected refs How powerful is the NoResetZone? Im using it too but the research and information for it is a bit rare. Will it override persistent records aswell?
MySModAlice Posted July 18 Author Posted July 18 (edited) Update on additional investigations I have done on the matter., maybe they will be useful to someone. To go back to the basics, and learn more of how or why these extra records are generated / happen, I did a clean test with a brand new esp file, to see what happens, I just placed a static object and a unique NPC in the world, then saved the ESP. That change alone did not prompt the CK to generate any navmesh records and save them in the ESP, just a location record change (with all the strangeness of the category alteration, and ofc the word space change). Then I opened that new esp up in the CK once more, loaded up an existing vanilla interior cell (what's interesting is navmesh warnings started pouring in the CK warning window as I was doing that, complaning how that navmesh of that unedited vanilla interior cell needs to be "re-finalized") and I simply duplicated that vanilla interior cell, and saved the ESP again. Now if Inspect that new ESP in xEdit, suddenly it has all these extraneous record entries in navmesh info, some of the exterior world, that seem to have nothing to do with the vanilla interior cell I opened, nor its fresh clone. I don't know if these extra navmesh info records were specifically the problem that was throwing a wrench in the gears, or the altered location records were part of it too or not, with their data moved from one category to the next. Maybe the navmesh changes were the core of the problem that cause the vanilla quests breaking, and not the location records. Maybe I was blaming the altered location records for no good reason. Yes they are changed, yes data is inexplicably moved from one record category to another, and yes it is madness inducing, but maybe they were serviceable even in that changed state. As there are other modders pointing out that the location records look the saimilarly altered in other mods too, and those work just fine when loaded. Maybe the issue Is and has been from the start, navmesh-specific. Edited July 18 by MySModAlice
hereami Posted July 18 Posted July 18 (edited) 17 hours ago, Qrsr said: How powerful is the NoResetZone? Im using it too but the research and information for it is a bit rare. Will it override persistent records aswell? Probably, everything in Location or Cell. Do you mean if should prevail over inherited zone, when assigned directly to Cell/Ref? Probably should: "If an encounter zone is not explicitly specified, the object will inherit the Encounter Zone of its Cell, if any. ". Not sure what's "powerful". For example, all workshop locations, Institute etc. have Never Resets flag set by their zones, while NoResetZone's single purpose is to provide this flag, so it's working as should. ps. Something i found on GitHub somewhen ago, i think... "That's an important point, so let me restate it: data will be exempt from the Rule of One in every case where Bethesda does not consciously apply the rule. Known examples include various Location (LCTN) subrecords that serve as lists of ObjectReferences in a given Location". Full text is in attachement. how.the.game.loads.forms.txt Edited July 18 by hereami added file and words 1
Recommended Posts