Frippian Posted May 18, 2017 Share Posted May 18, 2017 Hello, As the title suggests, I am searching for a way to remove every single NPC from Oblivion. I am aware that this may create the most unenjoyable experience of oblivion that might be imagined, but, I still want to do it. I am writing this post to find out if there is some simple solution to my problem, a difficult one, or if it is impossible. I have NEVER used the Oblivion construction set, but I'm going to look and consider my options. I really don't mind monotony, so I'm willing to delete each NPC, human or otherwise, individually, if that is the only option. Thank you. Link to comment Share on other sites More sharing options...
Oblivionaddicted Posted May 18, 2017 Share Posted May 18, 2017 Delete them in the CS or in their cells. Link to comment Share on other sites More sharing options...
Frippian Posted May 18, 2017 Author Share Posted May 18, 2017 Delete them in the CS or in their cells.Right, I did that, directly after having written this post. My procedure was to simply select open the oblivion.esm, kotn .esp and theshiveringisles esp, and then from the window with the objects in it, select all actors in both the NPC and Creature subclasses. Having done that, saved the .esp. The game crashes at the load screen before the title. Chances are, I'm missing something simple. Thank you, Oblivion Addicted! Link to comment Share on other sites More sharing options...
Striker879 Posted May 18, 2017 Share Posted May 18, 2017 The game is hardwired to end when/if Martin dies ... could be that deleted is the same as dead to the game engine. Link to comment Share on other sites More sharing options...
Frippian Posted May 18, 2017 Author Share Posted May 18, 2017 The game is hardwired to end when/if Martin dies ... could be that deleted is the same as dead to the game engine.I suppose it could be that, but the game crashes to desktop from the initial load screen, without so much as moving the load bar one iota. I had thought it might be because I deleted the player character, but having undone that and still failing, I'm stumped. Link to comment Share on other sites More sharing options...
Striker879 Posted May 18, 2017 Share Posted May 18, 2017 One of the things that TES4Edit fixes when cleaning mods is deleted vanilla objects (the UDR part of UDR/ITM ... stands for Un-Delete & Restore if I'm not mistaken). The game doesn't like it when it's assets are deleted I guess. What happens if you set Initially Disabled to those NPCs/creatures (I'd start with someone other than Martin myself) instead of deleting? Link to comment Share on other sites More sharing options...
Frippian Posted May 18, 2017 Author Share Posted May 18, 2017 One of the things that TES4Edit fixes when cleaning mods is deleted vanilla objects (the UDR part of UDR/ITM ... stands for Un-Delete & Restore if I'm not mistaken). The game doesn't like it when it's assets are deleted I guess. What happens if you set Initially Disabled to those NPCs/creatures (I'd start with someone other than Martin myself) instead of deleting?Initially disabled, eh? There is something I'll need to look in to... I wonder if there is a batch action I might be able to perform. Either way, if what you suggest works, I'll do 'em one by one if necessary... with the exception of Martin, as you say, at least until the last. Here is to hoping. Link to comment Share on other sites More sharing options...
Surilindur Posted May 19, 2017 Share Posted May 19, 2017 (edited) It might also be possible to write some scripts script to dynamically disable all NPCs, even from mods and other spawns. A sort of automated way to do things on-the-fly in-game. But I think it might still have some issues with breaking quests and other game-breaking oddities and all sorts of other unwelcome surprises. Especially if an NPC has an enable parent. If I remember correctly, a reference with an enable parent cannot be disabled (at least not using the console) and requires the enable parent to be disabled or disconnected. I am not exactly sure, though, I need to test it first. But it should be possible to write a script to dynamically disable all NPCs, but it can cause issues and will break things. I can try writing something later today. Also, if I have understood it correctly (which sometimes happens, most of the time not), the things to disable would be the references, not the base objects. The base objects (I think that was what they were called) are the ones in the object window lists, I think, and they are a bit like blueprints. References are actual instances of those objects, placed in the gameworld, sort of physical objects built using those blueprints (like an instance of a base Martin Septim: one Martin Septim constructed using the Martin Septim blueprints and placed in the Cloud Ruler Temple, or elsewhere). Removing the 'blueprints' could break something, if/when other mods need them, one way or the other. The same goes for the references in the gameworld - deleting them could cause issues (crashes) when something needs to somehow access that reference but it is nowhere to be found (deleted by a mod that was loaded earlier?). Maybe. Something like that... ? But disabling the references in the gameworld (so that they still are there, but disabled, and therefore invisible) might definitely be a better option? From what I have noticed, that would seem to be the idea behind disabling things, to make them unnoticeable to the player while still keeping them there when something else needs them? Anyone feel free to correct me, I seem to be making a lot more false assumptions and other mistakes than usual. :blush: Edit: It seems to be possible to write a small script to dynamically disable NPCs. It works, and disabled NPCs, but it is not really smooth in any way and I do not think it would be much better than manually disabling everything. At least not using the functions to get actors, as the actors apparently need to be close enough to get registered? Also some actors in low level AI processing do not seem to get disabled. If someone finds it useful, the function is below (more of a test, nothing final, and definitely nothing anyone should use, but an idea): scriptname NPCDisablerFunctionScript ref TempRef array_var Actor array_var ActorList array_var TempArr array_var RefChain begin _Function {} foreach ActorList <- ( ar_Map "high"::( GetHighActors ), "middle-high"::( GetMiddleHighActors ) ) ; , "low"::( GetLowActors ) ) <-- had some issues foreach Actor <- ActorList["value"] let TempRef := Actor["value"] if eval ( TempRef.GetDisabled ) continue endif PrintToConsole "NPCD: level (" + $( ActorList["key"] ) + "), actor (%n, %i)" TempRef TempRef let RefChain := ar_List TempRef let TempRef := TempRef.GetParentRef while ( TempRef ) ar_Insert RefChain 0 TempRef let TempRef := TempRef.GetParentRef loop foreach TempArr <- RefChain let TempRef := TempArr["value"] if ( TempRef.IsActor ) TempRef.SetActorsAI 0 endif TempRef.Disable PrintToConsole "NPCD: disabled %i" TempRef loop loop loop let RefChain := ar_Null let ActorList := ar_Null end Edited May 19, 2017 by Contrathetix Link to comment Share on other sites More sharing options...
Frippian Posted May 26, 2017 Author Share Posted May 26, 2017 (edited) Contrathetix, Thank you very much for your time spent writing that response, and the time writing the script. I'm greatful that you took time to do all of that, but unfortunately, my compute required a complete reset, and not having backed up most of my files of lesser import, oblivion, and all my mod files were deleted. When I get the time, I'll have to reinstall, and attempt as you suggest, which really does make a lot of sense. When I would delete the base object, a window appeared asking if I wanted to delete the instances of that object, so I would imagine that you are right, and I need to delete the instances of the objects, not the blueprints. I totally should have thought of that! Thank you again, Contrathetix, and Striker879, Oblivion Addictted. Very kind of you all! Edited May 26, 2017 by Frippian Link to comment Share on other sites More sharing options...
Recommended Posts