![]()
|
|
Upon closer inspection, it looks like this might be caused by companions regenerating their health when they shouldn't be. Still not sure what exactly triggers this, but it looks like dismissing and recruiting them temporarily resolves the bug. I have to wonder if something is causing the downed mechanic to break down over time.
Did some poking around in HC's logs with trace enabled, and I found something rather strange. Here's a log fragment for Dogmeat's bleedout after he's dismissed and then recruited (bleedout works as expected):
... and here's the same fragment for when he hasn't been dismissed a single time (bleedout is completely broken):
While this doesn't explain the "why", it might help explain the "how". For whatever reason, ActorToHeal can become completely messed up and pull up a generic workshop NPC actor script instead of the relevant one. I don't know the inner workings of the followers script, and I'm not super familiar with the HC manager, either, but I hope someone with more expertise might find this useful.
Spoiler:
[09/23/2024 - 10:53:36PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: ReferenceAlias.OnEnterBleedout() akSender: [Hardcore:HC_HealCompanionObjectAliasScript <alias DogmeatCompanion on quest HC_Manager (0000080E)>] [09/23/2024 - 10:53:36PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: PlayerCanHeal() ActorToHeal: [dogmeatactorscript < (0001D162)>] [09/23/2024 - 10:53:36PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: PlayerCanHeal() playerCanStimpak: [Keyword <playerCanStimpak (000AD52A)>] [09/23/2024 - 10:53:36PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: PlayerCanHeal() TRUE -- ActorToHeal: [dogmeatactorscript < (0001D162)>] [09/23/2024 - 10:53:36PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: TryTutorial() - Tutorial: CompanionDownedTutorial, TimesDisplayed: 1 [09/23/2024 - 10:53:36PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: TryTutorial() - Tutorial: CompanionDownedTutorial, TimesToDisplay: 1 [09/23/2024 - 10:53:36PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: TryTutorial() - Hide Tutorial: CompanionDownedTutorial, TimesDisplayed: 1, DaysUntilNextDisplay: 0.000000 [09/23/2024 - 10:53:36PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: PlayerCanHeal() ActorToHeal: [dogmeatactorscript < (0001D162)>] [09/23/2024 - 10:53:36PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: PlayerCanHeal() playerCanStimpak: [Keyword <playerCanStimpak (000AD52A)>] [09/23/2024 - 10:53:36PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: PlayerCanHeal() TRUE -- ActorToHeal: [dogmeatactorscript < (0001D162)>] [09/23/2024 - 10:53:36PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: PlayerCanHeal() ActorToHeal: [dogmeatactorscript < (0001D162)>] [09/23/2024 - 10:53:36PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: PlayerCanHeal() playerCanStimpak: [Keyword <playerCanStimpak (000AD52A)>] [09/23/2024 - 10:53:36PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: PlayerCanHeal() TRUE -- ActorToHeal: [dogmeatactorscript < (0001D162)>]
... and here's the same fragment for when he hasn't been dismissed a single time (bleedout is completely broken):
Spoiler:
[09/23/2024 - 10:51:49PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: ReferenceAlias.OnEnterBleedout() akSender: [Hardcore:HC_HealCompanionObjectAliasScript <alias DogmeatCompanion on quest HC_Manager (0000080E)>] [09/23/2024 - 10:51:49PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: PlayerCanHeal() ActorToHeal: [workshopnpcscript < (0001D162)>] [09/23/2024 - 10:51:49PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: PlayerCanHeal() playerCanStimpak: [Keyword <playerCanStimpak (000AD52A)>] [09/23/2024 - 10:51:49PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: PlayerCanHeal() TRUE -- ActorToHeal: [workshopnpcscript < (0001D162)>] [09/23/2024 - 10:51:49PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: TryTutorial() - Tutorial: CompanionDownedTutorial, TimesDisplayed: 1 [09/23/2024 - 10:51:49PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: TryTutorial() - Tutorial: CompanionDownedTutorial, TimesToDisplay: 1 [09/23/2024 - 10:51:49PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: TryTutorial() - Hide Tutorial: CompanionDownedTutorial, TimesDisplayed: 1, DaysUntilNextDisplay: 0.000000 [09/23/2024 - 10:51:49PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: PlayerCanHeal() ActorToHeal: [workshopnpcscript < (0001D162)>] [09/23/2024 - 10:51:49PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: PlayerCanHeal() playerCanStimpak: [Keyword <playerCanStimpak (000AD52A)>] [09/23/2024 - 10:51:49PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: PlayerCanHeal() TRUE -- ActorToHeal: [workshopnpcscript < (0001D162)>] [09/23/2024 - 10:51:49PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: PlayerCanHeal() ActorToHeal: [workshopnpcscript < (0001D162)>] [09/23/2024 - 10:51:49PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: PlayerCanHeal() playerCanStimpak: [Keyword <playerCanStimpak (000AD52A)>] [09/23/2024 - 10:51:49PM] [hardcore:hc_managerscript <HC_Manager (0000080E)>]: PlayerCanHeal() TRUE -- ActorToHeal: [workshopnpcscript < (0001D162)>]
While this doesn't explain the "why", it might help explain the "how". For whatever reason, ActorToHeal can become completely messed up and pull up a generic workshop NPC actor script instead of the relevant one. I don't know the inner workings of the followers script, and I'm not super familiar with the HC manager, either, but I hope someone with more expertise might find this useful.
It reporting ActorToHeal as either the workshopnpcscript or dogmeatactorscript doesn't really matter. He has both of those on his base NPC record all the time and that's just a manifestation of how Papyrus reports on things with scripts attached to them.
The log output looks identical to me other than the difference in which cast it reported. In both cases it ultimately returns TRUE, saying the player can heal him. Why it works differently just because you didn't dismiss him first is the issue. It's entirely possible this is going to be some kind of engine level nonsense with survival mode.
The log output looks identical to me other than the difference in which cast it reported. In both cases it ultimately returns TRUE, saying the player can heal him. Why it works differently just because you didn't dismiss him first is the issue. It's entirely possible this is going to be some kind of engine level nonsense with survival mode.
Showing Comments 1 - 3 of 3