Jump to content

How to clear npcs from a vanilla location?


miriamsrg

Recommended Posts

I want to redo some of the vanilla locations from the ground up, but I can't figure out how to fully get rid of npcs when disabling/deleting them. They don't appear if I start from a new save, but if I load a save where I've already been to these locations they still show up. Am I doing something wrong or is it just not possible to 'clean' a vanilla area?

Link to comment
Share on other sites

If the NPCs aren't there when you start a new game then you've done it correctly.

 

If you have already been to that location then the NPC's current disable state will be in your save file. While in-game you can open the console and click on each NPC and type "disable" (without the quotes) to disable them in your current save.

Link to comment
Share on other sites

If the NPCs aren't there when you start a new game then you've done it correctly.

 

If you have already been to that location then the NPC's current disable state will be in your save file. While in-game you can open the console and click on each NPC and type "disable" (without the quotes) to disable them in your current save.

my problem is that i don't want starting a new game to be a requirement in order to play this mod properly. Is there a way to guarantee vanilla npcs are gone from an area for people playing from a save in the middle/towards the end of the game?

Edited by miriamsrg
Link to comment
Share on other sites

Create a dummy quest with nothing in it except a quest script to delete the NPCs that you want to delete. Make sure to check the box in the quest to have it start enabled.

 

The quest script will look something like this:

 

scn MyNPCDisableQuestScript

int MyNPCDisableQuestStartupDone

begin GameMode
if MyNPCDisableQuestStartupDone != 1
NPC1REF.disable
NPC2REF.disable
NPC3REF.disable
NPC4REF.disable
NPC5REF.disable

set MyNPCDisableQuestStartupDone to 1
StopQuest MyNPCDisableQuest
endif
end

 

Obviously, replace NPC1REF, etc. with the actual ref IDs of the NPCs you want to disable, and change MyNPCDisableQuest to match your actual quest name.

Edited by madmongo
Link to comment
Share on other sites

Create a dummy quest with nothing in it except a quest script to delete the NPCs that you want to delete. Make sure to check the box in the quest to have it start enabled.

 

The quest script will look something like this:

 

scn MyNPCDisableQuestScript

 

int MyNPCDisableQuestStartupDone

 

begin GameMode

if MyNPCDisableQuestStartupDone != 1

NPC1REF.disable

NPC2REF.disable

NPC3REF.disable

NPC4REF.disable

NPC5REF.disable

set MyNPCDisableQuestStartupDone to 1

StopQuest MyNPCDisableQuest

endif

end

 

Obviously, replace NPC1REF, etc. with the actual ref IDs of the NPCs you want to disable, and change MyNPCDisableQuest to match your actual quest name.

so i did this for the basic npcs and it worked but not for the ones spawned in random encounters, specifically the freeside thugs. they keep spawning in when i walk into their trigger, even when i disable it and them with this script. what could i be doing wrong? and thanks for the help so far

Edited by miriamsrg
Link to comment
Share on other sites

That is a tuff one to stop spawning , but your script could disable them once they spawn.

A good project for you to learn how to do some research.

Get their IDs with the console for example , then use them in geck.

Link to comment
Share on other sites

That is a tuff one to stop spawning , but your script could disable them once they spawn.

A good project for you to learn how to do some research.

Get their IDs with the console for example , then use them in geck.

what exactly am i looking for? i tried using the freeside thugs base object id, but the script wouldnt compile. the only id that worked in the script was the reference editor id but that didnt actually make them despawn

Edited by miriamsrg
Link to comment
Share on other sites

 

That is a tuff one to stop spawning , but your script could disable them once they spawn.

A good project for you to learn how to do some research.

Get their IDs with the console for example , then use them in geck.

what exactly am i looking for? i tried using the freeside thugs base object id, but the script wouldnt compile. the only id that worked in the script was the reference editor id but that didnt actually make them despawn

 

 

You have to disable them after they were enabled.

So scripting would look like this ...

 

If MyRef.GetDisabled == 0

MyRef.Disable

 

And if it is a continuous spawn , then you need the script to always run. Or you might just want to track down the script that spawns them. Use the Edit / Find Text tool from the header drop down with their IDs.

Link to comment
Share on other sites

 

 

That is a tuff one to stop spawning , but your script could disable them once they spawn.

A good project for you to learn how to do some research.

Get their IDs with the console for example , then use them in geck.

what exactly am i looking for? i tried using the freeside thugs base object id, but the script wouldnt compile. the only id that worked in the script was the reference editor id but that didnt actually make them despawn

 

 

You have to disable them after they were enabled.

So scripting would look like this ...

 

If MyRef.GetDisabled == 0

MyRef.Disable

 

And if it is a continuous spawn , then you need the script to always run. Or you might just want to track down the script that spawns them. Use the Edit / Find Text tool from the header drop down with their IDs.

 

the only id that lets me disable them is the one that shows up next to a specific thugs name when clicking on them in the console (ff00134e for example), but i cant use this id in the script. they dont have references in the render window like other npcs, just x markers that spawn a randomized thug. the script that spawns them uses VFSFreesideThugRandom and using any of the form ids from that list doesnt work either. is it somehow possible to make the id that shows up next to their name in the console work in a script?

Link to comment
Share on other sites

The ID you're seeing is the reference spawned at runtime. What you want to do is edit the script that's spawning them. Right-click the xmarkers -> Use Info...

 

That'll tell you what is utilizing those xmarkers.

Edited by FiftyTifty
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...