Jump to content

[1.8+] Kerbal Health 1.6.8 (2024-01-22)


garwel

Recommended Posts

On 6/14/2024 at 8:11 PM, Al_ex said:

I've run into a problem with Kerbal Health after installation. The health monitor in the editor does not work in career/science modes, as shown in the image below:

Screenshot-1.png

The log is spammed with reference exceptions:

  Hide contents

[LOG 17:24:18.234] [KerbalHealth] KerbalHealthEditorReport.DisplayData
[EXC 17:24:18.258] NullReferenceException: Object reference not set to an instance of an object
    KerbalHealth.KerbalHealthEditorReport.get_CLSSpacesCount () (at <a252c790b4f14e1280cfecc766e8d141>:0)
    KerbalHealth.KerbalHealthEditorReport.<ShowWindow>b__34_4 () (at <a252c790b4f14e1280cfecc766e8d141>:0)
    DialogGUIBase.Update () (at <4b449f2841f84227adfaad3149c8fdba>:0)
    DialogGUIButton.Update () (at <4b449f2841f84227adfaad3149c8fdba>:0)
    DialogGUIBase.Update () (at <4b449f2841f84227adfaad3149c8fdba>:0)
    MultiOptionDialog.Update () (at <4b449f2841f84227adfaad3149c8fdba>:0)
    PopupDialog.SpawnPopupDialog (MultiOptionDialog dialog, System.Boolean persistAcrossScenes, UISkinDef skin, System.Boolean isModal, System.String titleExtra) (at <4b449f2841f84227adfaad3149c8fdba>:0)
    PopupDialog.SpawnPopupDialog (UnityEngine.Vector2 anchorMin, UnityEngine.Vector2 anchorMax, MultiOptionDialog dialog, System.Boolean persistAcrossScenes, UISkinDef skin, System.Boolean isModal, System.String titleExtra) (at <4b449f2841f84227adfaad3149c8fdba>:0)
    KerbalHealth.KerbalHealthEditorReport.ShowWindow () (at <a252c790b4f14e1280cfecc766e8d141>:0)
    KerbalHealth.KerbalHealthEditorReport.OnAppLauncherClicked () (at <a252c790b4f14e1280cfecc766e8d141>:0)
    KSP.UI.Screens.ApplicationLauncherButton.OnTrue (UnityEngine.EventSystems.PointerEventData data, KSP.UI.UIRadioButton+CallType callType) (at <4b449f2841f84227adfaad3149c8fdba>:0)
    UnityEngine.Events.InvokableCall`2[T1,T2].Invoke (T1 args0, T2 args1) (at <12e76cd50cc64cf19e759e981cb725af>:0)
    UnityEngine.Events.UnityEvent`2[T0,T1].Invoke (T0 arg0, T1 arg1) (at <12e76cd50cc64cf19e759e981cb725af>:0)
    KSP.UI.UIRadioButton.SetState (KSP.UI.UIRadioButton+State state, KSP.UI.UIRadioButton+CallType callType, UnityEngine.EventSystems.PointerEventData data, System.Boolean popButtonsInGroup) (at <4b449f2841f84227adfaad3149c8fdba>:0)
    KSP.UI.UIRadioButton.ToggleState (KSP.UI.UIRadioButton+CallType callType, UnityEngine.EventSystems.PointerEventData data) (at <4b449f2841f84227adfaad3149c8fdba>:0)
    KSP.UI.UIRadioButton.UnityEngine.EventSystems.IPointerClickHandler.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at <4b449f2841f84227adfaad3149c8fdba>:0)
    UnityEngine.EventSystems.ExecuteEvents.Execute (UnityEngine.EventSystems.IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at <0c883c16262a4198973f823d01e07427>:0)
    UnityEngine.EventSystems.ExecuteEvents.Execute[T] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.ExecuteEvents+EventFunction`1[T1] functor) (at <0c883c16262a4198973f823d01e07427>:0)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    UnityEngine.EventSystems.EventSystem:Update()
[EXC 17:24:18.271] NullReferenceException: Object reference not set to an instance of an object
    KerbalHealth.KerbalHealthEditorReport.get_CLSSpacesCount () (at <a252c790b4f14e1280cfecc766e8d141>:0)
    KerbalHealth.KerbalHealthEditorReport.<ShowWindow>b__34_4 () (at <a252c790b4f14e1280cfecc766e8d141>:0)
    DialogGUIBase.Update () (at <4b449f2841f84227adfaad3149c8fdba>:0)
    DialogGUIButton.Update () (at <4b449f2841f84227adfaad3149c8fdba>:0)
    DialogGUIBase.Update () (at <4b449f2841f84227adfaad3149c8fdba>:0)
    MultiOptionDialog.Update () (at <4b449f2841f84227adfaad3149c8fdba>:0)
    PopupDialog.Update () (at <4b449f2841f84227adfaad3149c8fdba>:0)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    ModuleManager.UnityLogHandle.InterceptLogHandler:LogException(Exception, Object)
    UnityEngine.Debug:CallOverridenDebugHandler(Exception, Object)

 

 

It's related to CLS integration, which constantly gives me pain in the ass. I'm wondering what kind of vessel you had at that moment.

I added some null checks to prevent it for the next release. For now, you may try disabling CLS integration in Kerbal Health options.

Link to comment
Share on other sites

19 hours ago, garwel said:

It's related to CLS integration, which constantly gives me pain in the ass. I'm wondering what kind of vessel you had at that moment.

I added some null checks to prevent it for the next release. For now, you may try disabling CLS integration in Kerbal Health options.

The vessel on the picture is just a (re)stock mk1 pod. The problem persists on any crewed vessel regardless of the parts used. The monitor in the editor is broken, but in-flight one seems to work. For some reason, the issue does not affect sandbox saves.

The full log file with debug logging turned on:

https://file.io/C9h5YQW4PslX

P.S.: If i play with CLS integration disabled, will turning it on (after the issue gets fixed) break my save?

P.P.S.: How can I patch modded pods to have RadShield?

Link to comment
Share on other sites

  • 1 month later...
  • 2 weeks later...
On 7/27/2024 at 1:19 PM, CastleKSide said:

Not sure what is happening with my save but I was getting some super weird gui errors. Removing Kerbal Health fixed the issues. No idea what is happening and if its a conflict or not but here is the log file:
https://github.com/CastleForever/Files/blob/main/KSP.log

Judging by the log, the problem is caused by code that links Kerbal Health with Connected Living Space. Try disabling CLS compatibility mode in KH's settings and maybe it will go away. Meanwhile, I'll look into what causes the issue (might be an update on CLS side or something else).

Link to comment
Share on other sites

  • 5 weeks later...

Feature request/suggestion.

Problem: Timewarp keeps cancelling at high warp due to conditions, and there seems to be a LOT of conditions with a lot of Kerbals on a single vessel. I imagine this would happen with multiple missions spread out across different vessels too.

Proposed solutions:

  • Add in a function to disable the timewarp cancel entirely on condition changes

100000x time warp waiting for a maneuver node, and it pauses every 30 seconds or so to let me know that some Kerbal or another got a paper cut. Kind of annoying :(

  • Disable the cancel only at high warps (10000x or higher, or possibly even just configurable)

This would let me use conditions while not having to toggle it off during long transfers.

  • Allow a lower minimum value for condition occurrence.

10 or 5 or 1% minimum would be nice as an option, possibly with a clearer description on what the percentage represents (even if it's to provide a baseline, e.g. "100% averages to 1 condition per Kerbal per 30 Kerbin days" or something.

  • Add option to disable the cancel for conditions on non-focused vessels

I actually haven't run into this one myself yet, since I tend to do single missions at a time. Might already be in, but I wanted to toss it out there. :P

Link to comment
Share on other sites

hm. Also an actual bug report.

Loner and Claustrophobic quirks appear to have compounding effects under time warp which just kills kerbals. See the little video below:
https://www.dropbox.com/s/1y7cvmki9ej0yfa/2024-09-05 07-06-11.mkv?dl=0

Link to my KSP.log, which is just kiiiiind of big:
https://www.dropbox.com/scl/fi/4dowo6qcnf21tuujrb13u/KSP.log?rlkey=83m3ucwr9ukhgu5rhsze3x1jq&dl=0

Possibly notable, and I'm not sure if it's in the log, is the fact that I've set confinement to have 50% effect in the config (if I remember right.) This may or may not be relevant to reproduce the issue.

... hrm, and that's not in the log. Pasted the config bits from persistent.sfs below, again, in case it's relevant.

Spoiler
		KerbalHealthRadiationSettings
		{
			RadiationEnabled = False
			RadiationEffect = 0.1
			UseKerbalismRadiation = False
			KerbalismRadiationRatio = 0.25
			ShieldingEffect = 1
			InSpaceHighCoefficient = 0.4
			InSpaceLowCoefficient = 0.2
			StratoCoefficient = 0.2
			TroposphereCoefficient = 0.01
			EVAExposure = 5
			SolarRadiation = 2500
			GalacticRadiation = 12500
			RadStormsEnabled = False
			RadStormFrequency = 1
			RadStormMagnitude = 1
			DecontaminationRate = 100000
			DecontaminationMinHealth = 1
			DecontaminationHealthLoss = 0.7
			DecontaminationFundsCost = 100000
			DecontaminationScienceCost = 1000
			RequireUpgradedFacilityForDecontamination = False
			DecontaminationAstronautComplexLevel = 3
			DecontaminationRNDLevel = 3
			DecontaminationOnlyAtKSC = False
			AnomalyDecontaminationChance = 1
		}

		KerbalHealthFactorsSettings
		{
			StressEffect = 1
			ConfinementEffect = 0.5
			LonelinessEffect = 1
			MicrogravityEffect = 0.8
			EVAEffect = 1
			IsolationEffect = 1
			HomeEffect = 1
			KSCEffect = 1
			TrainingEnabled = False
			TrainingTime = 60
			StupidityPenalty = 0.5
		}

		KerbalHealthGeneralSettings
		{
			modEnabled = True
			ShowAppLauncherButton = True
			SortByLocation = True
			LinesPerPage = 10
			ShowTraitLevel = True
			UpdateInterval = 10
			MinUpdateInterval = 1
			BaseMaxHP = 125
			HPPerLevel = 25
			LowHealthAlert = 0.3
			DeathEnabled = False
			CriticalHealth = 0.2
			ExhaustionMaxMTTH = 6
			KerbalismIntegration = False
			CLSIntegration = False
			DebugMode = False
			ResetSettings = False
		}

		KerbalHealthQuirkSettings
		{
			ConditionsEnabled = False
			KSCNotificationsEnabled = False
			EventFrequency = 0.5
			ConditionsEffect = 0.5
			QuirksEnabled = True
			MaxQuirks = 6
			QuirkChance = 0.5
			AwardQuirksOnMissions = True
			AnomalyQuirkChance = 1
			StatsAffectQuirkWeights = True
		}

 

 

Link to comment
Share on other sites

  • 1 month later...

Hello! Big fan of the mod!
Would like to ask, I intend to use this mod with other mods that allow for long term permanent bases offworld and as such would like more ways for kerbals to naturally gain back their status outside of on kerbin. I understand the only way currently for them to do that is using recuperation which is 1% based on a cupola correct? Is there a way to add this to other parts?
Say I wanted to add 1% recuperation per hab module?

Thank you :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...