Fighting with an old problem

Post » Sat May 28, 2011 5:25 pm

For weeks I've fought with a major problem I've encountered while trying to build my second Enclave mod. The problem in question deals with conquering the Citadel. When you kill certain NPCs you can order the Enclave to take over the Citadel. Enclave units appear through enable marker and BoS units disappear (you killed them or not).

Some time ago this seemed to work. I recall that I merely disabled the BoS references. However now it doesn't work. While some BoS seem to disappear, some remain and even with console commands I can't get rid of them. Few weeks ago I got a FOSE script from here, but it too was unable to disable the BoS.

The script that handles the disabling, in all its ugliness:
Spoiler
Begin GameMode	if PentagonHostile == 1		Player.RemoveFromFaction BrotherhoodSteelFaction		Player.RemoveFromFaction MQPlayerBOSAllyFaction		SetEnemy BrotherhoodSteelFaction PlayerFaction 0		setEssential DLC03SarahLyons 0		setEssential ElderLyons 0		setessential scriberothchild 0		setessential dlc03bigsley 0		setessential dlc03Tristan 0		Set DLC03BS3.BS3Evil to 2		StarPaladinCrossREF.RemoveFromFaction FollowerFaction		StarPaladinCrossREF.SetFactionRank TeammateFaction -1		set Followers.StarPaladinCrossFired to 1		StarPaladinCrossREF.SetPlayerTeammate 0		showmessage EIPPentagonMSG		set PentagonHostile to 2	endif	if PentagonSecured == 0 && GetDeadCount ElderLyons == 1 && GetDeadCount DLC03SarahLyons == 1 && GetDeadCount ScribeRothchild == 1 && GetDeadCount StarPaladinCross == 1		set PentagonSecured to 1		showmessage EIP02Order	endifif PentagonSecured == 2	EIPCitadelMarker.enable	MQ11ScribeDisableMarker.disable	; disable BoS scribes	ElderLyonsREF.disable	MQ01SarahREF.disable	DLC03SarahREF.disable	ScribeRothchildREF.disable	ScribePeabodyREF.disable	ScribeBowditchREF.disable	scribejamesonref.disable	paladingladeref.disable	paladinkodiakref.disable	knightcaptainduskref.disable	KnightCaptainGallowsREF.disable	SawbonesREF.disable	MQ01ColvinREF.disable	dlc03tristanref.disable	ScribeRef1.disable	ScribeRef2.disable	ScribeRef3.disable	SquireMaxsonREF.disable	CitadelLabPost2REF.disable	CitadelLabPatrolREF.disable	CitadelLabPost01REF.disable	Joeref.disable	Chrisref.disable	KnightArtemisREF.disable	KnightSleepMaleREF.disable	KnightSleepFemaleREF.disable	KnightGeneric2REF.disable	KnightGenericREF.disable	CitadelFlagREF.disable	DLC03ScribeVallincourtREF.disable	; Lab	StarPaladinCrossREF.disable	KnightSergeantDurgaREF.disable	CitadelBrotherhoodInitiate01REF.disable	; Courtyard	FragPracticeRef.disable	KnightExterior1REF.disable	KnightExterior2REF.disable	KnightExterior3REF.disable	ExteriorKnight4REF.disable	PaladinGunnyREF.disable	CitBaileyInitiate05Ref.disable	CitBaileyInitiate04Ref.disable	CitadelBrotherhoodInitiate02REF.disable	BoSInitaite08REF.disable	BoSInitaite07REF.disable	BoSInitaite06REF.disable	CitadelBOSGuardRef1.disable	MQ11BosixteriorGuard01REF.disable	MQ11BosixteriorGuard02REF.disable	GateGuardRef.disable	CitadelSentryBotRef.disable	CitadelLookoutREF.disable	CitadelLookout02REF.disable	CitadelBoSTurret01REF.disable	CitadelBoSTurret02REF.disable		; Marks for Delete	ElderLyonsREF.markfordelete	MQ01SarahREF.markfordelete	DLC03SarahREF.markfordelete	ScribeRothchildREF.markfordelete	ScribePeabodyREF.markfordelete	ScribeBowditchREF.markfordelete	scribejamesonref.markfordelete	paladingladeref.markfordelete	paladinkodiakref.markfordelete	knightcaptainduskref.markfordelete	KnightCaptainGallowsREF.markfordelete	SawbonesREF.markfordelete	MQ01ColvinREF.markfordelete	dlc03tristanref.markfordelete	ScribeRef1.markfordelete	ScribeRef2.markfordelete	ScribeRef3.markfordelete	SquireMaxsonREF.markfordelete	CitadelLabPost2REF.markfordelete	CitadelLabPatrolREF.markfordelete	CitadelLabPost01REF.markfordelete	Joeref.markfordelete	Chrisref.markfordelete	KnightArtemisREF.markfordelete	KnightSleepMaleREF.markfordelete	KnightSleepFemaleREF.markfordelete	KnightGeneric2REF.markfordelete	KnightGenericREF.markfordelete	CitadelFlagREF.markfordelete	DLC03ScribeVallincourtREF.markfordelete	; Lab	StarPaladinCrossREF.markfordelete	KnightSergeantDurgaREF.markfordelete	CitadelBrotherhoodInitiate01REF.markfordelete	; Courtyard	FragPracticeRef.markfordelete	KnightExterior1REF.markfordelete	KnightExterior2REF.markfordelete	KnightExterior3REF.markfordelete	ExteriorKnight4REF.markfordelete	PaladinGunnyREF.markfordelete	CitBaileyInitiate05Ref.markfordelete	CitBaileyInitiate04Ref.markfordelete	CitadelBrotherhoodInitiate02REF.markfordelete	BoSInitaite08REF.markfordelete	BoSInitaite07REF.markfordelete	BoSInitaite06REF.markfordelete	CitadelBOSGuardRef1.markfordelete	MQ11BosixteriorGuard01REF.markfordelete	MQ11BosixteriorGuard02REF.markfordelete	GateGuardRef.markfordelete	CitadelSentryBotRef.markfordelete	CitadelLookoutREF.markfordelete	CitadelLookout02REF.markfordelete	CitadelBoSTurret01REF.markfordelete	CitadelBoSTurret02REF.markfordelete	SetObjectiveCompleted EIPQuest02 10 1	set PentagonSecured to 3endif

End


For reference, here's a similar script for Tenpenny Tower. It works as intended:

Spoiler
;¤¤TENPENNY TOWER¤¤Begin GameMode	if TenpennySecured == 0 && GetDeadCount AllistairTenpenny == 1 && MS12GhoulsDead == 1		set TenpennySecured to 1		showmessage EIP02Order	endif	if TenpennySecured == 2		TenpennyGuardDay5Ref.disable		TenpennyGuardNight5Ref.disable		JoJoRef.disable		TenpennyGuardDay3Ref.disable		TenpennyGuardNight3Ref.disable		TenpennyGuardDay2Ref.disable		TenpennyGuardDay1Ref.disable		TenpennyGuardNight1Ref.disable		EIPTenpennyMarker.enable	SetObjectiveCompleted EIPQuest02 30 1		Set TenpennySecured to 3	EndifEnd


Another problem about the same matter is that my saves become corrupt after triggering the Enclave takeover and disabling of the BoS. Whenever I save next time the game crashes and a .fos.tmp save appears in save folder.

Any clues? I don't want to just enable the Enclave in the Citadel since that would not only leave a truckload of BoS corpses around but also cause lag as there would be 2x the NPCs there normally is in there.
User avatar
Tanika O'Connell
 
Posts: 3412
Joined: Fri Jan 26, 2007 1:34 am

Post » Sat May 28, 2011 1:40 pm

I'm not at home and can't get into the GECK, but recall that Broken Steel made some big changes to the Citadel - including the option of destroying it with the missile strikes. Could things in the Citadel have changed as a result of that by chance?

Also with regards to disabling NPCs - there may be some key NPCs that you don't want out of the game (and that the player could never kill themselves anyway), but this could be a stretch. One potential fix would be to simply teleport the NPCs into a null-spacde room with no exits, so that they still exist (even still inside the Citadel cells), but will be effectively gone. It has to be something your removing or disabling that is crashing it out.

Have you tried running the "Undelete and Disable References" tool in Fo3Edit? You may be accidentally removing something that you don't want to.

Food for thought, I can look at more in the GECK later.

Miax
User avatar
patricia kris
 
Posts: 3348
Joined: Tue Feb 13, 2007 5:49 am

Post » Sat May 28, 2011 10:47 am

For weeks I've fought with a major problem I've encountered while trying to build my second Enclave mod. The problem in question deals with conquering the Citadel. When you kill certain NPCs you can order the Enclave to take over the Citadel. Enclave units appear through enable marker and BoS units disappear (you killed them or not).

Some time ago this seemed to work. I recall that I merely disabled the BoS references. However now it doesn't work. While some BoS seem to disappear, some remain and even with console commands I can't get rid of them. Few weeks ago I got a FOSE script from here, but it too was unable to disable the BoS.

The script that handles the disabling, in all its ugliness:
Spoiler
Begin GameMode	if PentagonHostile == 1		Player.RemoveFromFaction BrotherhoodSteelFaction		Player.RemoveFromFaction MQPlayerBOSAllyFaction		SetEnemy BrotherhoodSteelFaction PlayerFaction 0		setEssential DLC03SarahLyons 0		setEssential ElderLyons 0		setessential scriberothchild 0		setessential dlc03bigsley 0		setessential dlc03Tristan 0		Set DLC03BS3.BS3Evil to 2		StarPaladinCrossREF.RemoveFromFaction FollowerFaction		StarPaladinCrossREF.SetFactionRank TeammateFaction -1		set Followers.StarPaladinCrossFired to 1		StarPaladinCrossREF.SetPlayerTeammate 0		showmessage EIPPentagonMSG		set PentagonHostile to 2	endif	if PentagonSecured == 0 && GetDeadCount ElderLyons == 1 && GetDeadCount DLC03SarahLyons == 1 && GetDeadCount ScribeRothchild == 1 && GetDeadCount StarPaladinCross == 1		set PentagonSecured to 1		showmessage EIP02Order	endifif PentagonSecured == 2	EIPCitadelMarker.enable	MQ11ScribeDisableMarker.disable	; disable BoS scribes	ElderLyonsREF.disable	MQ01SarahREF.disable	DLC03SarahREF.disable	ScribeRothchildREF.disable	ScribePeabodyREF.disable	ScribeBowditchREF.disable	scribejamesonref.disable	paladingladeref.disable	paladinkodiakref.disable	knightcaptainduskref.disable	KnightCaptainGallowsREF.disable	SawbonesREF.disable	MQ01ColvinREF.disable	dlc03tristanref.disable	ScribeRef1.disable	ScribeRef2.disable	ScribeRef3.disable	SquireMaxsonREF.disable	CitadelLabPost2REF.disable	CitadelLabPatrolREF.disable	CitadelLabPost01REF.disable	Joeref.disable	Chrisref.disable	KnightArtemisREF.disable	KnightSleepMaleREF.disable	KnightSleepFemaleREF.disable	KnightGeneric2REF.disable	KnightGenericREF.disable	CitadelFlagREF.disable	DLC03ScribeVallincourtREF.disable	; Lab	StarPaladinCrossREF.disable	KnightSergeantDurgaREF.disable	CitadelBrotherhoodInitiate01REF.disable	; Courtyard	FragPracticeRef.disable	KnightExterior1REF.disable	KnightExterior2REF.disable	KnightExterior3REF.disable	ExteriorKnight4REF.disable	PaladinGunnyREF.disable	CitBaileyInitiate05Ref.disable	CitBaileyInitiate04Ref.disable	CitadelBrotherhoodInitiate02REF.disable	BoSInitaite08REF.disable	BoSInitaite07REF.disable	BoSInitaite06REF.disable	CitadelBOSGuardRef1.disable	MQ11BosixteriorGuard01REF.disable	MQ11BosixteriorGuard02REF.disable	GateGuardRef.disable	CitadelSentryBotRef.disable	CitadelLookoutREF.disable	CitadelLookout02REF.disable	CitadelBoSTurret01REF.disable	CitadelBoSTurret02REF.disable		; Marks for Delete	ElderLyonsREF.markfordelete	MQ01SarahREF.markfordelete	DLC03SarahREF.markfordelete	ScribeRothchildREF.markfordelete	ScribePeabodyREF.markfordelete	ScribeBowditchREF.markfordelete	scribejamesonref.markfordelete	paladingladeref.markfordelete	paladinkodiakref.markfordelete	knightcaptainduskref.markfordelete	KnightCaptainGallowsREF.markfordelete	SawbonesREF.markfordelete	MQ01ColvinREF.markfordelete	dlc03tristanref.markfordelete	ScribeRef1.markfordelete	ScribeRef2.markfordelete	ScribeRef3.markfordelete	SquireMaxsonREF.markfordelete	CitadelLabPost2REF.markfordelete	CitadelLabPatrolREF.markfordelete	CitadelLabPost01REF.markfordelete	Joeref.markfordelete	Chrisref.markfordelete	KnightArtemisREF.markfordelete	KnightSleepMaleREF.markfordelete	KnightSleepFemaleREF.markfordelete	KnightGeneric2REF.markfordelete	KnightGenericREF.markfordelete	CitadelFlagREF.markfordelete	DLC03ScribeVallincourtREF.markfordelete	; Lab	StarPaladinCrossREF.markfordelete	KnightSergeantDurgaREF.markfordelete	CitadelBrotherhoodInitiate01REF.markfordelete	; Courtyard	FragPracticeRef.markfordelete	KnightExterior1REF.markfordelete	KnightExterior2REF.markfordelete	KnightExterior3REF.markfordelete	ExteriorKnight4REF.markfordelete	PaladinGunnyREF.markfordelete	CitBaileyInitiate05Ref.markfordelete	CitBaileyInitiate04Ref.markfordelete	CitadelBrotherhoodInitiate02REF.markfordelete	BoSInitaite08REF.markfordelete	BoSInitaite07REF.markfordelete	BoSInitaite06REF.markfordelete	CitadelBOSGuardRef1.markfordelete	MQ11BosixteriorGuard01REF.markfordelete	MQ11BosixteriorGuard02REF.markfordelete	GateGuardRef.markfordelete	CitadelSentryBotRef.markfordelete	CitadelLookoutREF.markfordelete	CitadelLookout02REF.markfordelete	CitadelBoSTurret01REF.markfordelete	CitadelBoSTurret02REF.markfordelete	SetObjectiveCompleted EIPQuest02 10 1	set PentagonSecured to 3endif

End


For reference, here's a similar script for Tenpenny Tower. It works as intended:

Spoiler
;¤¤TENPENNY TOWER¤¤Begin GameMode	if TenpennySecured == 0 && GetDeadCount AllistairTenpenny == 1 && MS12GhoulsDead == 1		set TenpennySecured to 1		showmessage EIP02Order	endif	if TenpennySecured == 2		TenpennyGuardDay5Ref.disable		TenpennyGuardNight5Ref.disable		JoJoRef.disable		TenpennyGuardDay3Ref.disable		TenpennyGuardNight3Ref.disable		TenpennyGuardDay2Ref.disable		TenpennyGuardDay1Ref.disable		TenpennyGuardNight1Ref.disable		EIPTenpennyMarker.enable	SetObjectiveCompleted EIPQuest02 30 1		Set TenpennySecured to 3	EndifEnd


Another problem about the same matter is that my saves become corrupt after triggering the Enclave takeover and disabling of the BoS. Whenever I save next time the game crashes and a .fos.tmp save appears in save folder.

Any clues? I don't want to just enable the Enclave in the Citadel since that would not only leave a truckload of BoS corpses around but also cause lag as there would be 2x the NPCs there normally is in there.


I'm not sure if you need to markfordelete all those NPCs - Shouldn't disable be enough?
Take StarPalidinCross for example. Anybody having a mod with scripting on that Follower NPC is likely to halt - maybe crash.
User avatar
Nicholas C
 
Posts: 3489
Joined: Tue Aug 07, 2007 8:20 am

Post » Sat May 28, 2011 2:31 pm

This part...
if PentagonSecured == 0 && GetDeadCount ElderLyons == 1 && GetDeadCount DLC03SarahLyons == 1 && GetDeadCount ScribeRothchild == 1 && GetDeadCount StarPaladinCross == 1	set PentagonSecured to 1	showmessage EIP02Orderendif

Probably not the cause of the issues, but shouldn't that be using (REF.GetDead == 1) instead of GetDeadCount? I mean, if somehwere during my game I decide to put a bullet in Cross because she's so boring and square, then resurrect her, that'll throw your condition check off.. even if she is currently dead at this point.
User avatar
Nathan Hunter
 
Posts: 3464
Joined: Sun Apr 29, 2007 9:58 am

Post » Sat May 28, 2011 5:35 am

I'm not sure if you need to markfordelete all those NPCs - Shouldn't disable be enough?
Take StarPalidinCross for example. Anybody having a mod with scripting on that Follower NPC is likely to halt - maybe crash.

Disabling ends the rendering of the NPC, but their scripts will still be running. Though it may be that just disabling won't have a major effect since only a few of BoS units have scripts.

This part...
if PentagonSecured == 0 && GetDeadCount ElderLyons == 1 && GetDeadCount DLC03SarahLyons == 1 && GetDeadCount ScribeRothchild == 1 && GetDeadCount StarPaladinCross == 1	set PentagonSecured to 1	showmessage EIP02Orderendif

Probably not the cause of the issues, but shouldn't that be using (REF.GetDead == 1) instead of GetDeadCount? I mean, if somehwere during my game I decide to put a bullet in Cross because she's so boring and square, then resurrect her, that'll throw your condition check off.. even if she is currently dead at this point.

True. I'll do that.
User avatar
Sebrina Johnstone
 
Posts: 3456
Joined: Sat Jun 24, 2006 12:58 pm

Post » Sat May 28, 2011 6:24 am

Not sure how you're doing it so this might be more effort then it's worth, but couldn't you just move them to a blank inescapable cell? Kinda crude but, hey...
User avatar
Jarrett Willis
 
Posts: 3409
Joined: Thu Jul 19, 2007 6:01 pm

Post » Sat May 28, 2011 2:20 pm

Not sure how you're doing it so this might be more effort then it's worth, but couldn't you just move them to a blank inescapable cell? Kinda crude but, hey...
NPCs don't need doors to path out of cells. I don't know how it's calculated, but if they have a follow package for example they'll catch up with you eventually even if you placed them in an inaccessible cell.
User avatar
Ian White
 
Posts: 3476
Joined: Thu Jul 19, 2007 8:08 pm

Post » Sat May 28, 2011 6:27 pm

But if you set them as unconscious after you move them, then they won't.
User avatar
Adam Porter
 
Posts: 3532
Joined: Sat Jun 02, 2007 10:47 am


Return to Fallout 3