puddlepond Posted December 7, 2021 Share Posted December 7, 2021 (edited) I released Fear The Reaper (https://www.nexusmods.com/newvegas/mods/74577) a few days ago without noticing that the trait's effects only function before the game has had a chance to reload, either by loading a save or by changing cells. After choosing the trait it works perfectly until you leave Doc Mitchell's or load a save, after which all its changes are seemingly reverted: your perk rate returns to normal, and your health increases as your endurance takes effect. I've been able to replicate this bug on a vanilla MO2 profile and my regular modded one so it is definitely an issue with the mod itself. Here's the script for reference: scn FOTACTICSFearTheReaperSCRIPT ; Makes the player gain a perk every single level instead of two. - Panzermann Short bDoOnce BEGIN ScriptEffectStart If ( bDoOnce == 0 ) Set bDoOnce to 1; SetNumericGameSetting iLevelsPerPerk 1; SetNumericGameSetting fAVDHealthLevelMult 0; SetNumericGameSetting fAVDHealthEnduranceMult 0; Endif END; scripteffectstart BEGIN ScriptEffectFinish If ( bDoOnce == 1 ) Set bDoOnce to 0; SetNumericGameSetting iLevelsPerPerk 2; SetNumericGameSetting fAVDHealthLevelMult 5; SetNumericGameSetting fAVDHealthEnduranceMult 20; Endif END I've tried removing the second "ScriptEffectFinish" half, that plus removing the variable "bDoOnce", and I'm all out of ideas. Neither edit seemed to have any effect. I'm guessing it's an issue with the game wanting to revert Game Settings to their vanilla state with every load screen, but I don't know how to prevent that happening. UPDATE: The bug isn't triggered by changing cells - it just looked like that because whenever the trait was nullified I had also happened to have moved cells - it's only triggered by quitting out of the game entirely and reloading a save. Maybe getting the script to fire every time a save is loaded if bDoOnce = 1 could fix it, but I don't see a block type that'd let me do that. There's GameMode, but I figure there's gotta be a more efficient way than just setting the script to fire every frame. UPDATE 2: This didn't work either: BEGIN MenuMode 1007 If ( bDoOnce == 1 ) SetNumericGameSetting iLevelsPerPerk 1; SetNumericGameSetting fAVDHealthLevelMult 0; SetNumericGameSetting fAVDHealthEnduranceMult 0; Else SetNumericGameSetting iLevelsPerPerk 2; SetNumericGameSetting fAVDHealthLevelMult 5; SetNumericGameSetting fAVDHealthEnduranceMult 20; Endif END I tried appending it to the end of the FTR script, nothing, Maybe I'd need something like a global variable instead of the integer I've been using. No idea. UPDATE 3: BEGIN MenuMode 1007 If Player.HasPerk FOTACTICSFearTheReaper SetNumericGameSetting iLevelsPerPerk 1; SetNumericGameSetting fAVDHealthLevelMult 0; SetNumericGameSetting fAVDHealthEnduranceMult 0; Else SetNumericGameSetting iLevelsPerPerk 2; SetNumericGameSetting fAVDHealthLevelMult 5; SetNumericGameSetting fAVDHealthEnduranceMult 20; Endif END Nope. Nothing. If nothing else, hopefully this post can help dissuade anyone else from trying to edit Game Settings with perks. I'm seriously doubting that it's even possible at this point. Edited December 10, 2021 by arsthetiu Link to comment Share on other sites More sharing options...
puddlepond Posted January 14, 2022 Author Share Posted January 14, 2022 scn FOTACTICSFearTheReaperSCRIPT ; Makes the player gain a perk every single level instead of two. - Panzermann Short bDoOnce BEGIN ScriptEffectStart If ( bDoOnce == 0 ) Set bDoOnce to 1; SetNumericGameSetting iLevelsPerPerk 1; SetNumericGameSetting fAVDHealthLevelMult 0; SetNumericGameSetting fAVDHealthEnduranceMult 0; Endif END; scripteffectstart BEGIN ScriptEffectFinish If ( bDoOnce == 1 ) Set bDoOnce to 0; SetNumericGameSetting iLevelsPerPerk 2; SetNumericGameSetting fAVDHealthLevelMult 5; SetNumericGameSetting fAVDHealthEnduranceMult 20; Endif END; scripteffectfinish BEGIN GameMode If GetGameRestarted If Player.HasPerk FOTACTICSFearTheReaper 1 SetNumericGameSetting iLevelsPerPerk 1; SetNumericGameSetting fAVDHealthLevelMult 0; SetNumericGameSetting fAVDHealthEnduranceMult 0; EndIf If Player.HasPerk FOTACTICSFearTheReaper 0 SetNumericGameSetting iLevelsPerPerk 2; SetNumericGameSetting fAVDHealthLevelMult 5; SetNumericGameSetting fAVDHealthEnduranceMult 20; EndIf EndIf END it works. it works now. im going to scream. Link to comment Share on other sites More sharing options...
Recommended Posts